ITPub博客

首页 > Linux操作系统 > Linux操作系统 > 10gR2 Performance Tuning:Statistics

10gR2 Performance Tuning:Statistics

原创 Linux操作系统 作者:cargoo 时间:2010-06-29 14:41:11 0 删除 编辑
1、收集统计信息的初始化参数:STATISTICS_LEVCEL = TYPICAL or ALL, for BASIC is disable
2、自动收集统计信息:Select * from DBA_SCHEDULER Where JOB_NAME = 'GATHER_STATS_JOB';
      禁止:DBMS_SCHEDULER.DISABLE('GATHER_STATS_JOB');
3、动态采样的初始化参数:OPTIMIZER_DYNAMIC_SAMPLING = 2
4、收集固定对象的统计数据:DBMS_STATS.GATHER_FIXED_OBJECTS_STATS
      系统Schema的统计数据:DBMS_STATS.GATHER_DICTIONARY_STATS
5、动态采样比例:ESTIMATE_PERCENT => DBMS_STATS.AUTO_SAMPLE_SIZE 获取最大性能增益
6、采样的并行度:DEGREE => DBMS_STATS.AUTO_DEGREE
7、分区对象的采样:GRANULARITY
8、列统计信息和直方图:METHOD_OPT => 'FOR ALL COLUMNS SIZE AUTO'
9、确定Stale统计信息:Select * from USER_TAB_MODIFICATIONS;
      立即刷新内存中的监控信息:DBMS_STATS.FLUSH_DATABASE_MONITORING_INFO
10、系统统计信息System Statistics:分为Workload Statistics和NoWorkload Statistics。描述系统硬件特性,如:IO、CPU性能/利用率;提供给优化器作为执行计划的分析参数。
        过程:DBMS_STATS.GATHER_SYSTEM_STATISTICS
        权限:DBA
        角色:GATHER_SYSTEM_STATISTICS
11、负载统计信息Workload Statistics:收集单块/多块读取时间sreadtim/mreadtim、mbrc、CPU速度cpuspeed、最大系统流量、平均附加流量。

    These values are implemented through counters that change when the buffer cache completes synchronous read requests. Since the counters are in the buffer cache, they include not only I/O delays, but also waits related to latch contention and task switching. Workload statistics thus depend on the
activity the system had during the workload window.

        收集方式:DBMS_STATS.GATHER_SYSTEM_STATS('start');
                            DBMS_STATS.GATHER_SYSTEM_STATS('interval', interval=>'分钟数‘);
                            DBMS_STATS.GATHER_SYSTEM_STATS('stop');
                            DBMS_STATS.DELETE_SYSTEM_STATS();
12、多块读取计数Multiblock Read Count mbrc:10.2使用该值进行Full Table Scan计算。优化器假设mbrc=8,而不是使用DB_FILE_MULTIBLOCK_READ_COUNT参数值。在OLTP系统中,有可能mbrc、mreadtim值不能被采集到,那么sreadtim、cpuspeed可能会被用于计算FTS的代价;或者强制FTS进入串行模式以计算代价。
13、非负载统计信息NoWorkload Statistics:收集IO传输速度、IO搜寻时间、CPU速度cpuspeednw。Workload Statistics和NoWorkload Statistics的最大不同是收集方式:Workload Statistics通过统计数据库活动的计数器来获取,NoWorkload Statistics通过随机读取数据文件来获取。
        ioseektim:定位磁盘到读取数据的时间。5ms - 15ms
        iotrfspeed:从IO系统读取数据的速度。
        收集方式:DBMS_STATS.GATHER_SYSTEM_STATS();

管理统计信息
1、收集统计信息的历史记录
      DBA_OPTSTAT_OPERATIONS:存放Database和Schema层级的统计操作记录
      USER_TAB_STATS_HISTORY:存放Table层级的统计操作记录
2、管理统计信息的历史记录:老的统计信息定期被清除(默认32天),使用过程DBMS_STATS.ALTER_STATS_HISTORY_RETENTION修改清除间隔
       DBMS_STATS.PURGE_STATS:手工清除统计信息
       DBMS_STATS.GET_STATS_HISTORY_RETENTION
       DBMS_STATS.GET_STATS_HISTORY_AVAILABILITY
3、输出、输入统计信息
    源库:
       DBMS_STATS.CREATE_STAT_TABLE(’username‘, 'stats_table_name')
       DBMS_STATS.EXPORT_*_STATS()
    将表“username.stats_table_name”exp/imp
    目标库:
       DBMS_STATS.IMPORT_*_STATS()
       DBMS_STATS.DROP_STAT_TABLE()
ZT:http://www.oracle-base.com/articles/8i/CostBasedOptimizerAndDatabaseStatistics.php
4、基于时间点恢复先前版本的统计信息:DBMS_STATS.RESTORE_*_STATS
5、LOCK/UNLOCK统计信息:
      DBMS_STATS.LOCK(UNLOCK)_TABLE(SCHEMA)_STATS

基于动态采样方式进行统计信息估算OPTIMIZER_DYNAMIC_SAMPLING
        The purpose of dynamic sampling is to improve server performance by determining more accurate estimates for predicate selectivity and statistics for tables and indexes. The statistics for tables and indexes include table block counts, applicable index block counts, table cardinalities, and relevant join column statistics. These more accurate estimates allow the optimizer to produce better performing plans.

统计信息丢失时的默认值
Default Table Values When Statistics Are Missing
 Table Statistic  Default Value Used by Optimizer
 Cardinality  num_of_blocks * (block_size - cache_layer) / avg_row_len
 Average row length  100 bytes
 Number of blocks  100 or actual value based on the extent map
 Remote cardinality  2000 rows
 Remote average row
length
 100 bytes
 
Default Index Values When Statistics Are Missing
 Index Statistic   Default Value Used by Optimizer
 Levels  1
 Leaf blocks  25
 Leaf blocks/key  1
 Data blocks/key  1
 Distinct keys  100
 Clustering factor  800

查看统计信息:
DBA_INDEXES
DBA_IND_STATISTICS
DBA_CLUSTERS
DBA_TAB_PARTITIONS
DBA_TAB_SUBPARTITIONS
DBA_IND_PARTITIONS
DBA_IND_SUBPARTITIONS
DBA_PART_COL_STATISTICS
DBA_PART_HISTOGRAMS
DBA_SUBPART_COL_STATISTICS
DBA_SUBPART_HISTOGRAMS

查看直方图:
1、
Select column_name, num_distinct, num_buckets, histogram from USER_TAB_COL_STATISTICS;
Select endpoint_number, endpoint_value from USER_HISTOGRAMS;
Select endpoint_number, endpoint_value from USER_TAB_HISTOGRAMS;
2、判断是Height-Balanced Histogram Statistics还是Frequency Histogram Statistics,看USER_TAB_COL_STATISTICS.HISTOGRAM的值


3、

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/5359/viewspace-666585/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论
熟悉Oracle、MySQL、PostgreSQL, 熟悉WebLogic

注册时间:2009-02-10

  • 博文量
    105
  • 访问量
    235417