2013-02-22 65 views
0

是否在創建唯一索引時忽略order by子句意味着使用ASC創建的索引與使用DESC創建的索引完全相同。 Oracle根本不使用該設置。 Oracle索引獨立於排序順序。在創建唯一索引時,oracle是否忽略order by子句

+1

你的問題到底是什麼? – 2013-02-22 09:18:33

+0

有人應該解釋'create table ix on table(col asc)'和'create index ix on table(col desc)'之間有什麼區別。 – 2013-02-22 09:32:05

+2

你的意思是相同的?它們在內部排列不同。 [概念指南](http://docs.oracle.com/cd/E25178_01/server.1111/e25789/indexiot.htm#CBBFFFFG)是否澄清了所有內容?或者['create index'文檔]中的註釋(http://docs.oracle.com/cd/E11882_01/server.112/e26088/statements_5012.htm#SQLRF53994)?如果沒有,那麼你需要擴大你的問題,以顯示你遇到什麼問題。 – 2013-02-22 09:45:17

回答

0

單列上的ASC或DESC索引沒有實際區別 - 這就是爲什麼創建索引時通常不會使用此選項的原因。

但是,當索引超過兩列或更多列時會有很大差異 - (col1 ASC, col2 ASC)將導致索引的排列順序與(col1 ASC, col2 DESC)完全不同。在運行對這兩列進行排序的查詢時可能會遇到差異 - 在col1, col2上排序的查詢可能會避免在存在第一個索引時執行排序操作,但可能不會在第二個索引中排序。