zoukankan      html  css  js  c++  java
  • Oracle 搜集统计信息的存储过程

    DECLARE
      CURSOR STALE_TABLE IS
        SELECT OWNER,
               SEGMENT_NAME,
               CASE
                 WHEN SIZE_GB < 0.5 THEN
                  30
                 WHEN SIZE_GB >= 0.5 AND SIZE_GB < 1 THEN
                  20
                 WHEN SIZE_GB >= 1 AND SIZE_GB < 5 THEN
                  10
                 WHEN SIZE_GB >= 5 AND SIZE_GB < 10 THEN
                  5
                 WHEN SIZE_GB >= 10 THEN
                  1
               END AS PERCENT,
               8 AS DEGREE
          FROM (SELECT OWNER,
                       SEGMENT_NAME,
                       SUM(BYTES / 1024 / 1024 / 1024) SIZE_GB
                  FROM DBA_SEGMENTS
                 WHERE OWNER = 'ADWU_OPTIMA_AP11'
                   AND SEGMENT_NAME IN
                       (SELECT /*+ UNNEST */
                        DISTINCT TABLE_NAME
                          FROM DBA_TAB_STATISTICS
                         WHERE (LAST_ANALYZED IS NULL OR STALE_STATS = 'YES')
                           AND OWNER = 'ADWU_OPTIMA_AP11')
                 GROUP BY OWNER, SEGMENT_NAME);
    
    BEGIN
      DBMS_STATS.FLUSH_DATABASE_MONITORING_INFO;
      FOR STALE IN STALE_TABLE LOOP
        DBMS_STATS.GATHER_TABLE_STATS(OWNNAME          => STALE.OWNER,
                                      TABNAME          => STALE.SEGMENT_NAME,
                                      ESTIMATE_PERCENT => STALE.PERCENT,
                                      METHOD_OPT       => 'for all columns size repeat',
                                      DEGREE           => 8,
                                      GRANULARITY      => 'ALL',
                                      CASCADE          => TRUE);
      END LOOP;
    END;
    /

  • 相关阅读:
    封装图片处理类(缩略图)
    封装表单验证类
    魔术方法
    封装自己的smartyBC类
    快捷键
    unicode
    基本数据类型课上练习
    数制总结
    12.29.作业
    12.28作业
  • 原文地址:https://www.cnblogs.com/hzcya1995/p/13352429.html
Copyright © 2011-2022 走看看