表為多列為null的表之索引示例
1,表的結構
create table t_more_col(col1 int,col2 int,col3 int,col4 int,col5 int,col6 int,col7 int,col8 int,col9 int, col10 int);
2,插表
declare
type typ_tab_col1 is table of pls_integer index by pls_integer;
typ_tab_col1_1 typ_tab_col1;
begin
for i in 1..1000000 loop
typ_tab_col1_1(i):=i;
end loop;
forall i in 1..1000000
insert into t_more_col values(typ_tab_col1_1(i),null,null,null,null,null,null,null,null,null);
commit;
end;
3,對非空列col1建索引
create index idx_t_more_col on t_more_col(col1);
對空null列col2建索引
create index idx_t_more_col_col2 on t_more_col(col2);
對空null列與非空列建索引
create index idx_t_more_col_col1_col2 on t_more_col(col1,col2);
4,查索引
select index_name,blevel,leaf_blocks,distinct_keys,
avg_leaf_blocks_per_key,avg_data_blocks_per_key,
clustering_factor,num_rows,sample_size,to_char(last_analyzed,'yyyymmdd hh24:mi:ss')
from user_indexes u where u.INDEX_NAME='IDX_T_MORE_COL';
5,小結:
1,非空列,索引記錄數同於表的記錄數
2,空列,索上不佔用空間,不進行儲存
3,空列與非空列聯合,索引佔空間
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/9240380/viewspace-744856/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 如何讓table表的null列由不走索引變為可走索引Null索引
- oracle多列為空與多列不為空的區別小示例Oracle
- ORA-01758: 要新增必需的 (NOT NULL) 列, 則表必須為空Null
- 皕傑報表之引數為NULL時,取全部資料Null
- 為什麼索引無法使用is null和is not null索引Null
- 唯一索引,可以在索引列插入多個null嗎索引Null
- 索引與null(一):單列索引索引Null
- 分割槽表及分割槽索引建立示例索引
- MySQL為何不建議使用null列MySqlNull
- 資料庫索引欄位請不要為NULL資料庫索引Null
- DB2 列為null,無法設定該列為主鍵DB2Null
- MySQL 避免行鎖升級為表鎖——使用高效的索引MySql索引
- oracle group by與分組列為null空OracleNull
- sqlplus呼叫包package中輸入引數為plsql索引表和plsql巢狀表示例SQLPackage索引巢狀
- openGauss 列存表PSort索引索引
- Oracle普通表修改為分割槽表的方法Oracle
- SQL Server 索引和表體系結構(包含列索引)SQLServer索引
- oracle將表配置為分割槽表Oracle
- 資料庫表,索引(索引組織表,聚簇表,聚簇索引,)資料庫索引
- 請教,建立子論壇後發表帖子,出現null,為什麼?Null
- 為毛 "typeof null" 的結果為 "object" ?NullObject
- Oracle堆組織表的索引和索引組織表Oracle索引
- oracle一列拆分為多列Oracle
- 批次轉換分割槽表為普通表
- ORACLE將不同表改為分割槽表Oracle
- 批量轉換分割槽表為普通表
- 一對多關聯表,怎麼判斷返回關聯陣列不為空的值啊?陣列
- 資料庫聚簇索引——not null條件對唯一鍵索引成為聚簇索引的影響資料庫索引Null
- 在Oracle中列出指定資料表的全部索引列Oracle索引
- 為什麼typeof null 的結果為 objectNullObject
- 僅當使用了列列表並且 IDENTITY_INSERT 為 ON 時,才能為表IDE
- NULL列時,如何使得IS NULL或者IS NOT NULL可以使用索引來提高查詢效率Null索引
- 認識SQLServer索引以及單列索引和多列索引的不同SQLServer索引
- oracle 巢狀表 索引表 使用Oracle巢狀索引
- 表中已有資料,將表中某個欄位為空的改為非空
- 兩列複合索引中(交換索引中列的順序),選索引的原則是?因為索引名字ascii碼小?索引ASCII
- oracle 之全文索引表的分割槽交換案例Oracle索引
- 利用B*TREE的特性,為列值分佈極端不平衡的表建立特殊索引來提高效率索引