Release 11i Performance Tuning Workshop – Implementations & Post Go-Live

64
1 © 2002 Solution Beacon, LLC. All Rights Reserved. Release 11 Release 11 i i Performance Tuning Performance Tuning Workshop – Workshop – Implementations & Post Implementations & Post Go-Live Go-Live INSTRUCTORS INSTRUCTORS Sandra Vucinic – SSI North America Sandra Vucinic – SSI North America Tammy Vandermey - WebCentrix Tammy Vandermey - WebCentrix Rich Butterfield - OuterBay Rich Butterfield - OuterBay Technologies Technologies Randy Giefer - Solution Beacon, LLC Randy Giefer - Solution Beacon, LLC CONTRIBUTORS CONTRIBUTORS Andy Rivenes – AppsDBA Andy Rivenes – AppsDBA John Stouffer – Solution Beacon, John Stouffer – Solution Beacon, LLC LLC

Transcript of Release 11i Performance Tuning Workshop – Implementations & Post Go-Live

Page 1: Release 11i Performance Tuning Workshop – Implementations & Post Go-Live

1© 2002 Solution Beacon, LLC. All Rights Reserved.

Release 11Release 11ii Performance TuningPerformance TuningWorkshop – Implementations Workshop – Implementations & Post Go-Live& Post Go-Live

INSTRUCTORSINSTRUCTORS • • Sandra Vucinic – SSI North AmericaSandra Vucinic – SSI North America • • Tammy Vandermey - WebCentrixTammy Vandermey - WebCentrix • • Rich Butterfield - OuterBay Technologies Rich Butterfield - OuterBay Technologies • • Randy Giefer - Solution Beacon, LLCRandy Giefer - Solution Beacon, LLC

CONTRIBUTORSCONTRIBUTORS • • Andy Rivenes – AppsDBAAndy Rivenes – AppsDBA • • John Stouffer – Solution Beacon, LLCJohn Stouffer – Solution Beacon, LLC

Page 2: Release 11i Performance Tuning Workshop – Implementations & Post Go-Live

2© 2002 Solution Beacon, LLC. All Rights Reserved.

““One of the biggest factors One of the biggest factors contributing to the performance contributing to the performance of the upgrade process, as well as of the upgrade process, as well as post-upgrade or post-post-upgrade or post-implementation performance is a implementation performance is a properly properly fedfed Cost-Based Cost-Based Optimizer.”Optimizer.”

Baseline Education

Page 3: Release 11i Performance Tuning Workshop – Implementations & Post Go-Live

3© 2002 Solution Beacon, LLC. All Rights Reserved.

Baseline Education - CBOBaseline Education - CBO

Oracle Applications Release 11Oracle Applications Release 11i i uses the cost-based optimization uses the cost-based optimization (CBO) approach in choosing the (CBO) approach in choosing the most effective way to execute SQL most effective way to execute SQL statements.statements.

Page 4: Release 11i Performance Tuning Workshop – Implementations & Post Go-Live

4© 2002 Solution Beacon, LLC. All Rights Reserved.

Cost Based Optimizer BasicsCost Based Optimizer Basics

Definition:Definition: Cost Based OptimizerCost Based Optimizer

Determines the most efficient way to Determines the most efficient way to execute a SQL statement based on execute a SQL statement based on statistical data stored in the data statistical data stored in the data dictionaries.dictionaries.

Rule Based OptimizerRule Based Optimizer A fixed ranking system to determine the A fixed ranking system to determine the

most efficient access method when most efficient access method when executing a SQL statement.executing a SQL statement.

Page 5: Release 11i Performance Tuning Workshop – Implementations & Post Go-Live

5© 2002 Solution Beacon, LLC. All Rights Reserved.

Cost Based Optimizer BasicsCost Based Optimizer Basics

How Does CBO Work?How Does CBO Work? The optimizer creates a set of potential The optimizer creates a set of potential

execution plans for the SQL statement execution plans for the SQL statement based on available access paths and based on available access paths and hints.hints.

The optimizer estimates the The optimizer estimates the costcost of each of each execution plan based on statistics in the execution plan based on statistics in the data dictionary. data dictionary.

The optimizer compares the costs of the The optimizer compares the costs of the execution plans and chooses the one execution plans and chooses the one with the lowest cost.with the lowest cost.

Page 6: Release 11i Performance Tuning Workshop – Implementations & Post Go-Live

6© 2002 Solution Beacon, LLC. All Rights Reserved.

Cost Based Optimizer BasicsCost Based Optimizer Basics

How Does CBO Work?How Does CBO Work? CBO CBO CareCare

init.ora parameters init.ora parameters CBO CBO FeedingFeeding

DBA Food DBA Food •Gather StatisticsGather Statistics

Developer FoodDeveloper Food•SQL TuningSQL Tuning

Page 7: Release 11i Performance Tuning Workshop – Implementations & Post Go-Live

7© 2002 Solution Beacon, LLC. All Rights Reserved.

