• [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
  • 相关阅读:
    默认构造函数
    Android笔记(二十八) Android中图片之简单图片使用
    Android笔记(二十七) Android中的动态广播和静态广播
    Android笔记(二十六) Android中的广播——BroadcastReceiver
    <转> Android LayoutInflater详解
    Android笔记(二十五) ListView的缓存机制与BaseAdapter
    Android笔记(二十四) Android中的SeekBar(拖动条)
    Android笔记(二十三) Android中的ProgressBar(进度条)
    Android笔记(二十二) Android中的GridView
    Android笔记(二十一) Android中的Adapter
  • 原文地址:https://www.cnblogs.com/arcer/p/3065214.html
Copyright © 2020-2023  润新知