Monday, August 26, 2013

Whitepaper: The WHY of setting up Autoinvoice options for performance improvement

My earlier post http://plsql-apps.blogspot.co.at/2013/07/basic-pre-requisites-setups-to-decrease.html details about the different set of options to tackle and improve autoinvoice performance. This post details the in depth information on why these values need to be set and what are the default values that Oracle comes seeded with.

-       Setting purge interface table = Y
    With this option set to Yes, the processed records in the interface table is purged after each autoinvoice run automatically. By default or when set to No the purge of records does not happen until the purge concurrent program is run 

-       Set Max Memory (in bytes) = Suggested less than 3MB (3145728 bytes)
The default is 65535 bytes. Enter a lower number if AutoInvoice displays the message 'Failed to allocate memory for scratch_memory.' Enter a higher number if AutoInvoice displays the message 'The given piece of memory is not large enough to hold a single row.'  if you use AutoInvoice to import no more than 100 invoices at a time, enter a value of 102400. This is the amount of space that is allocated for autoinvoice validation step only.

-       Log File Message Level = 0
This is the amount of log messages to be printed during the autoinvoice process, higher the number slower the autoinvoice process and higher the number of messages to debug.
-       Tuning Segments
o    Accounting Flex
o    System Items
o    Territory
Autoinvoice uses the above segments frequently for invoice processing, in order to improve performance during runtime the segments from these flexfields can be tuned for the above set. For ex. RA_INTERFACE_DISTRIBUTIONS_ALL table consists of both code_combination_id and segments(n) column, during runtime all lines are updated with the segment values. By defining a tuning segment in the setup these column values are tuned for better performance. 

Oracle Application Setup: Manage System Profile Options

-       AR:  AutoInvoice Gather Statistics
When you submit the AutoInvoice Master program, AutoInvoice can first analyze the interface tables (RA_INTERFACE_LINES_ALL, RA_INTERFACE_DISTRIBUTIONS_ALL, and RA_INTERFACE SALESCREDITS_ALL) and automatically gather statistics to determine how best to execute the transaction import. If you want AutoInvoice to automatically gather statistics, then set this profile option to Yes. If the number of records to be imported and the number of worker processes are approximately the same as the previous submission of AutoInvoice, then you may set the profile option to No and skip this analysis.

-       AR: Maximum Lines Per AutoInvoice Worker
The default value for this profile option is 100000. This profile option allows you to give AutoInvoice a "tip" on how it should group the records so that all lines for an invoice can be assigned to a single or multiple workers. Here worker means number of spawned programs to group the number of records. If the profile option is set to 10,000 lines per worker, and an invoice has more than 10,000 lines, then all the lines on the invoice would be assigned to a single worker.

Sequence of grouping and assigning to workers:
-       Transaction lines are ordered and grouped by the grouping and line ordering rules defined.
-       After which the below grouping is done to assign to workers, if none of the below value changes then the records are processed by a single worker regardless of the maximum lines per worker else the profile option is used to group and to be processed by multiple workers

org_id || '~' || \n\
batch_source_name || '~' || \n\
orig_system_bill_customer_id || '~' || \n\
orig_system_bill_customer_ref || '~' || \n\
orig_system_bill_address_id || '~' || \n\
orig_system_bill_address_ref || '~' || \n\
NVL(cons_billing_number, trx_number) || '~' || \n\
NVL(cons_billing_number, purchase_order) || '~' || \n\
NVL(cons_billing_number, currency_code) || '~' || \n\
NVL(cons_billing_number, conversion_type) \n\
 

Truncate Interface Tables Vs. Delete Records

There is a need to frequently truncate tables.  TRUNCATE resets the table definition to an empty table by resetting the high water mark. This could increase the performance of autoinvoice as it releases the occupied blocks and table scan can be performed effectively. Whereas a delete does not relinquish segment space thus a table in which all records have been deleted retains all of its original blocks.

No comments:

Post a Comment

Please add your valuable comments and also questions that would make me write a post for you.

Search This Blog

Labels

oracle oracle applications 11i 12.1 PLSQL SQL database index r12 12 API HRMS PL application r12.1.3 table whitepaper AR DOCUMENT_CATEGORY Database Options Oracle Application Setup Packages Sequences Stand-alone System Profile Options Tables Tuning User-defined types Views autoinvoice compatibility concurrent developer document documents of record download impact import increase issue lookup manager master object names oracle workflow performance receivables script technology windows workflow APP-PAY-06841 ATG BI BLOB DBMS_LOB DFF DIRECTORY Dynamic FND FNDLOAD HR_CHANGE_START_DATE_API IN IN OUT Jdeveloper 11g KFF MIME Materialized views OA Framework OAF ORACLE_LOADER OUT Private synonyms Problem Problem Statement SQL*LOADER SSHR Starters Tutorial WebService XP ad_dd administrator all all workflows amateur architecture assi assignment attachments breadth first search builder category change client column columns compression consideration create create_shared_type custom flexfield cyclic graph data flow data structure data structures depth first search employee external tables field file flex flex field flexfield fnd_irep_classes fnd_irep_function_flavors fnd_lookup_types_pkg fnd_lookup_values_pkg functionality graph image infrastructure insert_row integrated SOA gateway invisible indexes irep jdev jdeveloper key key flexfield keywords latest start date list list of APIs load logging mandatory metalink node noob operating system operational BI package package maximum length parameters patch per_shared_types_api person procedures query queue quick start record registering registration reserved results solution stack standalone start date subcategory technical traverse traversing a graph type update_start_date upload values vertex view vista wf wf_local_roles windows 7

Total Pageviews