CBO CareCBO Care

Oracle Applications 11i require particular Oracle Applications 11i require particular init.ora parameters to be set up for the init.ora parameters to be set up for the CBO use:CBO use:

Check current init.ora parameters Check current init.ora parameters settings:settings:

$FND_TOP/sql/AFCHKCBO.sql script$FND_TOP/sql/AFCHKCBO.sql script OROR from SQL*Plus, query v$parameter table:from SQL*Plus, query v$parameter table: select name, value from v$parameter;select name, value from v$parameter;

Page 8: Release 11i Performance Tuning Workshop – Implementations & Post Go-Live

8© 2002 Solution Beacon, LLC. All Rights Reserved.

CBO CareCBO Care

Recommended init .ora Parameter Recommended init .ora Parameter Settings:Settings: optimizer_features_enable = 8.1.7optimizer_features_enable = 8.1.7 optimizer_mode = CHOOSEoptimizer_mode = CHOOSE _optimizer_undo_changes = FALSE_optimizer_undo_changes = FALSE _optimizer_mode_force = TRUE_optimizer_mode_force = TRUE db_file_multiblock_read_count = 8db_file_multiblock_read_count = 8 optimizer_max_permutations = 2000optimizer_max_permutations = 2000

Page 9: Release 11i Performance Tuning Workshop – Implementations & Post Go-Live

9© 2002 Solution Beacon, LLC. All Rights Reserved.

CBO CareCBO Care

Recommended init.ora Parameter Recommended init.ora Parameter Settings:Settings: _complex_view_merging = TRUE_complex_view_merging = TRUE _sort_elimination_cost_ratio = 5_sort_elimination_cost_ratio = 5 _use_column_stats_for_function = TRUE_use_column_stats_for_function = TRUE _like_with_bind_as_equality = TRUE_like_with_bind_as_equality = TRUE _or_expand_nvl_predicate = TRUE_or_expand_nvl_predicate = TRUE _push_join_union_view = TRUE_push_join_union_view = TRUE

Page 10: Release 11i Performance Tuning Workshop – Implementations & Post Go-Live

10© 2002 Solution Beacon, LLC. All Rights Reserved.

CBO CareCBO Care

Recommended init.ora Parameter Recommended init.ora Parameter Settings:Settings: _table_scan_cost_plus_one = TRUE_table_scan_cost_plus_one = TRUE _push_join_predicate = TRUE_push_join_predicate = TRUE _fast_full_scan_enabled = FALSE_fast_full_scan_enabled = FALSE _ordered_nested_loop = TRUE_ordered_nested_loop = TRUE optimizer_percent_parallel = 0optimizer_percent_parallel = 0 query_rewrite_enabled = TRUEquery_rewrite_enabled = TRUE compatible = 8.1.7compatible = 8.1.7

Page 11: Release 11i Performance Tuning Workshop – Implementations & Post Go-Live

11© 2002 Solution Beacon, LLC. All Rights Reserved.

CBO CareCBO Care

Two Often-Overlooked Parameters:Two Often-Overlooked Parameters: optimizer_index_caching = 90 optimizer_index_caching = 90 (indicates to the CBO how often index (indicates to the CBO how often index

blocks are cached in the Buffer Cache blocks are cached in the Buffer Cache default 0)default 0)

optimizer_index_cost_adj = 10 optimizer_index_cost_adj = 10 (tells the CBO how expensive index (tells the CBO how expensive index

scans are in relation to full-table scans are in relation to full-table scans default 100)scans default 100)

Page 12: Release 11i Performance Tuning Workshop – Implementations & Post Go-Live

12© 2002 Solution Beacon, LLC. All Rights Reserved.

CBO FeedingCBO Feeding

Generating Statistics in 11Generating Statistics in 11ii Need To Keep Statistics Current ! FND_STATS package is used to generate FND_STATS package is used to generate

statisticstatistic (Not ANALYZE, Not DBMS_STATS)

Sample FND_STATS package procedures:

GATHER_INDEX_STATSGATHER_INDEX_STATSBACKUP_SCHEMA_STATSBACKUP_SCHEMA_STATSRESTORE_TABLE_STATSRESTORE_TABLE_STATSVERIFY_STATSVERIFY_STATS

Page 13: Release 11i Performance Tuning Workshop – Implementations & Post Go-Live

13© 2002 Solution Beacon, LLC. All Rights Reserved.

CBO FeedingCBO Feeding

Examples:Examples: Run FND_STATS package from SQL*PlusRun FND_STATS package from SQL*Plus

SQL > exec fnd_stats.gather_schema_statistics (‘AR’) SQL > exec fnd_stats.gather_schema_statistics (‘AR’) ( For a specific schema )( For a specific schema )

SQL > exec fnd_stats.gather_schema_statistics (‘ALL’)SQL > exec fnd_stats.gather_schema_statistics (‘ALL’) ( For all schemas )( For all schemas ) SQL > exec fnd_stats.gather_schema_statistics (‘GL’, SQL > exec fnd_stats.gather_schema_statistics (‘GL’,

‘GL_JE_LINES’) ‘GL_JE_LINES’) ( For one table )( For one table )

