oracle 分区表的维护(2009-10-28 16:04:01)转载标签: oraclepartitiontable分区表it 分类: oracle
Oracle的分区技术在某些条件下可以极大的提高查询的性能,所以被广泛采用。
从产品上说,分区技术是Oracle企业版中独立收费的一个组件。
以下是对于分区及本地索引的一个示例。
首先根据字典表创建一个测试分区表:
SQL> connect eygle/eygle
Connected.
SQL> CREATE TABLE dbobjs
2 (OBJECT_ID NUMBER NOT NULL,
3 OBJECT_NAME varchar2(128),
4 CREATED DATE NOT NULL
5 )
6 PARTITION BY RANGE (CREATED)
7 (PARTITION dbobjs_06 VALUES LESS THAN (TO_DATE('01/01/2007', 'DD/MM/YYYY')),
8 PARTITION dbobjs_07 VALUES LESS THAN (TO_DATE('01/01/2008', 'DD/MM/YYYY')));
Table created.
SQL> COL segment_name for a20
SQL> COL PARTITION_NAME for a20
SQL> SELECT segment_name, partition_name, tablespace_name
2 FROM dba_segments
3 WHERE segment_name = 'DBOBJS';
SEGMENT_NAME PARTITION_NAME TABLESPACE_NAME
-------------------- -------------------- ------------------------------
DBOBJS DBOBJS_06 EYGLE
DBOBJS DBOBJS_07 EYGLE
创建一个Local索引,注意这里可以将不同分区的索引指定创建到不同的表空间:
SQL> CREATE INDEX dbobjs_idx ON dbobjs (created) LOCAL
2 (PARTITION dbobjs_06 TABLESPACE users,
3 PARTITION dbobjs_07 TABLESPACE users
4 );
Index created.
这个子句可以进一步调整为类似:
CREATE INDEX dbobjs_idx ON dbobjs (created) LOCAL
(PARTITION dbobjs_06 TABLESPACE users,
PARTITION dbobjs_07 TABLESPACE users
) TABLESPACE users;
通过统一的tablespace子句为索引指定表空间。
SQL> COL segment_name for a20
SQL> COL PARTITION_NAME for a20
SQL> SELECT segment_name, partition_name, tablespace_name
2 FROM dba_segments
3 WHERE segment_name = 'DBOBJS_IDX';
SEGMENT_NAME PARTITION_NAME TABLESPACE_NAME
-------------------- -------------------- ------------------------------
DBOBJS_IDX DBOBJS_06 USERS
DBOBJS_IDX DBOBJS_07 USERS
SQL> insert into dbobjs
2 select object_id,object_name,created
3 from dba_objects where created <to_date('01/01/2008','dd/mm/yyyy') and object_id is not null;
6227 rows created.
SQL> commit;
Commit complete.
SQL> select count(*) from dbobjs partition (DBOBJS_06);
COUNT(*)
----------
6154
SQL> select count(*) from dbobjs partition (dbobjs_07);
COUNT(*)
----------
73
我们可以通过查询来对比一下分区表和非分区表的查询性能差异:
SQL> set autotrace on
SQL> select count(*) from dbobjs where created < to_date('01/01/2008','dd/mm/yyyy');
COUNT(*)
----------
6227
Execution Plan
----------------------------------------------------------
0 SELECT STATEMENT Optimizer=
( 2).表分区的具体作用 Oracle 的表分区功能通过改善可管理性、性能和可用性,从而为各式应用程序 带来了极大的好处。通常,分区可以使某些查询以及维护操作的性能...
二、Oracle分区优缺点 ? 优点: 增强可用性:如果表的某个分区出现故障,表在其他分区的数据仍然可用; 维护方便:如果表的某个分区出现故障,需要修复数据,只修复该...
二、Oracle 分区优缺点优点: 优点:增强可用性:如果表的某个分区出现故障,表在其他分区的数据仍然可用; 维护方便:如果表的某个分区出现故障,需要修复数据,只修复该...
oracle表分区的几种方法以及维护_IT/计算机_专业资料。Oracle中提供了以下几种表分区:范围分区,列表分区,散列分区,复合范围列表分区,复合范围散列分区。...
( 2).表分区的具体作用 Oracle 的表分区功能通过改善可管理性、性能和可用性,从而为各式应用程序 带来了极大的好处。通常,分区可以使某些查询以及维护操作的性能...
Oracle分区表应用_IT/计算机_专业资料。Oracle分区表介绍,及使用方法...对于本地索引,其索引分区的维护自动进行,就是说你add/drop/split/truncate表的...
ORACLE 表分区表分区的好处和事处理 表分区描述表分区(partition):表分区技术是...(disk) 5 rows processed SQL> 分区表的维护了解了分区表的建立、索引的建立...
此外, 因为在维护分区的时候可能对分区的索引会产生一定 的影响, 可能需要在维护之后重建索引, 相关内容请参考分区表索引部分的文档。 Oracle 中分区表的使用 ...
oracle 分区表完全讲解_IT/计算机_专业资料。本文全面介绍oracle 分区表的用法...了改善,使 数据库管理员在相对较小的批处理窗口完成大型数 据库对象的维护工作...
闽公网安备 35021102001881号 
热门文档