|
最初由 com_dlj 发布
[B]取决于索引插入时的分裂程度
create table kkk ( i CHAR(1000),c char(1000));
create unique index i1 on kkk(i,c);
create unique index i2 on kkk(C,I);
先插入数据
SQL> BEGIN
2 FOR I IN 1 .. 10 LOOP
3 FOR J IN 1 .. 1000 LOOP
4 INSERT INTO KKK VALUES (I,J);
5 END LOOP;
6 END LOOP;
7 COMMIT;
8 END;
9 /
ANALYZE INDEX I1 COMPUTE STATISTICS;
ANALYZE INDEX I2 COMPUTE STATISTICS;
select * from dba_indexes ind where ind.index_name in ('I1','I2')
得到结果 I1 8 个节点 I2 10 个节点
DROP TABLE KKK;
create table kkk ( i CHAR(1000),c char(1000));
create unique index i1 on kkk(i,c);
create unique index i2 on kkk(C,I);
INSERT INTO KKK VALUES ('1','1');
INSERT INTO KKK VALUES ('1','4');
INSERT INTO KKK VALUES ('1','7');
INSERT INTO KKK VALUES ('1','9');
INSERT INTO KKK VALUES ('3','3');
INSERT INTO KKK VALUES ('2','5');
INSERT INTO KKK VALUES ('2','7');
INSERT INTO KKK VALUES ('2','9');
INSERT INTO KKK VALUES ('1','10');
INSERT INTO KKK VALUES ('1','2');
INSERT INTO KKK VALUES ('1','3');
INSERT INTO KKK VALUES ('1','5');
INSERT INTO KKK VALUES ('1','6');
INSERT INTO KKK VALUES ('1','8');
INSERT INTO KKK VALUES ('2','1');
INSERT INTO KKK VALUES ('2','2');
INSERT INTO KKK VALUES ('2','4');
INSERT INTO KKK VALUES ('2','6');
INSERT INTO KKK VALUES ('2','8');
INSERT INTO KKK VALUES ('2','10');
COMMIT;
ANALYZE INDEX I1 COMPUTE STATISTICS;
ANALYZE INDEX I2 COMPUTE STATISTICS;
select * from dba_indexes ind where ind.index_name in ('I1','I2')
得到结果 I1 11 个节点 I2 10 个节点
所以与插入顺序有关 [/B]
差异是肯定的,但你的例子还是无法解释大小相差近两倍的问题。 |
|