Page 14: Release 11i Performance Tuning Workshop – Implementations & Post Go-Live

14© 2002 Solution Beacon, LLC. All Rights Reserved.

CBO FeedingCBO Feeding Generating Statistics in 11Generating Statistics in 11ii

Using the System Administrator Using the System Administrator responsibility run the following responsibility run the following concurrent programs to generate concurrent programs to generate statistics:statistics:

Gather Table StatisticsGather Table Statistics Backup Table Statistics Backup Table Statistics Restore Table StatisticsRestore Table Statistics Gather Schema StatisticsGather Schema Statistics Analyze All Index Column StatisticsAnalyze All Index Column Statistics

Page 15: Release 11i Performance Tuning Workshop – Implementations & Post Go-Live

15© 2002 Solution Beacon, LLC. All Rights Reserved.

Gather Table StatisticsGather Table Statistics

Page 16: Release 11i Performance Tuning Workshop – Implementations & Post Go-Live

16© 2002 Solution Beacon, LLC. All Rights Reserved.

Gather Table StatisticsGather Table Statistics

Gathers table statistics for the specified Gathers table statistics for the specified tabletable

Gathers all related index statistics by Gathers all related index statistics by defaultdefault

If backup_flag is set to BACKUP, exports If backup_flag is set to BACKUP, exports the old statistics before gathering the the old statistics before gathering the new statisticsnew statistics

Old statistics are stored in Old statistics are stored in FND_STATTAB tableFND_STATTAB table

Uses GATHER_TABLE_STATS procedureUses GATHER_TABLE_STATS procedure

Page 17: Release 11i Performance Tuning Workshop – Implementations & Post Go-Live

17© 2002 Solution Beacon, LLC. All Rights Reserved.

Backup Table Statistics

Page 18: Release 11i Performance Tuning Workshop – Implementations & Post Go-Live

18© 2002 Solution Beacon, LLC. All Rights Reserved.

Backup Table StatisticsBackup Table Statistics

Stores the statistics of the given table Stores the statistics of the given table unto the FND_STATTAB table.unto the FND_STATTAB table.

Backs up the related index and column Backs up the related index and column statistics by default.statistics by default.

Uses different statistics identifiersUses different statistics identifiers Can keep different versions of backup Can keep different versions of backup

with different identifiers. with different identifiers. Uses BACKUP_TABLE_STATS procedureUses BACKUP_TABLE_STATS procedure

Page 19: Release 11i Performance Tuning Workshop – Implementations & Post Go-Live

19© 2002 Solution Beacon, LLC. All Rights Reserved.

Restore Table StatisticsRestore Table Statistics

Page 20: Release 11i Performance Tuning Workshop – Implementations & Post Go-Live

20© 2002 Solution Beacon, LLC. All Rights Reserved.

Restore Table StatisticsRestore Table Statistics

Restores the previously backed up Restores the previously backed up table statistics from a given table statistics from a given statistics identifier.statistics identifier.

Imports index and column Imports index and column statistics associated with the statistics associated with the specified tablespecified table

Uses RESTORE_TABLE_STATS Uses RESTORE_TABLE_STATS procedureprocedure

Page 21: Release 11i Performance Tuning Workshop – Implementations & Post Go-Live

21© 2002 Solution Beacon, LLC. All Rights Reserved.

Gather Schema StatisticsGather Schema Statistics

Page 22: Release 11i Performance Tuning Workshop – Implementations & Post Go-Live

22© 2002 Solution Beacon, LLC. All Rights Reserved.

Gather Schema StatisticsGather Schema Statistics

Gathers specified schema level statisticsGathers specified schema level statistics Backs up existing statisticsBacks up existing statistics Creates the histogram for the specified Creates the histogram for the specified

columns in the FND_HISTOGRAM_COLS columns in the FND_HISTOGRAM_COLS tablestables

Populates default statistics for all the Populates default statistics for all the interface tables as defined in the interface tables as defined in the FND_EXCLUDE_TABLE_STATS tableFND_EXCLUDE_TABLE_STATS table

Uses GATHER_SCHEMA_STATS Uses GATHER_SCHEMA_STATS procedureprocedure

Page 23: Release 11i Performance Tuning Workshop – Implementations & Post Go-Live

23© 2002 Solution Beacon, LLC. All Rights Reserved.

Analyze All Index ColumnsAnalyze All Index Columns

Page 24: Release 11i Performance Tuning Workshop – Implementations & Post Go-Live

24© 2002 Solution Beacon, LLC. All Rights Reserved.

Analyze All Index ColumnsAnalyze All Index Columns

Analyzes all the indexed columns Analyzes all the indexed columns for all the tables in a given schemafor all the tables in a given schema

Backs up statistics into the Backs up statistics into the FND_STATTAB table before FND_STATTAB table before gathering statisticsgathering statistics

