通过对比分区表和普通表,简单的测试了性能和对分区表存在index时的维护,最后我们不得不说
使用分区表很多时候不一定能提高性能,主要是维护起来方便,如果我们能把访问的数据集中
在一个或者有限的几个分区里,那么性能肯定比访问普通的全表要好,还是那句话
让执行的sql尽可能的少读、少写,这样才是提高sql性能的关键,就像anlinew提到的公式:
T=S/V,其实少读、少写的目的就是减小S...
--创建2个结构完全相同,数据量几乎相同的表,只不过是分区表,一个是普通的heap表,
然后简单的做个访问时的性能对比,从而更好的理解如何合理的使用分区表
SQL> create table t(object_id number,object_name varchar2(30))
2 partition by range(object_id)
3 (
4 partition p1 values less than(2000) tablespace users,
5 partition p2 values less than(4000) tablespace users,
6 partition p3 values less than(6000) tablespace users,
7 partition p4 values less than(8000) tablespace users,
8 partition p5 values less than(maxvalue) tablespace users
9 );
表已创建。
SQL> insert into t select object_id,object_name from dba_objects;
已创建9848行。
SQL> insert into t select * from t;
已创建9848行。
SQL> insert into t select * from t;
已创建19696行。
SQL> insert into t select * from t;
已创建39392行。
SQL> insert into t select * from t;
已创建78784行。
SQL> insert into t select * from t;
已创建157568行。
SQL> insert into t select * from t;
已创建315136行。
SQL> insert into t select * from t;
已创建630272行。
SQL> commit;
提交完成。
SQL> create table t1 tablespace users as select object_id,object_name from dba_o
bjects;
表已创建。
SQL> insert into t1 select *from t1;
已创建9849行。
SQL> insert into t1 select *from t1;
已创建19698行。
SQL> insert into t1 select *from t1;
已创建39396行。
SQL> insert into t1 select *from t1;
已创建78792行。
SQL> insert into t1 select *from t1;
已创建157584行。
SQL> insert into t1 select *from t1;
已创建315168行。
SQL> insert into t1 select *from t1;
已创建630336行。
SQL> commit;
提交完成。
SQL>
oracle视频教程请关注: