oracle使用索引查詢 如何查詢Oracle數(shù)據(jù)庫中已經(jīng)創(chuàng)建的索引?
如何查詢Oracle數(shù)據(jù)庫中已經(jīng)創(chuàng)建的索引?oracle對于數(shù)據(jù)庫中的表信息,存儲在系統(tǒng)表中。查詢已創(chuàng)建好的表索引,可通過相應的sql語句到相應的表中進行快捷的查詢:1. 根據(jù)表名,查詢一張表的索引s
如何查詢Oracle數(shù)據(jù)庫中已經(jīng)創(chuàng)建的索引?
oracle對于數(shù)據(jù)庫中的表信息,存儲在系統(tǒng)表中。查詢已創(chuàng)建好的表索引,可通過相應的sql語句到相應的表中進行快捷的查詢:
1. 根據(jù)表名,查詢一張表的索引select * from user_indexes where table_name=upper("表名")
2. 根據(jù)索引號,查詢表索引字段select * from user_ind_columns where index_name=("索引名")
3.根據(jù)索引名,查詢創(chuàng)建索引的語句select dbms_metadata.get_ddl("INDEX","索引名", ["用戶名"]) from dual --["用戶名"]可省,默認為登錄用戶PS:dbms_metadata.get_ddl還可以得到建表語句,如:SELECT DBMS_METADATA.GET_DDL("TABLE","表名", ["用戶名"]) FROM DUAL //取單個表的建表語句,["用戶名"]可不輸入,默認為登錄用戶SELECT DBMS_METADATA.GET_DDL("TABLE",u.table_name) FROM USER_TABLES u //取用戶下所有表的建表語句當然,也可以用pl/sql developer工具來查看相關(guān)的表的各種信息。
oracle數(shù)據(jù)庫索引種類?
1.b-tree索引Oracle數(shù)據(jù)庫中最常見的索引類型是b-tree索引,也就是B-樹索引,以其同名的計算科學結(jié)構(gòu)命名。CREATEINDEX語句時,默認就是在創(chuàng)建b-tree索引。沒有特別規(guī)定可用于任何情況。
2.位圖索引(bitmapindex)位圖索引特定于該列只有幾個枚舉值的情況,比如性別字段,標示字段比如只有0和1的情況。
3.基于函數(shù)的索引比如經(jīng)常對某個字段做查詢的時候是帶函數(shù)操作的,那么此時建一個函數(shù)索引就有價值了。
4.分區(qū)索引和全局索引這2個是用于分區(qū)表的時候。前者是分區(qū)內(nèi)索引,后者是全表索引5.反向索引(REVERSE)這個索引不常見,但是特定情況特別有效,比如一個varchar(5)位字段(員工編號)含值(10001,10002,10033,10005,10016..)這種情況默認索引分布過于密集,不能利用好服務器的并行但是反向之后10001,20001,33001,50001,61001就有了一個很好的分布,能高效的利用好并行運算。6.HASH索引HASH索引可能是訪問數(shù)據(jù)庫中數(shù)據(jù)的最快方法,但它也有自身的缺點。集群鍵上不同值的數(shù)目必須在創(chuàng)建HASH集群之前就要知道。需要在創(chuàng)建HASH集群的時候指定這個值。使用HASH索引必須要使用HASH集群。