zoukankan      html  css  js  c++  java
  • [bbk2342] 第47集 Chapter 09Optimizing Sore Perations(02)

    总结

    Table statistics ---> DBA_TABLES;

    获取Table statistics,通过DBA_TABLES 数据字典
    SQL> cldesc DBA_TABLES;
     Name                                      Null?    Type
     ----------------------------------------- -------- ----------------------------
     OWNER                                     NOT NULL VARCHAR2(30)
     TABLE_NAME                                NOT NULL VARCHAR2(30)
     TABLESPACE_NAME                                    VARCHAR2(30)
     CLUSTER_NAME                                       VARCHAR2(30)
     IOT_NAME                                           VARCHAR2(30)
     STATUS                                             VARCHAR2(8)
     PCT_FREE                                           NUMBER
     PCT_USED                                           NUMBER
     INI_TRANS                                          NUMBER
     MAX_TRANS                                          NUMBER
     INITIAL_EXTENT                                     NUMBER
     NEXT_EXTENT                                        NUMBER
     MIN_EXTENTS                                        NUMBER
     MAX_EXTENTS                                        NUMBER
     PCT_INCREASE                                       NUMBER
     FREELISTS                                          NUMBER
     FREELIST_GROUPS                                    NUMBER
     LOGGING                                            VARCHAR2(3)
     BACKED_UP                                          VARCHAR2(1)
     NUM_ROWS                                           NUMBER
     BLOCKS                                             NUMBER
     EMPTY_BLOCKS                                       NUMBER
     AVG_SPACE                                          NUMBER
     CHAIN_CNT                                          NUMBER
     AVG_ROW_LEN                                        NUMBER
     AVG_SPACE_FREELIST_BLOCKS                          NUMBER
     NUM_FREELIST_BLOCKS                                NUMBER
     DEGREE                                             VARCHAR2(10)
     INSTANCES                                          VARCHAR2(10)
     CACHE                                              VARCHAR2(5)
     TABLE_LOCK                                         VARCHAR2(8)
     SAMPLE_SIZE                                        NUMBER
     LAST_ANALYZED                                      DATE
     PARTITIONED                                        VARCHAR2(3)
     IOT_TYPE                                           VARCHAR2(12)
     TEMPORARY                                          VARCHAR2(1)
     SECONDARY                                          VARCHAR2(1)
     NESTED                                             VARCHAR2(3)
     BUFFER_POOL                                        VARCHAR2(7)
     FLASH_CACHE                                        VARCHAR2(7)
     CELL_FLASH_CACHE                                   VARCHAR2(7)
     ROW_MOVEMENT                                       VARCHAR2(8)
     GLOBAL_STATS                                       VARCHAR2(3)
     USER_STATS                                         VARCHAR2(3)
     DURATION                                           VARCHAR2(15)
     SKIP_CORRUPT                                       VARCHAR2(8)
     MONITORING                                         VARCHAR2(3)
     CLUSTER_OWNER                                      VARCHAR2(30)
     DEPENDENCIES                                       VARCHAR2(8)
     COMPRESSION                                        VARCHAR2(8)
     COMPRESS_FOR                                       VARCHAR2(12)
     DROPPED                                            VARCHAR2(3)
     READ_ONLY                                          VARCHAR2(3)
     SEGMENT_CREATED                                    VARCHAR2(3)
     RESULT_CACHE                                       VARCHAR2(7)

    Index statistics ---> DBA_INDEXES;

    获取Index statistics,通过DBA_INDEXES数据字典
    SQL> cldesc DBA_INDEXES;
     Name                                      Null?    Type
     ----------------------------------------- -------- ----------------------------
     OWNER                                     NOT NULL VARCHAR2(30)
     INDEX_NAME                                NOT NULL VARCHAR2(30)
     INDEX_TYPE                                         VARCHAR2(27)
     TABLE_OWNER                               NOT NULL VARCHAR2(30)
     TABLE_NAME                                NOT NULL VARCHAR2(30)
     TABLE_TYPE                                         VARCHAR2(11)
     UNIQUENESS                                         VARCHAR2(9)
     COMPRESSION                                        VARCHAR2(8)
     PREFIX_LENGTH                                      NUMBER
     TABLESPACE_NAME                                    VARCHAR2(30)
     INI_TRANS                                          NUMBER
     MAX_TRANS                                          NUMBER
     INITIAL_EXTENT                                     NUMBER
     NEXT_EXTENT                                        NUMBER
     MIN_EXTENTS                                        NUMBER
     MAX_EXTENTS                                        NUMBER
     PCT_INCREASE                                       NUMBER
     PCT_THRESHOLD                                      NUMBER
     INCLUDE_COLUMN                                     NUMBER
     FREELISTS                                          NUMBER
     FREELIST_GROUPS                                    NUMBER
     PCT_FREE                                           NUMBER
     LOGGING                                            VARCHAR2(3)
     BLEVEL                                             NUMBER
     LEAF_BLOCKS                                        NUMBER
     DISTINCT_KEYS                                      NUMBER
     AVG_LEAF_BLOCKS_PER_KEY                            NUMBER
     AVG_DATA_BLOCKS_PER_KEY                            NUMBER
     CLUSTERING_FACTOR                                  NUMBER
     STATUS                                             VARCHAR2(8)
     NUM_ROWS                                           NUMBER
     SAMPLE_SIZE                                        NUMBER
     LAST_ANALYZED                                      DATE
     DEGREE                                             VARCHAR2(40)
     INSTANCES                                          VARCHAR2(40)
     PARTITIONED                                        VARCHAR2(3)
     TEMPORARY                                          VARCHAR2(1)
     GENERATED                                          VARCHAR2(1)
     SECONDARY                                          VARCHAR2(1)
     BUFFER_POOL                                        VARCHAR2(7)
     FLASH_CACHE                                        VARCHAR2(7)
     CELL_FLASH_CACHE                                   VARCHAR2(7)
     USER_STATS                                         VARCHAR2(3)
     DURATION                                           VARCHAR2(15)
     PCT_DIRECT_ACCESS                                  NUMBER
     ITYP_OWNER                                         VARCHAR2(30)
     ITYP_NAME                                          VARCHAR2(30)
     PARAMETERS                                         VARCHAR2(1000)
     GLOBAL_STATS                                       VARCHAR2(3)
     DOMIDX_STATUS                                      VARCHAR2(12)
     DOMIDX_OPSTATUS                                    VARCHAR2(6)
     FUNCIDX_STATUS                                     VARCHAR2(8)
     JOIN_INDEX                                         VARCHAR2(3)
     IOT_REDUNDANT_PKEY_ELIM                            VARCHAR2(3)
     DROPPED                                            VARCHAR2(3)
     VISIBILITY                                         VARCHAR2(9)
     DOMIDX_MANAGEMENT                                  VARCHAR2(14)
     SEGMENT_CREATED                                    VARCHAR2(3)

    Column statistics ---> ALL_TAB_COL_STATISTICS

    获取Column statistics,通过ALL_TAB_COL_STATISTICS
    SQL> desc ALL_TAB_COL_STATISTICS;
     Name                                      Null?    Type
     ----------------------------------------- -------- ----------------------------
     OWNER                                              VARCHAR2(30)
     TABLE_NAME                                         VARCHAR2(30)
     COLUMN_NAME                                        VARCHAR2(30)
     NUM_DISTINCT                                       NUMBER
     LOW_VALUE                                          RAW(32)
     HIGH_VALUE                                         RAW(32)
     DENSITY                                            NUMBER
     NUM_NULLS                                          NUMBER
     NUM_BUCKETS                                        NUMBER
     LAST_ANALYZED                                      DATE
     SAMPLE_SIZE                                        NUMBER
     GLOBAL_STATS                                       VARCHAR2(3)
     USER_STATS                                         VARCHAR2(3)
     AVG_COL_LEN                                        NUMBER
     HISTOGRAM                                          VARCHAR2(15)

    Segment-Level Statistics

    Statistics collected and the method of collection:

    • Logical reads:Sampled
    • Buffer busy waits:Continuous
    • Db block changes:Sampled
    • Physical reads:Continuous
    • Physical writes:Continuous
    • Physical reads direct:Continuous(直接读,读了之后存放在PGA或者UGA,不会存放在buffer cache中的.) 
    • Physical writes direct:Continuous(同上)
    • Global cache consistency read blocks served:Continuous(read consistency 读一致性)
    • Global cache current block served:Continuous
    • ITL waits:Continuous
    • Row lock waits:Continuous

    解读上述统计信息中的含义:sampled | Continuous

    sampled:统计指标信息的取样

    Continuous:自instance 启动以来,统计数据就会不断累积.

    Query the Segment-Level Statistics

    Segment-level statistics are queried using:

    • v$segstat_name:Lists the segment statistics being collected.
    • v$segstat:Displays the statistic value,statistic name,and other basic information
    • v$segment_statistics:Displays the segment owner and tablespace name in addition to all the rows contained in v$segstat.
    v$segstat_name
    SQL> desc v$segstat_name;
     Name                                      Null?    Type
     ----------------------------------------- -------- ----------------------------
     STATISTIC#                                         NUMBER
     NAME                                               VARCHAR2(64)
     SAMPLED                                            VARCHAR2(3)
    
    SQL> col name format a30
    SQL> select * from v$segstat_name;
    
    STATISTIC# NAME                           SAM
    ---------- ------------------------------ ---
             0 logical reads                  YES
             1 buffer busy waits              NO
             2 gc buffer busy                 NO
             3 db block changes               YES
             4 physical reads                 NO
             5 physical writes                NO
             6 physical read requests         NO
             7 physical write requests        NO
             8 physical reads direct          NO
             9 physical writes direct         NO
            11 optimized physical reads       NO
    
    STATISTIC# NAME                           SAM
    ---------- ------------------------------ ---
            12 gc cr blocks received          NO
            13 gc current blocks received     NO
            14 ITL waits                      NO
            15 row lock waits                 NO
            17 space used                     NO
            18 space allocated                NO
            20 segment scans                  NO
    
    18 rows selected.
    exm:根据Object#查询一张表在segment-level的统计数据信息
    SQL> desc dba_objects;
     Name                                      Null?    Type
     ----------------------------------------- -------- ----------------------------
     OWNER                                              VARCHAR2(30)
     OBJECT_NAME                                        VARCHAR2(128)
     SUBOBJECT_NAME                                     VARCHAR2(30)
     OBJECT_ID                                          NUMBER
     DATA_OBJECT_ID                                     NUMBER
     OBJECT_TYPE                                        VARCHAR2(19)
     CREATED                                            DATE
     LAST_DDL_TIME                                      DATE
     TIMESTAMP                                          VARCHAR2(19)
     STATUS                                             VARCHAR2(7)
     TEMPORARY                                          VARCHAR2(1)
     GENERATED                                          VARCHAR2(1)
     SECONDARY                                          VARCHAR2(1)
     NAMESPACE                                          NUMBER
     EDITION_NAME                                       VARCHAR2(30)
    
    SQL> select object_id from dba_objects where owner='HR' and object_name='T';
    
     OBJECT_ID
    ----------
         79428
    
    SQL> col statistic_name format a40
    SQL> select statistic_name,statistic#,value from v$segstat where dataobj#=79428;
    
    STATISTIC_NAME                           STATISTIC#      VALUE
    ---------------------------------------- ---------- ----------
    logical reads                                     0         64
    buffer busy waits                                 1          0
    gc buffer busy                                    2          0
    db block changes                                  3         16
    physical reads                                    4          0
    physical writes                                   5          8
    physical read requests                            6          0
    physical write requests                           7          1
    physical reads direct                             8          0
    physical writes direct                            9          0
    optimized physical reads                         11          0
    
    STATISTIC_NAME                           STATISTIC#      VALUE
    ---------------------------------------- ---------- ----------
    gc cr blocks received                            12          0
    gc current blocks received                       13          0
    ITL waits                                        14          0
    row lock waits                                   15          0
    space used                                       17          0
    space allocated                                  18      65536
    segment scans                                    20          0
    
    18 rows selected.

    Using Dynamic Sampling

    这个新特性,是在oracle 9i以后才有的.

    • Dynamic sampling should be used when:
    • A better plan could be found
    • The cost of collecting the statistics is minimal compared to the execution time
    • The query is executed many times.

    Enabling Dynamic Sampling

    Dynamic sampling is set using:(0-10 level,通常情况下,9i版本 OPTIMIZER_DYNAMIC_SAMPLING参数值为1,10g、11g下此参数值为2-3)

    Histograms

    • Historgrams describe the data distribution of a particular column in more deatil.
    • The give better predicate selectivity estimates for unevenly distributed data.
    • You create histograms with the dbms_stats.gather_table_stats procedure.
    • Data dictionary views:dba_histograms,dba_tab_histograms 

    Histograms的功能与作用就是,能够更加详细的分析出某一列中的数据分布情况. 

  • 相关阅读:
    世界史上最著名的十大思想实验
    excel 鼠标上下左右移动
    excel 批注
    C# TextWriter类
    C#中的Hashtable
    cython安装、使用
    Java JsonPath grab InvalidPathException in code, you must be catching Java 7's java.nio.file.InvalidPathException instead of JsonPath's com.jayway.jsonpath.InvalidPathExceptio
    Java牛角尖【007】:Java中的Error能不能被Catch
    2016亚洲城市GDP50强出炉
    全国5A级旅游景区已达250家
  • 原文地址:https://www.cnblogs.com/arcer/p/3064867.html
Copyright © 2011-2022 走看看