总结:
1、主键和复合主键,查询性能相同(索引高度相同,恰当的运用索引)。
2、主键和复合主键,(update,insert)性能不同(因为复合主键会用更多的块来创建索引,所以update,insert性能低)
实验思路:
1、 建立实验表,及主键,联合2个主键,联合3个主键
2、 查看索引的结构
3、查看条件相同的,执行计划(来确定主键和复合主键的效率)
一、建立实验表;test1为单主键为1个column,test2为联合主键2个columns,test3为联合主键3个columns
SQL> create table test1(a number,b number,c number,primary key(a));
Table created.
SQL> create table test2(a number,b number,c number,primary key(a,b));
Table created.
SQL> create table test3(a number,b number,c number,primary key(a,b,c));
Table created.
二、查看索引的结构
1、先查看一下建立的表对应的索引
SQL> select index_name,table_name from user_indexes;
INDEX_NAME TABLE_NAME
------------------------------ ------------------------------
SYS_C005198 TEST1
SYS_C005199 TEST2
SYS_C005200 TEST3
2、写个储存过程来给实验表插入数据
begin
for i in 1..10000 loop
insert into test1 values(i,i+1,i+2);
commit;
end loop;
end;
Test1
SQL>analyzeindex SYS_C005198 validate structure;
Index analyzed.
SQL> select HEIGHT,BLOCKS,BR_BLKS,LF_BLKS,LF_ROWS,DEL_LF_ROWS from index_stats ;
HEIGHT BLO