1. 程式人生 > >分析sql語句中索引是否被使用

分析sql語句中索引是否被使用

面試的時候被問了一個問題,因為對資料庫一直是我的短腿,所以沒回答出來。

問題是 如何分析表中的索引在sql語句中是否被使用。查詢了一些資料,現將使用過程進行總結

1、查詢表中的索引

select * from user_indexes where table_name='WORKLOG';(大寫表名)

我查詢出並選擇索引是PK_WORKLOG該索引建在LINTERID欄位上,

2、另 查詢所有聚集型索引(與分析索引無關)

select * from user_indexes where uniqueness='UNIQUE'

3、確定了表和表中的索引後,就要執行分析索引的語句,如下

alert index PK_WORKLOG monitoring usage;

這時候資料庫會監控索引的使用情況

4、執行相關的sql語句,如

select * from WORKLOG  T where  T.LINTERID='110';

被分析的索引一定要在查詢條件裡,這樣索引才能被分析

5、最後查詢索引的使用情況。

select  table_name,index_name,used from v$object_usage;

在used列就可以看到索引是否被使用,

由此分析,在複雜的sql語句語句中可以將語句分離,可以先單獨的分析每個表的索引使用情況。

本文章只是為了以後複習的方便。寫的比較簡單。