索引使用最佳化的兩個操作
analyze index t_test1_idx1 validate structure;
會話檢視 index_stats
alter index pk_emp monitoring usage ;
全域性檢視 v$object_usage
[@more@]INDEX_STATS" stores information from the lastANALYZE INDEX ... VALIDATE STRUCTUREstatement.
上面語句意思是說index_stats儲存最後一次對索引分析結構的資訊.
判斷一個所以是否需要重建,我們介紹一個簡單的方法:對一個索引進行結構分析後,如果該索引佔用超過了一個資料塊,且滿足以下條件之一:B-tree樹的高度大於3;使用百分比低於75%;資料刪除率大於15%,就需要考慮對索引重建:
特別說明:
使用百分比低於75%,有可能是因為表當前記錄資料很少造成的。這時一般不需要最佳化。
analyze index t_test1_idx1 validate structure;
Index analyzed.
SQL> select btree_space, -- if > 8192(塊的大小)
2 height, -- if > 3
3 pct_used, -- if < 75
4 del_lf_rows/(decode(lf_rows,0,1,lf_rows)) *100 as deleted_pct -- if > 20%
5 from index_stats;
BTREE_SPACE HEIGHT PCT_USED DELETED_PCT
----------- ---------- ---------- -----------
880032 2 89 0
如果超出了if 後面的值即可能需要進行 index rebuild.
注:index_stats只能在執行analyze的語句的session會話中看到數值,另外的會話是看不到的.即當前會話只能看到當前analyze分析後的結果.
--
可以用下面的過程分析所有的索引,將其寫入一張普通表中
DECLARE
BEGIN
EXECUTE IMMEDIATE 'truncate table stats_indexes';
FOR REC IN (SELECT INDEX_NAME FROM USER_INDEXES WHERE TABLE_OWNER = 'CITRIX') LOOP
EXECUTE IMMEDIATE 'analyze index ' || REC.INDEX_NAME || ' validate structure';
INSERT INTO STATS_INDEXES
SELECT * FROM INDEX_STATS;
COMMIT;
END LOOP;
END;
-----------------
2, 檢視索引是否被使用。這個檢視是系統全域性的。
alter index pk_emp monitoring usage ;
alter index pk_emp nomonitoring usage;
select * from v$object_usage ;
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/350519/viewspace-1034303/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 使用兩個FIFO完成流水操作
- 最佳化你的系統--索引(一) 正確使用索引索引
- MySQL 索引使用策略及最佳化MySql索引
- SQL最佳化案例-正確的使用索引(二)SQL索引
- 使用純粹的ABAP位操作實現兩個整數相加
- Oracle 索引的最佳化Oracle索引
- MySQL的索引最佳化MySql索引
- 關於NULL值在索引裡的兩個疑惑Null索引
- 【進階篇】使用 Stream 流對比兩個集合的常用操作分享
- 索引@oracel索引技術之索引最佳化索引
- 最佳化兩個簡單的巢狀迴圈巢狀
- vb操作Word[兩個過程]
- 函式索引的兩個應用場景示例(下)函式索引
- Elasitcsearch索引最佳化索引
- mysql最佳化索引MySql索引
- SQL Server查詢最佳化中的兩個選項SQLServer
- 最佳化SQL Server索引的技巧SQLServer索引
- 兩個棧實現佇列操作佇列
- 兩個cache:CCTextureCache、CCSpriteFrameCache的使用
- oracle索引操作Oracle索引
- SQL最佳化(一) 索引SQL索引
- 《PostgreSQL》 索引與最佳化SQL索引
- 查詢訪問同一表的兩個以上索引(三)索引
- 查詢訪問同一表的兩個以上索引(二)索引
- 查詢訪問同一表的兩個以上索引(一)索引
- 如何讓jsp使用同一個bean同時連線操作兩個不同的資料庫JSBean資料庫
- 聯合索引和多個單列索引使用中的索引命中情況及索引建立原則索引
- SQL效能最佳化之索引最佳化法SQL索引
- 對列進行連線操作會影響索引的使用索引
- 使用點陣圖連線索引最佳化OLAP查詢索引
- 管理叢集資料庫的兩個使用者與兩個命令資料庫
- 索引的使用索引
- C#中索引器的操作C#索引
- shrink 操作對索引的影響索引
- Update操作對索引的影響索引
- SQLT 最佳化SQL 用複合索引代替單列索引的案例SQL索引
- 【索引】oracle查詢使用索引和不使用索引的比較索引Oracle
- MySQL 中索引是如何實現的,有哪些型別的索引,如何進行最佳化索引MySql索引型別