久久精品人人爽,华人av在线,亚洲性视频网站,欧美专区一二三

Oracle 11g如何修改表級別的自動收集統計信息比率

136次閱讀
沒有評論

共計 3089 個字符,預計需要花費 8 分鐘才能閱讀完成。

丸趣 TV 小編給大家分享一下 Oracle 11g 如何修改表級別的自動收集統計信息比率,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!

在 11g 之前,當表的數據量修改超過總數據量的 10%,就會晚上自動收集統計信息。
這個 STALE_PERCENT=10%,是無法修改的,如果表非常大,10% 是非常多的數據,非常有可能造成統計信息不準確。
統計信息收集窗口時間:
11g 的是 周一到周五 22:00-2:00 周六周日 6:00-2:00

SELECT w.window_name, w.repeat_interval, w.duration, w.enabled
FROM dba_autotask_window_clients c, dba_scheduler_windows w
WHERE c.window_name = w.window_name
AND c.optimizer_stats = ENABLED

WINDOW_NAME          REPEAT_INTERVAL                                              DURATION
——————– ———————————————————— —————
SUNDAY_WINDOW        freq=daily;byday=SUN;byhour=6;byminute=0; bysecond=0        +000 20:00:00
FRIDAY_WINDOW        freq=daily;byday=FRI;byhour=22;byminute=0; bysecond=0        +000 04:00:00
WEDNESDAY_WINDOW    freq=daily;byday=WED;byhour=22;byminute=0; bysecond=0        +000 04:00:00
SATURDAY_WINDOW      freq=daily;byday=SAT;byhour=6;byminute=0; bysecond=0        +000 20:00:00
THURSDAY_WINDOW      freq=daily;byday=THU;byhour=22;byminute=0; bysecond=0        +000 04:00:00
TUESDAY_WINDOW      freq=daily;byday=TUE;byhour=22;byminute=0; bysecond=0        +000 04:00:00
MONDAY_WINDOW        freq=daily;byday=MON;byhour=22;byminute=0; bysecond=0        +000 04:00:00

在 11g 之后,STALE_PERCENT=10% 是可以修改的,分為全局(DBMS_STATS.SET_GLOBAL_PREFS)和表級別(DBMS_STATS.SET_TABLE_PREFS)。表級別的設定:

    修改為 5%(范圍從 1 -100): exec dbms_stats.set_table_prefs(null, table_name , STALE_PERCENT ,5);
    恢復為 10%: exec dbms_stats.set_table_prefs(null, table_name , STALE_PERCENT ,null);
    查詢百分比:select dbms_stats.get_prefs(STALE_PERCENT ,null, table_name) from dual; 

查詢表的當前統計信息收集比率:
SQL select dbms_stats.get_prefs(STALE_PERCENT ,null, S) from dual;

DBMS_STATS.GET_PREFS(STALE_PERCENT ,NULL, S)
——————————————————————————–
10

SQL select to_char(LAST_ANALYZED, yyyy-mm-dd hh34:mi:ss) from DBA_TAB_STATISTICS where OWNER = ENTER and TABLE_NAME = S

TO_CHAR(LAST_ANALYZ
——————-
2017-09-10 00:26:10

SQL select * from dba_tab_modifications where table_name= S and TABLE_OWNER= ENTER

TABLE_OWNER                    TABLE_NAME
—————————— ——————————
PARTITION_NAME                 SUBPARTITION_NAME                 INSERTS
—————————— —————————— ———-
   UPDATES    DELETES TIMESTAMP TRU DROP_SEGMENTS
———- ———- ——— — ————-
ENTERPRISE                     S
                                                                  360773
    280456          0 03-OCT-17 NO              0

SQL SELECT s.table_name,s.num_rows,s.last_analyzed FROM dba_tables s where s.owner= ENTER and  s.table_name= S

TABLE_NAME                       NUM_ROWS LAST_ANAL
—————————— ———- ———
S                              29907073 10-SEP-17

可以看到 S 表有 29907073 行數據, INSERT 360773 行,UPDATE 280456 行數據,因為表的數據量大,10% 是非常多的數據,非常有可能造成統計信息不準確。
于是修改為 1%。

進入指定用戶下進行修改:
SQL conn ENTER/XXX;
Connected.
SQL exec dbms_stats.set_table_prefs(null, S , STALE_PERCENT ,1);

PL/SQL procedure successfully completed.

SQL select dbms_stats.get_prefs(STALE_PERCENT ,null, S) from dual; 

DBMS_STATS.GET_PREFS(STALE_PERCENT ,NULL, S)
——————————————————————————–
1

S 表的統計信息收集比率改成了 1%。

以上是“Oracle 11g 如何修改表級別的自動收集統計信息比率”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注丸趣 TV 行業資訊頻道!

正文完
 
丸趣
版權聲明:本站原創文章,由 丸趣 2023-07-24發表,共計3089字。
轉載說明:除特殊說明外本站除技術相關以外文章皆由網絡搜集發布,轉載請注明出處。
評論(沒有評論)
主站蜘蛛池模板: 泸定县| 灵宝市| 肇源县| 奉新县| 石狮市| 宜春市| 商南县| 海晏县| 江源县| 个旧市| 炉霍县| 滨海县| 双鸭山市| 东台市| 华池县| 汝南县| 兴和县| 张掖市| 崇信县| 高陵县| 博客| 岐山县| 谢通门县| 镇平县| 五原县| 介休市| 南江县| 个旧市| 田阳县| 德州市| 涡阳县| 全州县| 彰武县| 瑞昌市| 卓资县| 兴义市| 关岭| 涪陵区| 共和县| 溧阳市| 吉木萨尔县|