Uses ANALYZE_ALL_COLUMNS Uses ANALYZE_ALL_COLUMNS procedureprocedure

Page 25: Release 11i Performance Tuning Workshop – Implementations & Post Go-Live

25© 2002 Solution Beacon, LLC. All Rights Reserved.

CBO FeedingCBO Feeding

Now Obsolete Programs:Now Obsolete Programs: Gather Column StatisticsGather Column Statistics Gather All Column StatisticsGather All Column Statistics

See MetaLink Note See MetaLink Note 141532.1141532.1   

Page 26: Release 11i Performance Tuning Workshop – Implementations & Post Go-Live

26© 2002 Solution Beacon, LLC. All Rights Reserved.

CBO FeedingCBO Feeding

Gather Stats on Partitioned TablesGather Stats on Partitioned Tables Pass ‘PARTITION’ in the Granularity parameter Pass ‘PARTITION’ in the Granularity parameter OROR From SQL*PlusFrom SQL*Plus

SQL> beginSQL> beginfnd_stats.gather_table_stats (fnd_stats.gather_table_stats (ownname => ‘APPLSYS’ownname => ‘APPLSYS’tabname => ‘WF_ITEM_ACTIVITY_STATUSES’,tabname => ‘WF_ITEM_ACTIVITY_STATUSES’,granularity => ‘PARTITION’);granularity => ‘PARTITION’);

end;end;

Page 27: Release 11i Performance Tuning Workshop – Implementations & Post Go-Live

27© 2002 Solution Beacon, LLC. All Rights Reserved.

CBO FeedingCBO Feeding

SQL TuningSQL Tuning The Oracle Way (Metalink)The Oracle Way (Metalink) Explain Plans Explain Plans Trace FilesTrace Files Histograms Histograms HintsHints Join MethodsJoin Methods

Page 28: Release 11i Performance Tuning Workshop – Implementations & Post Go-Live

28© 2002 Solution Beacon, LLC. All Rights Reserved.

CBO FeedingCBO Feeding

The Oracle Way (open an iTar)The Oracle Way (open an iTar) Are the init.ora parameters present and Are the init.ora parameters present and

correct?correct? Have statistics been gathered on tables and Have statistics been gathered on tables and

indexes?indexes? Have histograms been created for skewed Have histograms been created for skewed

data?data? Has statistics usage been monitored?Has statistics usage been monitored? Does your release 11i contain customizations?Does your release 11i contain customizations? Send a Trace file.Send a Trace file.

Page 29: Release 11i Performance Tuning Workshop – Implementations & Post Go-Live

29© 2002 Solution Beacon, LLC. All Rights Reserved.

Histograms

Create for tables with Skewed DataCreate for tables with Skewed Data Large differences exist between ranges of Large differences exist between ranges of

valuesvalues For ExampleFor Example

Seasonal Business. Caps and GownsSeasonal Business. Caps and GownsOrders By MonthOrders By MonthJan Feb Mar Apr May June July Aug Sep Oct Nov DecJan Feb Mar Apr May June July Aug Sep Oct Nov Dec 1 5 200 500 500 200 40 1 1 1 5 11 5 200 500 500 200 40 1 1 1 5 1

Histograms can only be used on literalsHistograms can only be used on literals (yes/no, open/close)(yes/no, open/close)

Page 30: Release 11i Performance Tuning Workshop – Implementations & Post Go-Live

30© 2002 Solution Beacon, LLC. All Rights Reserved.

The Big Difference

KNOW YOUR DATAKNOW YOUR DATA

Page 31: Release 11i Performance Tuning Workshop – Implementations & Post Go-Live

31© 2002 Solution Beacon, LLC. All Rights Reserved.

Miracle Cure – SQL Tuning

Does not ExistDoes not Exist Every Business Is DifferentEvery Business Is Different All Depends on the DataAll Depends on the Data Can Change Over TimeCan Change Over Time

Page 32: Release 11i Performance Tuning Workshop – Implementations & Post Go-Live

32© 2002 Solution Beacon, LLC. All Rights Reserved.

CBO Feeding – SQL Tuning

Explain PlanExplain Plan Run on problematic SQL to determine Run on problematic SQL to determine

the path CBO has chosen.the path CBO has chosen. Identify Possible Full Table ScansIdentify Possible Full Table Scans

Page 33: Release 11i Performance Tuning Workshop – Implementations & Post Go-Live

33© 2002 Solution Beacon, LLC. All Rights Reserved.

CBO Feeding – SQL Tuning

Gather InformationGather Information EXPLAIN PLAN EXPLAIN PLAN

SET statement_id = “FEED_ME”SET statement_id = “FEED_ME”FOR select * from dual;FOR select * from dual;

Parse the InformationParse the Information Information stored in Information stored in PLAN_TABLEPLAN_TABLE

where where statement_idstatement_id = “FEED_ME” = “FEED_ME”(MetaLink (MetaLink Note:156959.1Note:156959.1))

