ORACLE -> NULL & INDEXES
SQL> create table nulltest(c1 varchar2(10),c2 varchar2(10), n1 number);
表已建立。
SQL> create unique index uidx_nulltest_01 on nulltest(c1,c2);
索引已建立。
SQL> insert into nulltest values('a','b',2);
已建立 1 行。
SQL> insert into nulltest values('a',null,3);
已建立 1 行。
SQL> insert into nulltest values(null,'b',4);
已建立 1 行。
SQL> insert into nulltest values(null,null,5);
已建立 1 行。
SQL> insert into nulltest values(null,null,6);
已建立 1 行。
SQL> insert into nulltest values(null,null,7);
已建立 1 行。
SQL> commit;
提交完成。
SQL> select c1,c2,count(*),sum(n1) from nulltest group by c1,c2;
C1 C2 COUNT(*) SUM(N1)
---------- ---------- ---------- ----------
3 18
b 1 4
a b 1 2
a 1 3
在考慮唯一性時,(NULL,NULL)與(NULL,NULL)並不相同。對於聚集來說,(NULL,NULL)與(NULL,NULL)則認為是相同的。
---------- ---------- ---------- ----------
3 18
b 1 4
a b 1 2
a 1 3
在考慮唯一性時,(NULL,NULL)與(NULL,NULL)並不相同。對於聚集來說,(NULL,NULL)與(NULL,NULL)則認為是相同的。
SQL> analyze index uidx_nulltest_01 validate structure;
索引已分析
SQL> select name,lf_rows from index_stats;
NAME LF_ROWS
------------------------------ ----------
UIDX_NULLTEST_01 3
------------------------------ ----------
UIDX_NULLTEST_01 3
索引裡只有三個leaf,對於全部為NULL的key,索引並不儲存。所以對於 SELECT * FROM nulltest WHERE c1 IS NULL 或SELECT * FROM nulltest WHERE c1 IS NULL AND c2 IS NULL。
雖然c1,c2有建UNIQUE KEY,但是對於這種查詢,並不會用到索引。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/11411056/viewspace-733377/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- ORACLE INDEXESOracleIndex
- Oracle - Tables/IndexesOracleIndex
- The Secrets of Oracle Bitmap IndexesOracleIndex
- 【NULL】Oracle null值介紹NullOracle
- 關於 oracle NULLOracleNull
- 大話Oracle nullOracleNull
- oracle中的nullOracleNull
- Oracle中的NULL(六)OracleNull
- Oracle中的NULL(五)OracleNull
- Oracle中的NULL(八)OracleNull
- Oracle之不可見索引(invisible indexes)Oracle索引Index
- Rebuild IndexesRebuildIndex
- ((NULL) null).printNULL();((NULL) null).printnull();Null
- Oracle 19C 無法啟用Auto Indexes特性OracleIndex
- ORACLE關於NULL的總結OracleNull
- Oracle空串與null的處理OracleNull
- oracle把''當null來對待!OracleNull
- Reverse Key IndexesIndex
- Overview of Partitioned IndexesViewIndex
- Local Partitioned IndexesIndex
- Global Nonpartitioned IndexesIndex
- Extents in Indexes (19)Index
- 翻譯(九)——Clustered Indexes: Stairway to SQL Server Indexes Level 3IndexAISQLServer
- [重慶思莊每日技術分享]-重建 oracle Bootstrap IndexesOraclebootIndex
- oracle中關於null的定義OracleNull
- IS NULL和IS NOT NULLNull
- skip_unusable_indexesIndex
- Restrictions on Create Bitmap IndexesRESTIndex
- Global Range Partitioned IndexesIndex
- Global Hash Partitioned IndexesIndex
- Maintenance of Global Partitioned IndexesAINaNIndex
- Overview of Indexes (194)ViewIndex
- Indexes and Nulls (198)IndexNull
- Oracle 19c Concepts(03):Indexes and Index-Organized TablesOracleIndexZed
- not null與check is not nullNull
- oracle sql_not exists與null的測試OracleSQLNull
- oracle group by與分組列為null空OracleNull
- oracle之''空子符串與NULL是否相等OracleNull