Upload
sean-francis
View
33
Download
4
Embed Size (px)
DESCRIPTION
Overview Statistics in CMS PRD / Non-PRD Environments. What Do Statistics Do?. To execute any SQL statement, Oracle optimizer has to derive an 'execution plan'. The execution plan of a query is a description of how Oracle will implement the retrieval of data to satisfy a given SQL statement. - PowerPoint PPT Presentation
Citation preview
California State University
Common Management Systems
TUG Session: April 21, 2005 1
Overview Statistics inCMS PRD / Non-PRD Environments
TUG Session: April 21, 2005 2
California State University
Common Management Systems
What Do Statistics Do?
Cost Base Optimizer (CBO)• Utilize statistics• Oracle and PeopleSoft Recommended CBO• CMS implemented CBO in PRD/RPT and non-PRD
environments
To execute any SQL statement, Oracle optimizer has to derive an 'execution plan'. The execution plan of a query is a description of how Oracle will implement the retrieval of data to satisfy a given SQL statement.
Rule Base Optimizer (RBO)• Ignore statistics
• Oracle de-support RBO on release 10g
TUG Session: April 21, 2005 3
California State University
Common Management Systems
Where are statistics stored?
Three levels of statistics: table, index, column Statistics stored into Oracle data dictionary in
tables own by SYS account Views created on these tables to retrieve data
more easily Views prefixed with DBA_ or ALL_ or USER_
TUG Session: April 21, 2005 4
California State University
Common Management Systems
Where are statistics stored? Table Level Statistics
DBA_ALL_TABLES DBA_OBJECT_TABLES DBA_TABLES DBA_TAB_PARTITIONS DBA_TAB_SUBPARTITIONS
Table level statistics can be retrieved from: NUM_ROWS
BLOCKS EMPTY_BLOCKS* AVG_SPACE* CHAIN_CNT* AVG_ROW_LEN AVG_SPACE_FREELIST_BLOCKS NUM_FREELIST_BLOCKS SAMPLE_SIZE LAST-ANALYZED GLOBAL_STATS USER_STATS
Columns to look at are:
* Statistics gathered by ANALYZE statement.
TUG Session: April 21, 2005 5
California State University
Common Management Systems
Where are statistics stored? Index Level Statistics
DBA_INDEXES DBA_IND_PARTITIONS DBA_IND_SUBPARTITIONS
BLEVEL LEAF_BLOCKS DISTINCT_KEYS AVG_LEAF_BLOCKS_PER_KEY AVG_DATA_BLOCKS_PER_KEY CLUSTERING_FACTOR SAMPLE_SIZE LAST_ANALYZED GLOBAL_STATS USER_STATS PCT_DIRECT_ACCESS
Index level statistics can be retrieved from:
Columns to look at are:
TUG Session: April 21, 2005 6
California State University
Common Management Systems
Where are statistics stored? Column Level Statistics
DBA_TAB_COLUMNS DBA_TAB_COL_STATISTICS DBA_PART_COL_STATISTICS DBA_SUBPART_COL_STATIS
TICS
NUM_DISTINCT LOW_VALUE HIGH_VALUE DENSITY NUM_NULLS AVG_COL_LEN NUM_BUCKETS SAMPLE_SIZE LAST_ANALYZED GLOBAL_STATS USER_STATS
Column level statistics can be retrieved from:
Columns to look at are:
Note: The last three views extract statistics from DBA_TAB_COLUMNS.
TUG Session: April 21, 2005 7
California State University
Common Management Systems
How to gather Statistics?
ANALYZE statement
DBMS_UTILITY.ANALYZE_SCHEMA procedure
DBMS_STATS package
Statistics gathering methods:
TUG Session: April 21, 2005 8
California State University
Common Management Systems
How to gather Statistics? ANALYZE statement
Gathers statistics on table/indexes and columns histograms
Collect non-optimizer statistics:• Validate the structure of an index partition,
table/table partition, index-organized table, cluster, or object reference
• Identify migrated and chained rows of a table or cluster
• Collect information on freelist blocks
TUG Session: April 21, 2005 9
California State University
Common Management Systems
How to gather Statistics? ANALYZE statement
Estimate statistics:• ANALYZE TABLE tablename ESTIMATE STATISTICS
SAMPLE 30 PERCENT;
Compute statistics:• ANALYZE TABLE tablename COMPUTE STATISTICS;
Note:
• The above ANALYZE statements will gather statistics for table, indexes and histograms on ALL columns for the table and it will cause performance issues with CMS automated gather stats (StatRanger)
• Oracle document does not recommend using the ANALYZE statement to gather optimizer statistics in 8i/9i
TUG Session: April 21, 2005 10
California State University
Common Management Systems
How to gather Statistics? DBMS_UTILITY.ANALYZE_SCHEMA
Run ANALYZE statement on each table in the specified schema
Gathers statistics on table, all indexes, histogram on ALL columns (default bucket size 75)
Note:• The DBMS_UTILITY.ANALYZE_SCHEMA procedure
will cause performance issues with CMS automated gather stats process
• Oracle document does not recommend using the DBMS_UTILITY.ANALYZE_SCHEMA procedure to gather optimizer statistics in 8i/9i
TUG Session: April 21, 2005 11
California State University
Common Management Systems
How to gather Statistics? DBMS_STATS package
Generate and manage statistics only for cost-based optimization
Collect, delete, modify, view, export, import statistics and gather stale tables
Gather only statistics for database objects that have impact on the optimizer
Set or get statistics Transfer statistics Gather statistics in parallel
Note:• CMS uses DBMS_STATS package to gather optimizer statistics on
PRD/RPT, non-PRD instances
TUG Session: April 21, 2005 12
California State University
Common Management Systems
How to gather Statistics?
• Oracle no longer enhance the ANALYZE statement and DBMS_UTILITY.ANALYZE_SCHEMA procedure
• Oracle recommended DBMS_STATS package to collect optimizer statistics on 8i/9i instances
• The cost-based optimizer, which depends upon statistics, will eventually use only statistics that have been collected by DBMS_STATS
Note:
TUG Session: April 21, 2005 13
California State University
Common Management Systems
Checking for Stale Statistics
SYS.MON_MODS$ table keeps track of modifications to tables with MONITORING column=YES
MONITORING column tracks the number of INSERT, UPDATE, and DELETE operations for the tables since the last time statistics were gathered
DBA_TAB_MODIFICATIONS, ALL_TAB_MODIFICATIONS, or USER_TAB_MODIFICATIONS views identify tables with stale statistics
Note:
• CMS uses DBMS_STATS package and MONITORING to gather stale tables every 4 hours via Oracle job
TUG Session: April 21, 2005 14
California State University
Common Management Systems
Checking for Stale Statistics
Set pagesize 100
Set linesize 120
COL NUM_ROWS FORMAT 99,999,999 HEADING 'Num Row'
COL table_name FORMAT a20 HEADING 'Table Name'
COL STALE FORMAT 999.999 HEADING 'Stale %'
Sample SQL script, which list tables with stale statistics:
SELECT b.table_name, TO_CHAR(b.LAST_ANALYZED, 'DD-MON-YY HH24:MI') Last_analyzed, ((a.INSERTS + a.UPDATES + a.DELETES)/(b.NUM_ROWS))*100 STALE, a.INSERTS, a.UPDATES, a.DELETES, b.NUM_ROWS FROM sys.dba_tab_modifications a, dba_tables b where a.table_name= b.table_name;
TUG Session: April 21, 2005 15
California State University
Common Management Systems
How CMS Gather Statistics
UNIVIEW application• Centralize the management of the utilities including the CBO statistics
gathering (StatRanger)
• Repository for CBO statistics gathering events by CBO_STATS package
• Use Oracle application form server - RCAT9P instance
StatRanger• CMS central can define the CBO methods, global CBO
exceptions, CBO exceptions for tables in each instance
• CMS central can manually force refresh statistics, reload old statistics, transfer statistics for tables and view the audit of the statistics gathering events
• Audit all changes to CBO exception rules
TUG Session: April 21, 2005 16
California State University
Common Management Systems
How CMS Gather Statistics
UNIVIEW Main Menu
StatRanger
TUG Session: April 21, 2005 17
California State University
Common Management Systems
How CMS Gather Statistics
CBO Statistics Gathering Exceptions menu option:
TUG Session: April 21, 2005 18
California State University
Common Management Systems
How CMS Gather Statistics
CBO Statistics Gathering Exceptions:
TUG Session: April 21, 2005 19
California State University
Common Management Systems
How CMS Gather Statistics
CBO Statistics Gathering Exceptions:
TUG Session: April 21, 2005 20
California State University
Common Management Systems
How CMS Gather Statistics
CBO Statistics Gathering Exceptions:
TUG Session: April 21, 2005 21
California State University
Common Management Systems
How CMS Gather Statistics
CBO Audit Events menu option:
TUG Session: April 21, 2005 22
California State University
Common Management Systems
How CMS Gather Statistics
CBO Statistic Gathering Events menu option:
TUG Session: April 21, 2005 23
California State University
Common Management Systems
How CMS Gather Statistics
Note:1. CMS automated the statistics gathering
process by executing the CBO_STATS.GATHER_STATS procedure every 4 hours via Oracle job on each instance
2. The default CBO method option for gathering statistics in CMS environments is “FOR TABLE FOR ALL INDEXES FOR ALL INDEXED COLUMNS SIZE 75”
TUG Session: April 21, 2005 24
California State University
Common Management Systems
How CMS Gather Statistics
Gather statistics on tables which have stale statistics >= 10%
Gather statistics on tables/indexes which have no statistics Turn on MONITORING for all SYSADM tables which have
MONITORING=NO Drop statistics for tables which have CBO method option as
NONE Audit the CBO events in RCAT9P
CBO_STATS.GATHER_STATS procedure:
Note:
If a table name does not exist in the global or local CBO exception lists, the default statistics gathering method is “FOR ALL INDEXED COLUMNS SIZE 75”
TUG Session: April 21, 2005 25
California State University
Common Management Systems
Why We Do It?
CMS proactively gathers statistics for any SYSADM table/index, which have no statistics or stale statistics to improve PeopleSoft processes/queries performance.