Page 34: Release 11i Performance Tuning Workshop – Implementations & Post Go-Live

34© 2002 Solution Beacon, LLC. All Rights Reserved.

CBO Feeding – SQL Tuning

EXPLAIN PLAN EXPLAIN PLAN

SET statement_id = “FEED_ME”SET statement_id = “FEED_ME”

FOR select * from dual;FOR select * from dual;

Extract information from Extract information from PLAN_TABLEPLAN_TABLE

where where statement_idstatement_id = “FEED_ME” = “FEED_ME”

Page 35: Release 11i Performance Tuning Workshop – Implementations & Post Go-Live

35© 2002 Solution Beacon, LLC. All Rights Reserved.

CBO Feeding – SQL Tuning

Trace FilesTrace Files Generate Trace File inside ApplicationGenerate Trace File inside Application TKPROF to interpret results and check TKPROF to interpret results and check

the costs and plans for all sqlthe costs and plans for all sql

tkproftkprof tracefile outputfile [explain= ] tracefile outputfile [explain= ] [table= ] [print= ] [insert= ] [sys= ] [table= ] [print= ] [insert= ] [sys= ] [sort= ][sort= ]

Page 36: Release 11i Performance Tuning Workshop – Implementations & Post Go-Live

36© 2002 Solution Beacon, LLC. All Rights Reserved.

Understanding Join Methods

Hash JoinsHash Joins Better for relatively large table to Better for relatively large table to

relatively small tablerelatively small table Must be equi-joinMust be equi-join

Sort/MergeSort/Merge Must be equi-joinMust be equi-join

Nested LoopsNested Loops

Page 37: Release 11i Performance Tuning Workshop – Implementations & Post Go-Live

37© 2002 Solution Beacon, LLC. All Rights Reserved.

CBO Feeding – SQL Tuning

IndexesIndexes Evaluate whether an index would improve Evaluate whether an index would improve

performanceperformance Consider temporary indexes for batch Consider temporary indexes for batch

processingprocessing Create index prior to running nightly MRPCreate index prior to running nightly MRP Run MRPRun MRP Drop indexDrop index

Determine if code can be improved using Determine if code can be improved using indexed fieldsindexed fields

Only for custom codeOnly for custom code

Page 38: Release 11i Performance Tuning Workshop – Implementations & Post Go-Live

38© 2002 Solution Beacon, LLC. All Rights Reserved.

CBO Feeding – SQL Tuning

HintsHints Used to provide Oracle with a suggested Used to provide Oracle with a suggested

path to take.path to take. Only a suggestion, it may still choose Only a suggestion, it may still choose

another pathanother path Can hint to useCan hint to use

Rule Based OptimizationRule Based Optimization Specific IndexSpecific Index

Can place a hint on Concurrent Can place a hint on Concurrent ProgramsPrograms

Page 39: Release 11i Performance Tuning Workshop – Implementations & Post Go-Live

39© 2002 Solution Beacon, LLC. All Rights Reserved.

CBO Feeding – SQL Tuning Hint a Concurrent ProgramHint a Concurrent Program

Page 40: Release 11i Performance Tuning Workshop – Implementations & Post Go-Live

40© 2002 Solution Beacon, LLC. All Rights Reserved.

CBO Tools, Tips & Tricks

Items Worth NotingItems Worth Noting Trace Files and Explain Plan from 3Trace Files and Explain Plan from 3rdrd

party may differ.party may differ. Index chosen references fields not Index chosen references fields not

existing in where clauseexisting in where clause

Page 41: Release 11i Performance Tuning Workshop – Implementations & Post Go-Live

41© 2002 Solution Beacon, LLC. All Rights Reserved.

CBO Tools, Tips & TricksCBO Tools, Tips & Tricks

How to determine when statistics How to determine when statistics were last gathered?were last gathered?

Run FND.STATS.VERIFY_STATS to check Run FND.STATS.VERIFY_STATS to check when statistics were last gathered.when statistics were last gathered.Example:Example:SQL> set server output onSQL> set server output onSQL> set long 10000SQL> set long 10000

SQL> exec fnd_stats.verify_stats SQL> exec fnd_stats.verify_stats (‘QP’, ‘QP.QP_LIST_LINES’);(‘QP’, ‘QP.QP_LIST_LINES’);

Page 42: Release 11i Performance Tuning Workshop – Implementations & Post Go-Live

42© 2002 Solution Beacon, LLC. All Rights Reserved.

CBO Tools, Tips & TricksCBO Tools, Tips & Tricks

Use Use coe_stats.sqlcoe_stats.sql script provided script provided by Oracle supportby Oracle support Verifies statistics for all tables owned Verifies statistics for all tables owned

by installed apps modules by installed apps modules Generates COE_STATS.TXT report and Generates COE_STATS.TXT report and

coe_fix_stats.sql scriptcoe_fix_stats.sql script For more info see MetaLink Note For more info see MetaLink Note

156968.1156968.1

