監控當前業務使用者索引
一段時間後查詢從未被使用的索引,刪除無用索引
停止監控索引
得到監控所有索引的語句:
select
'alter index ' || index_name || ' monitoring usage;'
from user_indexes;
注意:視具體業務情況,選擇一周後,一月後,兩月後(總之要保證應用的所有sql都至少跑一遍)
select * from v$object_usage where used='no';
select
'drop index '||o.index_name||';'
from v$object_usage o join user_indexes u on o.index_name = u.index_name where o.used='no'
and u.uniqueness='nonunique';
特別注意:直接drop index操作,從未被使用的索引中,主鍵不會被刪除(會給出錯誤ora-02429),但唯一性索引會被刪掉。
所以我這裡join了user_indexes,從而判斷只刪除nonunique的索引。
得到停止監控所有索引的語句:
select
'alter index ' || index_name || ' nomonitoring usage;'
from user_indexes;
每張表都是作為「段」來儲存的,可以通過user_segments檢視檢視其相應資訊。
段(segments)的定義:如果建立乙個堆組織表,則該錶就是乙個段。
sql:select segment_name as tablename,bytes from user_segments where segment_name='表名'。
解釋:segment_name 就是要查詢的表名(大寫),bytes 為表儲存所占用的位元組數。本sql的意思就是查詢出表名和表所佔的儲存空間大小。
ORACLE索引監控
對於單個索引的監控,可以使用下面的命令來完成 alter index monitoring usage 關閉索引監控 alter index nomonitoring usage 觀察監控結果 查詢v object usage檢視 select from v object usage開啟監控 執行系...
Oracle 索引的使用情況檢視
查詢使用者的索引 select index name,table name,tablespace name,index type,uniqueness status from dba indexes where owner scott 查詢使用者的索引列 select index name,tabl...
如何監控oracle的索引是否使用
很多軟體開發過程中,沒有注意合理規劃索引,造成乙個表上有n多個索引,為後續的維護和優化帶來麻煩。因此有時候需要監控已有的索引是否在使用,oracle提供了監控索引是否使用的工具,很簡單,簡要介紹一下。首先,我們如果是監控乙個表上的所有索引,可以這樣先生成監控的命令 然後執行這些指令碼就開始監控了,監...