oracle 11g統計資訊收集
1、不同資料庫版本的預設設定:
1)estimate_percent的預設值:
9i: 100%
10g: DBMS_STATS.AUTO_SAMPLE_SIZE(使用非常小的估算百分比)
11g:DBMS_STATS.AUTO_SAMPLE_SIZE(100%)
2) METHOD_OPT:defaults:
9i: "FOR ALL COLUMNS SIZE 1",等同於沒有列值的具體分佈資訊。
10g and11g:“FOR ALL COLUMNS SIZE AUTO"。
設定成AUTO意味著如果histogram的存在會有助於生成更準確的執行計劃,DBMS_STATS會自動在需要的欄位上生成它。
在11g中,AUTO_SAMPLE_SIZE的預設值是100%,從而儘可能使統計資訊是準確的。在之前的版本上,由於時間的制約,100%的sample size有時候是不可能的,由於11G實施了一個新的hash演算法避免了傳統的排序(在9i和10g典型慢的部分是排序),這顯著的減少了收集的時間並提升了資源使用效率。同樣,是否收集列上的統計資訊也是自動決定的。
2、快速重建統計資訊的推薦步驟:
為快速刪除和重建某張表及它的索引的統計資訊(包含非均勻分佈列的統計資訊):
exec dbms_stats.delete_table_stats(ownname=>'user_name',
tabname=>'table_name',cascade_indexes=>true);
exec dbms_stats.gather_table_stats(ownname=>'user_name',
tabname=>'table_name',
estimate_percent=>DBMS_STATS.AUTO_SAMPLE_SIZE,
cascade=>true,
method_opt=>'for all columns size AUTO');
3、統計資訊收集命令的幾種情況
a、收集表的統計資訊
exec dbms_stats.gather_table_stats(
ownname=>'schema_name',
tabname=>'table_name',
estimate_percent=>DBMS_STATS.AUTO_SAMPLE_SIZE,
cascade=>true,
method_opt=>'FOR ALL COLUMNS SIZE AUTO');
b、收集某一schema下的所有物件的統計資訊
exec dbms_stats.gather_schema_stats(
ownname=>'schema_name',
cascade=>true,
method_opt=>'FOR ALL COLUMNS SIZE AUTO');
C、收集database中所有物件的統計資訊
exec dbms_stats.gather_database_stats(
cascade=>true,
method_opt=>'FOR ALL COLUMNS SIZE AUTO');
禁用自動統計資訊收集作業
begin
dbms_auto_task_admin.disable
(client_name=>'auto optimizer stats collection',
operation=>null,
window_name=>null);
end;
/
1)estimate_percent的預設值:
9i: 100%
10g: DBMS_STATS.AUTO_SAMPLE_SIZE(使用非常小的估算百分比)
11g:DBMS_STATS.AUTO_SAMPLE_SIZE(100%)
2) METHOD_OPT:defaults:
9i: "FOR ALL COLUMNS SIZE 1",等同於沒有列值的具體分佈資訊。
10g and11g:“FOR ALL COLUMNS SIZE AUTO"。
設定成AUTO意味著如果histogram的存在會有助於生成更準確的執行計劃,DBMS_STATS會自動在需要的欄位上生成它。
在11g中,AUTO_SAMPLE_SIZE的預設值是100%,從而儘可能使統計資訊是準確的。在之前的版本上,由於時間的制約,100%的sample size有時候是不可能的,由於11G實施了一個新的hash演算法避免了傳統的排序(在9i和10g典型慢的部分是排序),這顯著的減少了收集的時間並提升了資源使用效率。同樣,是否收集列上的統計資訊也是自動決定的。
2、快速重建統計資訊的推薦步驟:
為快速刪除和重建某張表及它的索引的統計資訊(包含非均勻分佈列的統計資訊):
exec dbms_stats.delete_table_stats(ownname=>'user_name',
tabname=>'table_name',cascade_indexes=>true);
exec dbms_stats.gather_table_stats(ownname=>'user_name',
tabname=>'table_name',
estimate_percent=>DBMS_STATS.AUTO_SAMPLE_SIZE,
cascade=>true,
method_opt=>'for all columns size AUTO');
3、統計資訊收集命令的幾種情況
a、收集表的統計資訊
exec dbms_stats.gather_table_stats(
ownname=>'schema_name',
tabname=>'table_name',
estimate_percent=>DBMS_STATS.AUTO_SAMPLE_SIZE,
cascade=>true,
method_opt=>'FOR ALL COLUMNS SIZE AUTO');
b、收集某一schema下的所有物件的統計資訊
exec dbms_stats.gather_schema_stats(
ownname=>'schema_name',
cascade=>true,
method_opt=>'FOR ALL COLUMNS SIZE AUTO');
C、收集database中所有物件的統計資訊
exec dbms_stats.gather_database_stats(
cascade=>true,
method_opt=>'FOR ALL COLUMNS SIZE AUTO');
禁用自動統計資訊收集作業
begin
dbms_auto_task_admin.disable
(client_name=>'auto optimizer stats collection',
operation=>null,
window_name=>null);
end;
/
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/22969361/viewspace-1123840/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 【Oracle】11g Oracle自動收集統計資訊Oracle
- Oracle 11g手工收集表統計資訊Oracle
- Oracle 11g 統計資訊收集指令碼Oracle指令碼
- ORACLE 11g 自動收集統計資訊Oracle
- Oracle 11g 之自動收集統計資訊Oracle
- Oracle收集統計資訊Oracle
- Oracle 統計資訊收集Oracle
- 收集oracle統計資訊Oracle
- ORACLE 收集統計資訊Oracle
- [統計資訊系列7] Oracle 11g的自動統計資訊收集Oracle
- Oracle 11g無法自動收集統計資訊Oracle
- oracle 11g自動收集統計資訊介紹Oracle
- Oracle 11g新特性之收集多列統計資訊Oracle
- 【統計資訊】Oracle常用的收集統計資訊方式Oracle
- Oracle統計資訊自動收集Oracle
- oracle收集統計資訊job停止Oracle
- oracle 統計資訊檢視與收集Oracle
- ORACLE 統計資訊的收集與管理Oracle
- Oracle 11g 修改表級別的自動收集統計資訊比率Oracle
- Oracle 11g 建立臨時window時間視窗 收集統計資訊Oracle
- [Oracle] Oracle收集統計資訊的取樣比例Oracle
- Oracle 11g系統自動收集統計資訊的一些知識Oracle
- Oracle運維指令碼-收集統計資訊Oracle運維指令碼
- oracle統計資訊--直方圖的收集:Oracle直方圖
- 重新收集oracle表的統計資訊Oracle
- 關於oracle自動收集統計資訊Oracle
- Oracle統計資訊的收集和維護Oracle
- Oracle11g 統計資訊-----統計資訊自動收集任務Oracle
- Oracle11g 統計資訊——統計資訊自動收集任務Oracle
- Oracle 11G 統計資訊TaskOracle
- oracle統計資訊 使用dbms_stats包收集統計資料Oracle
- Oracle收集統計資訊之NO_INVALIDATE引數Oracle
- Oracle檢視查詢慢之統計資訊收集Oracle
- Oracle10g 統計資訊的自動收集Oracle
- ORACLE10g自動收集CBO統計資訊Oracle
- 收集全庫統計資訊
- mysql如收集統計資訊MySql
- MySQL 5.5 統計資訊收集MySql