正如標題所說,在Oracle 10g數據庫中,我想要創建一個查詢,該查詢將爲特定用戶擁有的每個索引生成一組ANALYZE INDEX命令。當談到數據庫主題時,我是一個完全的門外漢,所以請儘可能保留答案,謝謝!如何編寫一個查詢,爲某個用戶擁有的每個索引生成一組ANALYZE INDEX命令?
2
A
回答
3
因爲您使用的是Oracle 10g,所以您應該使用DBMS_STATS。這可能是實現簡單,如...
begin
for r in (select index_name from user_indexes)
loop
dbms_stats.gather_index_stats(user, r.index_name);
end loop;
end;
還有其他參數:C heck out the documentation。
如果您想要爲某些其他用戶的索引生成統計信息,請改用ALL_INDEXES,然後限制OWNER。
如果你的心臟上設置ANALYZE然後
spool anl_idx.sql
select 'analyze index '||&&owner||'.'||index_name||' compute statistics;'
from all_indexes
where owner = '&&owner';
spool off
1
可以。然而,如果你是數據庫主題的外行,我會非常擔心你正在做的事情會爲你自己造成各種各樣的問題。所以我會問你想要解決什麼問題。
- ANALYZE通常不贊成使用DBMS_STATS包的許多版本。
- 默認情況下,Oracle 10g已經擁有一個定期收集包括索引在內的對象統計信息的後臺作業。如果這被禁用,你的數據庫管理員幾乎肯定會有自己的工作來收集你幾乎肯定不想幹涉的統計數據。
- 收集統計信息有可能會改變查詢計劃,這可能會導致各種性能問題,特別是在索引統計信息與表統計信息不協調的情況下。
你可以做這樣的事情
DECLARE
p_owner VARCHAR2(30) := 'BOB'; -- Replace BOB with the user name you are interested in
BEGIN
FOR idx IN (SELECT * FROM dba_indexes WHERE owner = p_owner)
LOOP
EXECUTE IMMEDIATE 'ANALYZE INDEX ' || p_owner || '.' || idx.index_name ||
' COMPUTE STATISTICS';
END LOOP;
END;
但我真的想了解你的出發之前,我建議你實際運行這個未來。
相關問題
- 1. 如何編寫一個SQL查詢,該查詢檢索每個現有唯一ID組合的一行?
- 2. 如何查詢數據的第一個月爲每個用戶
- 3. 如何編寫生成另一個指令的AngularJS指令?
- 4. 我如何索引一個集合並允許每個索引的變量擁有一個自定義setter?
- 5. 如何檢查一個數組的某個索引是否包含一個值
- 6. 爲只有一個匹配的查詢編制索引SQL?
- 7. 編寫一個SQL查詢搜索
- 8. 如何生成每個組的編號?
- 9. 如何編寫SQL查詢來沒有產生一組爲每個分組記錄
- 10. 編寫一個Rails數組查詢
- 11. 如何寫一個循環作爲一個SQL查詢有效
- 12. 如何爲這個函數編寫一個生成器
- 13. Spring安全爲用戶從命令行生成一個salted hash
- 14. 如何編寫一個將在輸出中運行某個命令的函數?
- 15. 如何編寫一個MySQL Join查詢
- 16. 如何爲每個用戶生成唯一的ID?
- 17. 如何爲每個用戶生成唯一的密鑰?
- 18. 如何爲node.js中的每個用戶生成一張圖片
- 19. 擁有一個擁有整個對象生命週期資源的類成員是一個好主意嗎?
- 20. 爲每個數組值生成一個唯一的隨機數
- 21. TCL如何擁有一個數組作爲類的成員(Itcl)
- 22. 如何編寫一個過程自動執行一組查詢
- 23. 寫一個awk命令打印每一個具有行至少一個字段
- 24. 如何爲這個scenerio編寫一個SQL查詢?
- 25. 如何擁有一個獨特的學生編號
- 26. 爲什麼這個DQL查詢生成一個二維數組?
- 27. 如何爲這個數據生成一個SQL查詢?
- 28. 爲每個用戶生成個人ID
- 29. 如何寫一個SQL查詢來生成MySQL中的報告
- 30. 如何在linux的下一個命令中引用一個命令的結果?
請忘記統計生成的分析命令。分析已棄用,不應再次使用,因爲它與應使用的dbms_stats.gather_ *命令發生衝突。 – 2011-04-25 21:47:25
而且您可能甚至不需要手動收集索引的統計信息。默認情況下收集表統計信息也會收集索引統計信息。如果您重建或重新創建索引,則會自動生成統計信息。 – 2011-04-26 05:43:55