Oracle分区表技术 (Partitioned Tables)

Oracle分区表通过Select语句只检索特定分区,显著提高查询性能,并允许根据表空间分布到不同物理磁盘以平衡IO。此外,分区技术便于管理数据加载、索引操作和备份恢复,降低不同分区间的影响。适用于超过2GB的大表及包含历史数据的场景,如按月分区的读写分离表。
摘要由CSDN通过智能技术生成


自Oracle 8(1997年左右)就引入了 分区表&分区索引(Partitioned Tables & Indexes)的概念来调整大表和大索引,提升性能,提升运维管理的能力。分区表和分区索引机制是海量数据库管理( Very Large Databases  ,即VLDB) 中一个重要的提升性能的机制。

Oracle分区技术的历史
Oracle 8引入了分区的概念,后续的每个版本都有对分区机制优化和改进。


使用分区表/索引的好处
  • 性能提升: Select语句只检索本分区的记录,减少了记录总数,可有效的提升了查询性能。另外,可以通过表空间将分区映射到不同的物理磁盘上,分散设备IO,提升性能;
  • 分区运维:可以针对不同分区,管理数据的加载、索引的创建(以及重建)、数据备份与恢复。因为可针对分区的管理,所以可以有效的降低了分区间的干扰、影响。
更多分区的好处可以阅读 Oracle Partitioning这篇文章,写的更加详细些。

什么时候使用分区表
什么时候使用分区表,并没有一个精确的界限,Oracle只有一些 通用的建议,具体使用需要自行评估:    

  • Tables greater than 2GB should always be considered for partitioning.
  • Tables containing historical data, in which new data is added into the newest partition. A typical example is a historical table where only the current month's data is updatable and the other 11 months are read only.

Tip: 计算表大小的SQL
SELECT B.OWNER,
       B.TABLESPACE_NAME,
       B.TABLE_NAME,
       ROUND (SUM (BYTES) / 1024 / 1024 / 1024, 6) GIGS
FROM   SYS.DBA_EXTENTS A, SYS.DBA_TABLES B
WHERE ((B.TABLESPACE_NAME = A.TABLESPACE_NAME)
                AND (B.OWNER = UPPER ('&OWNER')) AND (B.TABLE_NAME = '&TABLE'))
GROUP BY B.OWNER, B.TABLESPACE_NAME, B.TABLE_NAME;

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值