Page 43: Release 11i Performance Tuning Workshop – Implementations & Post Go-Live

43© 2002 Solution Beacon, LLC. All Rights Reserved.

CBO Tools, Tips & TricksCBO Tools, Tips & Tricks

Use Use bde_last_analyzed.sqlbde_last_analyzed.sql script script from Oracle supportfrom Oracle support Validates statistics for all tablesValidates statistics for all tables Use it when bad overall database Use it when bad overall database

performance is noticedperformance is noticed Generates bde_last_analyzed.txt reportGenerates bde_last_analyzed.txt report For more info see Metalink Note For more info see Metalink Note

163208.1163208.1

Page 44: Release 11i Performance Tuning Workshop – Implementations & Post Go-Live

44© 2002 Solution Beacon, LLC. All Rights Reserved.

CBO Tools, Tips & TricksCBO Tools, Tips & Tricks

How to determine when statistics How to determine when statistics were last gathered?were last gathered? Run the following sql query to for Run the following sql query to for

individual tables:individual tables:select table_name, num_rows, blocks, select table_name, num_rows, blocks, avg_row_len, avg_row_len,

to_char (to_char (last_analyzedlast_analyzed ‘MM/DD/YYYY ‘MM/DD/YYYY HH24:MI:SS’)HH24:MI:SS’)

where table_name in from where table_name in from dba_tablesdba_tables (‘TABLE1’, ‘TABLE2’, ….’TABLEn’);(‘TABLE1’, ‘TABLE2’, ….’TABLEn’);

Page 45: Release 11i Performance Tuning Workshop – Implementations & Post Go-Live

45© 2002 Solution Beacon, LLC. All Rights Reserved.

CBO Tools, Tips & TricksCBO Tools, Tips & Tricks

How to determine when statistics were How to determine when statistics were last gathered?last gathered? Run the following sql query to check indexes:Run the following sql query to check indexes:

SELECTSELECT index_name, num_rows, index_name, num_rows, distinct_keys “DISTINCT”, leaf_blocks, distinct_keys “DISTINCT”, leaf_blocks, clustering_factor “CF”, clustering_factor “CF”, avg_leaf_blocks_per_key “AVG_LB”avg_leaf_blocks_per_key “AVG_LB”

FROM dba_indexesFROM dba_indexes WHERE table_name in (‘TABLE1’, ‘TABLE2’, WHERE table_name in (‘TABLE1’, ‘TABLE2’,

….’TABLEn’);….’TABLEn’);

Page 46: Release 11i Performance Tuning Workshop – Implementations & Post Go-Live

46© 2002 Solution Beacon, LLC. All Rights Reserved.

CBO Tools, Tips & TricksCBO Tools, Tips & Tricks

When Should You Gather Statistics?When Should You Gather Statistics? The right schedule depends on your The right schedule depends on your

data and how often it changesdata and how often it changes Recommendation gather the CBO Recommendation gather the CBO

statistics at least once per weekstatistics at least once per week Gather statistics more frequently on Gather statistics more frequently on

the tables with high number of the tables with high number of transactionstransactions

Page 47: Release 11i Performance Tuning Workshop – Implementations & Post Go-Live

47© 2002 Solution Beacon, LLC. All Rights Reserved.

CBO Tools, Tips & TricksCBO Tools, Tips & Tricks

When Should You Gather Statistics?When Should You Gather Statistics? Never gather CBO stats for SYS or Never gather CBO stats for SYS or

SYSTEM data dictionary objectsSYSTEM data dictionary objects Gather statistic after:Gather statistic after:

a large amount of data has been entered into a large amount of data has been entered into your system your system

an upgradean upgrade applying mini packs or maintenance packsapplying mini packs or maintenance packs Understand what actions cause dramatic Understand what actions cause dramatic

differences in the number of records in a table differences in the number of records in a table (inserts, updates, deletes)(inserts, updates, deletes)

Page 48: Release 11i Performance Tuning Workshop – Implementations & Post Go-Live

48© 2002 Solution Beacon, LLC. All Rights Reserved.

CBO Tools, Tips & TricksCBO Tools, Tips & Tricks

When Should You Gather Statistics?When Should You Gather Statistics? Gather statistics during low system load Gather statistics during low system load

periods, when number of active users is periods, when number of active users is minimumminimum

Why?Why? When object statistic are refreshed all When object statistic are refreshed all

references to that object become invalid references to that object become invalid in the shared pool or library cache, in the shared pool or library cache, requiring a new hard parse for each sql requiring a new hard parse for each sql statement referencing the objectstatement referencing the object

Page 49: Release 11i Performance Tuning Workshop – Implementations & Post Go-Live

© 2002 Solution Beacon, LLC. All Rights Reserved.

Questions & Answers

Thank you

Sandra VucinicSandra Vucinic

[email protected]@us.ssiworldwide.com

Tammy VandermeyTammy Vandermey

[email protected]@webcentrix.net

Randy GieferRandy Giefer

[email protected]@solutionbeacon.com

