跳過索引某些列任然使用索引的特性

wenhual43發表於2012-04-21

查詢語句類似如下

 select    "CONTACTFLAG",
       "CURRMGMTORG",
       "DATASOURCE"
  FROM ."INFECTIO" "SYS_ALIAS"
 WHERE "VALID_DAT" >=
       TO_DATE(' 2012-04-13 00:00:00', 'syyyy-mm-dd hh24:mi:ss')
   AND "ADDRCODE" LIKE '340721%'
   AND "FLAG" = 4
   AND "VALID_DAT" <=
       TO_DATE(' 2012-04-19 23:59:59', 'syyyy-mm-dd hh24:mi:ss')

表上有個基於列“ADDRCODE, VALID_DAT, DISEASE_ID1, FLAG, RPTORGCODE”的索引,可以看出DISEASE_ID1和RPTORGCODE均沒有出現在where條件裡,檢視執行計劃用上了該索引,說明在查詢的時候可以利用索引裡的一部分欄位,且可以跳過中間某個欄位,任然用上索引。

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/25027760/viewspace-721861/,如需轉載,請註明出處,否則將追究法律責任。

相關文章