oracle查看索引是否被使用 oracle中什么情況下用索引?
oracle中什么情況下用索引?如果查詢時需要以該字段為查詢條件,則需要創(chuàng)建索引。但是要注意,如果是需要將字段轉(zhuǎn)換大小寫后再匹配的,需要考慮建函數(shù)索引。另外,查詢時如非特殊指定,不會同時使用同一個表的
oracle中什么情況下用索引?
如果查詢時需要以該字段為查詢條件,則需要創(chuàng)建索引。但是要注意,如果是需要將字段轉(zhuǎn)換大小寫后再匹配的,需要考慮建函數(shù)索引。另外,查詢時如非特殊指定,不會同時使用同一個表的多個索引,故應(yīng)該在能夠根據(jù)查詢條件最好篩選記錄的字段上創(chuàng)建索引。另外,索引主要是為了提升查詢效率,但是對插入和更新則會降低性能(對于更新特別頻繁的字段,影響更明顯),所以也不能隨意創(chuàng)建索引。
oracle怎樣查詢索引的使用情況?
dba權(quán)限的賬號使用:
select S.index_name from dba_indexes s where s.table_name=表名;--查出索引名
然后根據(jù)索引名去DBA_IND_COLUMNS視圖中查看相應(yīng)字段:
SELECT s.column_name FROM DBA_IND_COLUMNS S WHERE S.index_name=索引名
如果是該表所有者的賬號,把相應(yīng)視圖名做下列修改:
dba_indexes =》user_indexes
DBA_IND_COLUMNS=》user_ind_columns
oracle怎么通過索引查詢數(shù)據(jù)語句?
oracle對于數(shù)據(jù)庫中的表信息,存儲在系統(tǒng)表中。查詢已創(chuàng)建好的表索引,可通過相應(yīng)的sql語句到相應(yīng)的表中進(jìn)行快捷的查詢:
1.根據(jù)表名,查詢一張表的索引select*fromuser_indexeswheretable_name=upper("表名")
2.根據(jù)索引號,查詢表索引字段select*fromuser_ind_columnswhereindex_name=("索引名")
3.根據(jù)索引名,查詢創(chuàng)建索引的語句selectdbms_metadata.get_ddl("INDEX","索引名",["用戶名"])fromdual--["用戶名"]可省,默認(rèn)為登錄用戶PS:dbms_metadata.get_ddl還可以得到建表語句,如:SELECTDBMS_METADATA.GET_DDL("TABLE","表名",["用戶名"])FROMDUAL//取單個表的建表語句,["用戶名"]可不輸入,默認(rèn)為登錄用戶SELECTDBMS_METADATA.GET_DDL("TABLE",u.table_name)FROMUSER_TABLESu//取用戶下所有表的建表語句當(dāng)然,也可以用pl/sqldeveloper工具來查看相關(guān)的表的各種信息。