Page 50: Release 11i Performance Tuning Workshop – Implementations & Post Go-Live

© 2002 Solution Beacon, LLC. All Rights Reserved.

Performance Tuning - Archive/Purge

Page 51: Release 11i Performance Tuning Workshop – Implementations & Post Go-Live

51© 2002 Solution Beacon, LLC. All Rights Reserved.

11i and Data Growth ManagementThe game has changed!

Upgrade storage explosion 20-50%Upgrade storage explosion 20-50% 11i storage growth rate increase 20-11i storage growth rate increase 20-

400%400% New data model = more New data model = more

data/transactiondata/transaction Reduce custom codeReduce custom code Consolidate software packages Consolidate software packages Consolidate geographiesConsolidate geographies

Page 52: Release 11i Performance Tuning Workshop – Implementations & Post Go-Live

52© 2002 Solution Beacon, LLC. All Rights Reserved.

The Application Data Growth Paradox

Performance

Time

Data

Cost

Upgrade Treadmill

Instance de-consolidation

Inactive Data

Active Data

Unmanaged Data Growth

Success = Problems

Page 53: Release 11i Performance Tuning Workshop – Implementations & Post Go-Live

53© 2002 Solution Beacon, LLC. All Rights Reserved.

11i and Data Growth – Financials Earlier Adopter

-

10.00

20.00

30.00

40.00

50.00

60.00

70.00

Oct

-00

Dec

-00

Feb

-01

Apr

-01

Jun-

01

Aug

-01

Oct

-01

Dec

-01

Feb

-02

Dat

a in

GB

11i Upgrade

10.7 Growth 1.5 GB/month

11i Growth 2.5 GB/month69% increase

26% Data GrowthAt Upgrade

Page 54: Release 11i Performance Tuning Workshop – Implementations & Post Go-Live

54© 2002 Solution Beacon, LLC. All Rights Reserved.

11i Considerations: Performance Decay11i Considerations: Performance Decay

1.0

1.5

2.0

2.5

3.0

3.5

4.0

4.5

5.0

5.5

6.0

Mar

-01

Apr

-01

May

-01

Jun-

01

Jul-0

1

Aug

-01

Sep

-01

Oct

-01

Nov

-01

Dec

-01

Jan-

02

Feb

-02

Dai

ly A

vera

ge

Ru

n T

ime

(Min

ute

s)

Average Run Time: Average Run Time: Increase 43% Increase 43%

Total Run Time: Total Run Time: Increase 78% Increase 78%

50

100

150

200

250

300

350

400

450

500

550

Mar

-01

Apr

-01

May

-01

Jun-

01

Jul-0

1

Aug

-01

Sep

-01

Oct

-01

Nov

-01

Dec

-01

Jan-

02

Feb

-02

Dai

ly T

ota

l Ru

n T

ime

(Ho

urs

)

Concurrent Program run times 1Concurrent Program run times 1stst Year on 11i Year on 11i

Page 55: Release 11i Performance Tuning Workshop – Implementations & Post Go-Live

55© 2002 Solution Beacon, LLC. All Rights Reserved.

11i Re-Implementation – WW Mfg11i Re-Implementation – WW Mfg

0

50

100

150

200

250

300

De

c-0

0

Fe

b-0

1

Ap

r-0

1

Ju

n-0

1

Au

g-0

1

Oct-

01

De

c-0

1

Fe

b-0

2

Ap

r-0

2

Data

in

GB

11i Re-implementation

10.7 Growth 3 GB/month

11i Growth 13 GB/month4X+ increase

Conclusion: Archive early in 11i life-Conclusion: Archive early in 11i life-cyclecycle

Page 56: Release 11i Performance Tuning Workshop – Implementations & Post Go-Live

56© 2002 Solution Beacon, LLC. All Rights Reserved.

Where is this growth coming from?

New 11i Data Model =More data per transactionNew 11i Data Model =More data per transaction Order ManagementOrder Management

OE to OM = 1.5 X increaseOE to OM = 1.5 X increase Workflow = additional increaseWorkflow = additional increase

PayablesPayables New Accounting Entries tables = 1.5 X New Accounting Entries tables = 1.5 X

increaseincrease WorkflowWorkflow

Used across several applicationsUsed across several applications Data growth and performance impact Data growth and performance impact

dramaticdramatic Less custom, consolidated applications, Less custom, consolidated applications,

consolidated geographies.consolidated geographies.

Page 57: Release 11i Performance Tuning Workshop – Implementations & Post Go-Live

57© 2002 Solution Beacon, LLC. All Rights Reserved.

What Can You do About Data Growth?What Can You do About Data Growth?Most Common Oracle 11i PurgesMost Common Oracle 11i Purges

