2008-08-31 115 views
2

何時以及如何執行Oracle統一數據表版統計信息收集9版及更高版本?如何收集統計信息,以便收集統計信息與「營業時間」相沖突的大型數據庫。Oracle統計信息收集表

回答

1

收集統計應做每當出現了對數據內容的大變化,例如大量的刪除或插入的。如果表格結構發生了變化,您還應該收集統計數據。建議使用'ESTIMATE'選項。

如果可能的話要完成這個任務的自動化進程外的營業時間,或者如果你有在工作時間內做到這一點,然後選擇的時候,有你想收集統計信息表最小訪問。

+1

我不同意使用估計的統計數據。在我的(雖然有限的)經驗中,在統計表中,「估計」與「無意義」是同義的。 – ninesided 2014-04-01 11:21:46

0

確保在使用您收集的估計(sample_percent)至少10%時。以下可能會產生非常可疑的結果。

0

考慮備份當前的統計數據收集時 - 這樣你可以比較它們(如果你有興趣),並可能恢復他們,如果你的新統計造成問題。請記住,統計信息用於確定執行計劃 - 如果您想要更改執行計劃,您只需要收集它們。

4

我不同意在進行大量刪除或插入操作後,應始終重建統計信息。一如既往,這取決於。在數據倉庫的情況下,重新構建實體化視圖時,您將執行大量的刪除和插入操作,但數據的基本結構不會更改。

如果您的內容有一個顯着變化,您只需要重新計算表上的統計信息。 而不是必然意味着在大量的刪除或插入之後,而是在刪除,插入或更新時實質性地改變關於可能的執行計劃的內容。

如果您正在截斷表和重建(這將重置您的統計數據),而不是昂貴的統計計算,您最好在截斷並存儲統計信息之前存儲統計信息,然後重建表。

爲了節省統計的當前看法你使用:

dbms_stats.export_table_stats 

,並使用他們事後恢復:(有相應的程序schemadatabase

dbms_stats.import_table_stats