2010-03-23 88 views
1

我正在編寫一些新的SQL查詢並希望檢查Oracle查詢優化程序在生產中提出的查詢計劃。如何導出Oracle統計信息

我的開發數據庫沒有任何類似生產數據庫的數據卷。

如何從生產數據庫導出數據庫統計信息並將它們重新導入到開發數據庫中?我無法訪問生產數據庫,因此我無法簡單地生成關於生產的解釋計劃,而無需通過第三方託管組織。這很痛苦。所以我想要一個本地數據庫,它在某種程度上代表了我可以嘗試不同事物的生產。

此外,這是爲遺留應用程序。我想通過添加適當的索引來「改進」模式。約束條件等。

我需要在我的開發數據庫中首先執行此操作,然後才能進行測試和生產。

如果我添加一個索引和重新生成發展的統計,則統計數據將在發展數據卷周圍產生,這使得它難以評估的影響,我對產量變化。

有沒有人有關於如何處理這個問題的提示?或者只是一旦我們在生產中發現它,它只是修復意外行爲的一個案例?我有一個包含生產卷的臨時數據庫,但我必須再次通過第三方來運行查詢,這很痛苦。所以我正在尋找方法儘可能地削減中間人。

所有這些都是使用Oracle 9i。

謝謝。

回答

3

請參閱DBMS_STATS.EXPORT_SCHEMA_STATS和DBMS_STATS.IMPORT_SCHEMA_STATS包的文檔。如果您無權訪問,您必須讓擁有必要權限的人員在生產數據庫中爲您導出數據。如果你的開發硬件比你的生產硬件顯著不同,你也應該導出/導入系統的統計與EXPORT/IMPORT_SYSTEM_STATS程序。

記得關閉任何工作在你這樣做後重新計算統計數據的開發數據庫。