關於Oracle降序索引的定意及回溯
降序索引本質上是FBI,其具體定義可以透過 user_ind_expressions 或dba_ind_expressions 查詢。
那麼同樣的,降序索引只有在CBO下才能被使用。
Connected to Oracle9i Enterprise Edition Release 9.2.0.4.0
Connected as eygle
SQL> create table t as select * from dba_users;
Table created
SQL> create index idx_username_desc on t(username desc);
Index created
SQL> select index_name,table_name,INDEX_TYPE from user_indexes where table_name=@#T@#;
INDEX_NAME TABLE_NAME INDEX_TYPE
------------------------------ ------------------------------ ---------------------------
IDX_USERNAME_DESC T FUNCTION-BASED NORMAL
SQL> select column_name,column_position,descend from user_ind_columns
2 where table_name=@#T@#;
COLUMN_NAME COLUMN_POSITION DESCEND
------------------------------ --------------- -------
SYS_NC00013$ 1 DESC
SQL>
SQL> select * from user_ind_expressions where table_name=@#T@#;
INDEX_NAME TABLE_NAME COLUMN_EXPRESSION COLUMN_POSITION
------------------------------ ------------------------------ ------------------------------ ---------------
IDX_USERNAME_DESC T "USERNAME" 1
總結:
1,oracle use expression instead of column on desc order index, and implement as a function-based index (FBI).
2, because of this mechanism, we can create more indexes on the same column . To achieve the smart index design to developer and DBA.
sample code for think the essensial of FBI index of oracle:
1, create index idx_sal on emp(sal desc ) ;
2, create index idx_sal_all on emp(sal desc, comm desc ) ;
3, create index idx_sal_all2 on emp(sal desc, comm asc ) ; -- It's OK.
4, create index idx_sal_sum on emp(sal+comm desc ) ;
5, create index idx_sal_sum2 on emp(sal+comm asc ) ; -- It's OK.
In fact , we almost do not want to create 2 with 3 in the same system.
and will not to create 4 with 5 in the same system. Because we can (or oracle implicitly) use index_desc hint on the SQL.
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/350519/viewspace-1038606/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 關於oracle的索引重建問題及原因分析Oracle索引
- oracle 索引升降序及排序條件 對查詢計劃的影響Oracle索引排序
- 關於轉儲Oracle索引資訊的相關命令Oracle索引
- 2 Day DBA-管理方案物件-關於方案物件管理許可權-升序和降序索引物件索引
- 不能建立降序索引的問題的解決索引
- 關於 Oracle 分割槽索引的失效和重建Oracle索引
- 關於Oracle災備書籍的意見徵集Oracle
- oracle中關於null的定義OracleNull
- 【ASK_ORACLE】關於Oracle索引分裂你需要知道的Oracle索引
- 關於 Oracle 分割槽索引的建立和維護Oracle索引
- 關於B*tree索引(index)的中度理解及bitmap 索引的一點探究(zt)索引Index
- oracle 索引分析及索引重建Oracle索引
- Oracle 定期檢查意義不大的索引Oracle索引
- 不錯的關於Oracle 全文索引的文章(zt)Oracle索引
- Oracle表與索引的分析及索引重建Oracle索引
- 關於索引的使用模式索引模式
- 降序索引應用在Top N問題上的應用索引
- Oracle表與索引的分析及索引重建(轉)Oracle索引
- 關於遞迴和回溯的一次深入思考遞迴
- 關於 Oracle 分割槽索引的正確 DROP 和 TRUNCATE 方法Oracle索引
- oracle 索引使用及索引失效總結Oracle索引
- 關於ORACLE點陣圖索引內部淺論Oracle索引
- Oracle基於函式的索引Oracle函式索引
- mysql關於聚集索引、非聚集索引的總結MySql索引
- postgresql與oracle關於事務定義的描述SQLOracle
- 關於oracle的表空間,分割槽表,以及索引的總結Oracle索引
- 關於ORACLE組合索引內部儲存淺談Oracle索引
- 關於SQL Server中索引使用及維護簡介(zt)SQLServer索引
- 關於Oracle遊標的簡單定義Oracle
- nproc/nfile之於oracle的意義Oracle
- 關於不可見索引的學習索引
- 關於函式索引的問題?函式索引
- oracle 定期表及索引分析Oracle索引
- 關於oracle的相關檔案及目錄的解讀(原)Oracle
- 關於oracle的表空間,分割槽表,以及索引的總結(轉)Oracle索引
- 關於oracle的表空間,分割槽表,以及索引的總結 -- 轉Oracle索引
- 關於點陣圖索引的split及bitmap to rowid實現問題索引
- Oracle 11g 關於 AWR 的引數設定Oracle