使用組合索引處理包含空值的查詢

壹頁書發表於2014-01-20
欄位不全為空的行可以被索引

如果有這樣一種需求,尚未處理的單據,該列為null。已經處理的單據,則將處理人的ID更新到該列。
那麼查詢尚未處理的單據,就需要查詢該列為null的行。
處理這個需求,除了函式索引,還可以使用組合索引。

假設處理人的那個欄位就是測試表中的ID欄位。
  1. create table test
  2. (
  3.     id varchar2(20)
  4. );

  5. begin
  6. for x in 1..10 loop
  7.     insert into test values(x);
  8. end loop;
  9. end;
  10. /

  11. create index inx_test_id on test(id,0);

  12. exec dbms_stats.gather_schema_stats('EDMOND');

透過建立組合索引,可以使空值的查詢,也走這個索引。

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

相關文章