zoukankan      html  css  js  c++  java
  • [bbk2344] 第49集 Chapter 12Optimizing Sore Perations(04)

    Generating Histograms

    Histogram statistics are generated by:

    SQL>EXECUTE dbms_stats.gather_table_stats('HR','EMPLOYEES',METHOD_OPT => 'FOR COLUMNS SIZE 10 salary') ;

    Histograms are specified using the METHOD_OPT argument of the DBMS_STATS gathering procedure.Oracle recommends setting the MEHTHOD_OPT to FOR ALL COLUMNS SIZE AUTO.Wtih this setting,Oracle automatically determines which columns require histograms and the number of buckets(size) of each histogram.You can also manually specify which columns should have histograms and the size of each histogram.

    准备测试数据
    SQL> begin
      2  for i in 1..100
      3  loop
      4      insert into t values(i,'arcerzhang');
      5  end loop;
      6  commit;
      7  end;
      8  /
    
    PL/SQL procedure successfully completed.
    
    SQL> select * from t;
    
            ID NAME
    ---------- ------------------------------
             1 arcerzhang
             2 arcerzhang
             3 arcerzhang
             4 arcerzhang
             5 arcerzhang
             6 arcerzhang
             7 arcerzhang
             8 arcerzhang
             9 arcerzhang
            10 arcerzhang
            11 arcerzhang
    
            ID NAME
    ---------- ------------------------------
            12 arcerzhang
            13 arcerzhang
            14 arcerzhang
            15 arcerzhang
            16 arcerzhang
            17 arcerzhang
            18 arcerzhang
            19 arcerzhang
            20 arcerzhang
            21 arcerzhang
            22 arcerzhang
    
            ID NAME
    ---------- ------------------------------
            23 arcerzhang
            24 arcerzhang
            25 arcerzhang
            26 arcerzhang
            27 arcerzhang
            28 arcerzhang
            29 arcerzhang
            30 arcerzhang
            31 arcerzhang
            32 arcerzhang
            33 arcerzhang
    
            ID NAME
    ---------- ------------------------------
            34 arcerzhang
            35 arcerzhang
            36 arcerzhang
            37 arcerzhang
            38 arcerzhang
            39 arcerzhang
            40 arcerzhang
            41 arcerzhang
            42 arcerzhang
            43 arcerzhang
            44 arcerzhang
    
            ID NAME
    ---------- ------------------------------
            45 arcerzhang
            46 arcerzhang
            47 arcerzhang
            48 arcerzhang
            49 arcerzhang
            50 arcerzhang
            51 arcerzhang
            52 arcerzhang
            53 arcerzhang
            54 arcerzhang
            55 arcerzhang
    
            ID NAME
    ---------- ------------------------------
            56 arcerzhang
            57 arcerzhang
            58 arcerzhang
            59 arcerzhang
            60 arcerzhang
            61 arcerzhang
            62 arcerzhang
            63 arcerzhang
            64 arcerzhang
            65 arcerzhang
            66 arcerzhang
    
            ID NAME
    ---------- ------------------------------
            67 arcerzhang
            68 arcerzhang
            69 arcerzhang
            70 arcerzhang
            71 arcerzhang
            72 arcerzhang
            73 arcerzhang
            74 arcerzhang
            75 arcerzhang
            76 arcerzhang
            77 arcerzhang
    
            ID NAME
    ---------- ------------------------------
            78 arcerzhang
            79 arcerzhang
            80 arcerzhang
            81 arcerzhang
            82 arcerzhang
            83 arcerzhang
            84 arcerzhang
            85 arcerzhang
            86 arcerzhang
            87 arcerzhang
            88 arcerzhang
    
            ID NAME
    ---------- ------------------------------
            89 arcerzhang
            90 arcerzhang
            91 arcerzhang
            92 arcerzhang
            93 arcerzhang
            94 arcerzhang
            95 arcerzhang
            96 arcerzhang
            97 arcerzhang
            98 arcerzhang
            99 arcerzhang
    
            ID NAME
    ---------- ------------------------------
           100 arcerzhang
    
    100 rows selected.
    对ID列创建10个桶(buckets)
    SQL> EXEC dbms_stats.gather_table_stats('HR','T',method_opt=>'FOR COLUMNS SIZE 10 id');
    
    PL/SQL procedure successfully completed.
    生成直方图
    SQL> SELECT endpoint_number,endpoint_value FROM dba_histograms WHERE owner='HR' and table_name = 'T' AND column_name = 'ID';
    
    ENDPOINT_NUMBER ENDPOINT_VALUE
    --------------- --------------
                  0              1
                  1             10
                  2             20
                  3             30
                  4             40
                  5             50
                  6             60
                  7             70
                  8             80
                  9             90
                 10            100
    
    11 rows selected.

    Gather Statistics Estimates

    • dbms_stats.auto_samp[le_size:
    • New estimate_percent value
    • MEHTOD_OPT options:
      • -REPEAT:New histogram with same number of buckets
      • -AUTO:Net histogram based on data distribution and application workload
      • -SKEWONLY:New histogram based on data distribution
    SQL>EXECUTE dbms_status.gather_schema_stats(ownname => 'OE',estimate_percent => DBMS_STATS.AUTO_SAMPLE_SIZE,method_opt => 'for all columns size AUTO');

    Auto Statistics Collecting

    For the dbms_status.gather_schema_stats procedure set OPTIONS to:

    • Gather stale
    • Gather Empty
    • Gather Auto
    SQL>EXEC dbms_stats.gather_schema_stats(OWNNAME => 'OE',OPTIONS => 'GATHER AUTO');

    如何让一张表处于被监控状态?

    alter table hr.t monitoring; 

    Statistics分为四大类

    • Table
    • Index
    • Column
    • System

    Optimizer Cost Model

    • Three columns in plan_table are:
      • -cpu_cost:Estimated CPU cost of the operation
      • -io_cost:Estimated I/O cost of the operation
      • -temp_space:Estimated temporary space(in bytes)
    • Include CPU usage
    • Accounts for the effect of caching
    • Accounts for index prefetching
  • 相关阅读:
    《linux 内核全然剖析》 笔记 CODE_SPACE 宏定义分析
    Item 8:析构函数不要抛出异常 Effective C++笔记
    Eclipse经常使用快捷键
    多人即时战斗游戏服务端系列[2]--90坦克Online游戏对象介绍以及渲染机制
    STM8S awu及看门狗IWDG WWDG应用(转)
    使用STM8SF103 ADC采样电压(转)
    BHS-STM32工具系列
    STM32 FLASH模拟EEPROM 使用和优化(转)
    STM32+NRF24L01无线(转)
    像51一样操作STM32的IO(转)
  • 原文地址:https://www.cnblogs.com/arcer/p/3065214.html
Copyright © 2011-2022 走看看