SchemaSchema PurgePurgeAP AP AP PO PurgeAP PO PurgeAR AR Call New Archive and PurgeCall New Archive and PurgeBOM BOM Delete Item Information Delete Item Information BOM BOM Purge Standard Cost HistoryPurge Standard Cost HistoryGL GL Archive and Purge Archive and Purge HR HR PayrollPayrollINV INV Transaction PurgeTransaction PurgeOM OM Sales OrdersSales OrdersFA FA Asset DepreciationAsset DepreciationPA PA Projects Projects PO PO AP PO PurgeAP PO PurgeWIP WIP WIP TransactionsWIP Transactions

* * For information on specific purges see OAUG Fall 2001 paper: An For information on specific purges see OAUG Fall 2001 paper: An Online Archive Solution Using Standard Purge Programs By Ziyad Online Archive Solution Using Standard Purge Programs By Ziyad DahbourDahbour

Page 58: Release 11i Performance Tuning Workshop – Implementations & Post Go-Live

58© 2002 Solution Beacon, LLC. All Rights Reserved.

Why Purges are not Implemented? Purges don’t workPurges don’t work

Many fixes in the last 2 yearsMany fixes in the last 2 years Get patch current before you startGet patch current before you start

Users won’t give up the dataUsers won’t give up the data Users demand access to archive Users demand access to archive

data.data. Ideally via the application interface.Ideally via the application interface.

Oracle Purges do not provide Oracle Purges do not provide access to purged data.access to purged data.

Page 59: Release 11i Performance Tuning Workshop – Implementations & Post Go-Live

59© 2002 Solution Beacon, LLC. All Rights Reserved.

Access to Archive Data is the Key

To get user buy in on purging you To get user buy in on purging you will need an Archive solution. will need an Archive solution. Considerations:Considerations: One time purge or ongoing?One time purge or ongoing? Frequency of ongoing purges?Frequency of ongoing purges? User access to data?User access to data? Upgrade path?Upgrade path? Speed of implementation?Speed of implementation?

Page 60: Release 11i Performance Tuning Workshop – Implementations & Post Go-Live

60© 2002 Solution Beacon, LLC. All Rights Reserved.

Archive Alternatives

Archive OptionsArchive Options Oracle Purge - Archive SupportOracle Purge - Archive Support Tape or Online Pre-purge Copies Tape or Online Pre-purge Copies Data WarehouseData Warehouse Build it YourselfBuild it Yourself Vendor PackagesVendor Packages

BitbyBitBitbyBitOuterBayOuterBayCrystallize Crystallize

Page 61: Release 11i Performance Tuning Workshop – Implementations & Post Go-Live

61© 2002 Solution Beacon, LLC. All Rights Reserved.

Archive Implementation

Like implementing any new feature in Like implementing any new feature in Oracle applications.Oracle applications.

Project TeamProject Team Technical: Application, and DBA.Technical: Application, and DBA.

Initial purge testingInitial purge testing Patch applicationPatch application Customization and interface impactCustomization and interface impact

Functional: Functional: Business process impactBusiness process impact Set data retention parametersSet data retention parameters TestingTesting

Page 62: Release 11i Performance Tuning Workshop – Implementations & Post Go-Live

62© 2002 Solution Beacon, LLC. All Rights Reserved.

Archive Implementation (continued)Archive Implementation (continued)

Time Frame:Time Frame: 1 – 3 months to production1 – 3 months to production Start early, before 11i pushes your Start early, before 11i pushes your

database beyond your hardware.database beyond your hardware.

Page 63: Release 11i Performance Tuning Workshop – Implementations & Post Go-Live

63© 2002 Solution Beacon, LLC. All Rights Reserved.

Learn More About 11i and Archiving?

Fall OAUG 2002Fall OAUG 2002 Oracle 11i Data Upgrade Roadmap – A Lifecycle-Oracle 11i Data Upgrade Roadmap – A Lifecycle-

Based Approach, Based Approach, Grant Gasson, Director of Financial Grant Gasson, Director of Financial Systems Systems Apollo Group, Inc.Apollo Group, Inc.

Data Migration Strategies for Oracle 11i Upgrades, Data Migration Strategies for Oracle 11i Upgrades, Rich Butterfield Rich Butterfield OuterBay TechnologiesOuterBay Technologies

Europe OAUG 2002Europe OAUG 2002 Worldwide Upgrade to Oracle 11i: A Recipe for Worldwide Upgrade to Oracle 11i: A Recipe for

Success, Robert P. Dallesandro Success, Robert P. Dallesandro Parsons-BrinckerhoffParsons-Brinckerhoff LIVING WITH FINANCIALS 11LIVING WITH FINANCIALS 11ii – 18 MONTHS IN – 18 MONTHS IN

PRODUCTION Stefan Ward, Kenny Howat PRODUCTION Stefan Ward, Kenny Howat Eaton Eaton CorporationCorporation

Page 64: Release 11i Performance Tuning Workshop – Implementations & Post Go-Live

64© 2002 Solution Beacon, LLC. All Rights Reserved.

Questions & Answers

Thank you!

Rich ButterfieldRich [email protected]@outerbay.com

Randy GieferRandy [email protected]@solutionbeacon.com