回答
瞭解最終目標肯定會有所幫助。
您可以查詢GV$SQL_PLAN
表看到在共享池中哪些查詢使用特定指數
SELECT *
FROM gv$sql_plan
WHERE object_owner = <<owner of object>
AND object_name = <<name of index>>
根據您的系統,但是,SQL語句可能不會停留在共享池中特別長,所以你可能需要相對頻繁地進行調查以確保您不會錯過任何事情。根據Oracle版本,版本和許可選項,您也可以查詢AWR表以獲取歷史計劃信息。但是,這隻會提供有關查詢的信息,這些查詢的成本足夠昂貴以至於在AWR快照中捕獲這些查詢。
SELECT *
FROM dba_hist_sql_plan
WHERE object_owner = <<owner of object>
AND object_name = <<name of index>>
如果你正在嘗試完成的是要弄清楚是否正在使用的索引,但是,你可能想使用類似index monitoring,讓正在使用哪些指標甲骨文軌道。但請注意,這種方法存在缺陷。例如indexes on foreign keys對於高效刪除是必需的,可能不會被標記爲由索引監視使用(也不會僅通過查看查詢計劃來捕獲它們)。儘管索引本身沒有被使用,索引監測也可能會丟失statistics on an index are used想出一個有效計劃的情況。
如果我的最終目標是放棄不影響生產的指數,是否有另一種工具可以提供這些信息? – 2012-02-24 16:22:54
@SeanNguyen - 首先,請注意,即使沒有任何聲明曾使用特定索引,但這並不一定意味着您可以放棄它而沒有風險。關於索引的統計信息(或者由於列索引而收集的列統計信息)可能是有可能的。您可以使用索引監控(更新我的答案),但也有缺陷。 – 2012-02-24 16:39:15
我的索引是一個空間索引。它看起來不像我可以監控域索引。這是一個錯誤:SQL錯誤:ORA-29871:域索引的無效更改選項 – 2012-02-27 15:28:12
- 1. 如何記錄表上的Oracle執行所有Oracle select語句
- 2. 記錄在Oracle中的表上執行的SQL語句
- 3. 插入語句中的記錄數(Oracle)
- 4. SQL語句 - 如何在活動記錄中執行此操作?
- 5. 如何在Rails中關聯has_many記錄執行if語句
- 6. oracle如何執行sql語句?
- 7. Oracle Select語句執行
- 8. 如何記錄由Flyway執行的SQL語句?
- 9. 如何記錄ADO連接的執行語句
- 10. Oracle 11g - 如何在合併語句中執行多行?
- 11. 要並行執行的oracle索引
- 12. 如何在SELECT中執行CREATE Oracle SQL語句?
- 13. 如何在SQL Server中執行此ORACLE語句?
- 14. 如何在Dropwizard中記錄SQL語句
- 15. Oracle DML語句文件 - 執行,記錄錯誤並繼續而不中止
- 16. 如何打印mysql語句執行/將在django語句上執行?
- 17. EXECUTE ... INTO ... PL/pgSQL中的USING語句無法執行記錄?
- 18. 爲表中的每個記錄執行語句
- 19. 如何檢索SELECT語句中的記錄數
- 20. 如何在使用JOIN的UPDATE語句上執行WHERE子句?
- 21. select語句中的索引執行流程
- 22. 在PostgreSQL中執行SELECT語句時可以插入記錄嗎?
- 23. 如何執行.vimrc中的語句
- 24. 如何檢索oracle中發生兩次以上的記錄?
- 25. 如何在函數中執行語句?
- 26. 如何在python中執行import語句?
- 27. 如何在C++中執行語句?
- 28. 如何在C++中執行SQLite語句
- 29. 如何在perl中執行if語句?
- 30. 如何在Access中執行if語句?
你的最終目標是什麼,即你爲什麼要這樣做?你想知道哪些索引被使用,哪些不是?就好像你在數據庫中有很多事情一樣,你可能不得不做一些非常討厭的東西來回答你的問題,並且可能有更簡單的方法來解決它。 – Ben 2012-02-24 00:26:47
最終我需要知道我是否可以刪除桌面上的某些索引。 – 2012-02-24 15:17:02