分区介绍
分区解决的主要问题是在非常大的表和索引中通过让你把他们分解成更小和更多的可管理的称为分区的片段。SQL查询和DML语句没必要为了访问分区表而被修改。可是,在分区被定义后,DDL语句可以访问和操作单独的分区而不是整个表或索引。这就是分区如何简化大数据库对象管理。同时,对应用程序来说,分区是完全透明的。
某张表或索引的每个分区必须具有相同的属性,比如列的名称,数据类型和约束,但是每个分区可以具有独立的物理属性,比如PCTFREE,PCTUSED和表空间。
对于许多不同类型的应用程序来说分区是很有用的,特别是那些管理了大量数据的应用程序。OLTP系统通常受益于在可管理性和可用性上面的提升,而数据仓库系统受益于性能和可管理性。
===============================================================================
注意:一个分区对象的所有分区必须驻留在一个单块大小的表空间里。
See Also:
■ "Multiple Block Sizes" on page 3-11
■ Oracle Database Data Warehousing Guide and Oracle Database
Administrator's Guide for more information about partitioning
分区提供了这些优势:
分区可以在分区级而不是整个表进行像数据加载,索引创建和重建,备份恢复这样的数据管理操作。这将显著的减少这些操作的时间。
分区提升了查询性能。在许多情况下,一个查询的结果可以通过访问分区的集合而不是整个分区来完成。对于一些查询,这种技术(称为分区修剪)可以在性能上提供数量级的收获。
对于维护操作来说,分区可以显著减少计划宕机带来的影响。
对于分区维护操作来说,独立的分区让你在相同的表或索引上执行同时的维护操作。你也可以同时在分区上执行SELECT和DML操作而不受维护操作的影响。
分区增加了关键数据库的可用性,如果重要的表和索引被分区来减少维护窗口,恢复时间和故障的影响。
分区可以被实现而不要求你的应用程序的任何修改。比如,你可以把一张非分区表转换成分区表而不需要修改问该表的任何SQL语句和DML语句。你没必要为了使用分区而重写你的应用程序代码。
图18-1提供了一张如何分区表与非分区表如何不同的图形化视图。
分区键
分区表中的每行被明确的分配给一个单独的分区。分区键是一套为每行决定分区的一个或多个列。Oracle通过使用分区键自动的对合适的分区进行插入,更新和删除操作的管理。一个分区键:
由1到16个列的排序列表组成
不能包含一个LEVEL,ROWID或MLSLABEL的伪列或一个rowid类型的列
不能包含一个可为空的列
分区表
表可以被分区成多达1024K个独立的分区。除了包含LONG或LONG RAW数据类型的表外其它任何的表都可以被分区。可是你也可以对包含CLOB和BLOB类型的列进行分区。
===============================================================================
注意:为了减少磁盘和内存的使用(特别是缓冲缓存),你可以一种压缩的格式在数据库中存储表和分区表。这通常会对只读的操作产生一种更好的可伸缩性。表压缩也可以加快查询的执行。可是会带来一点CPU的开销。
See Also: "Table Compression" on page 16-8
分区索引组织表
你可以通过RANG,LIST或HASH来对索引组织表分区。被分区的索引组织表有助于对索引组织表的可管理性,可用性和性能上的提升。使用索引组织表的数据容器可以利用这个特点来对他们存储的数据进行分区。这种常见的例子是图片和内部介质容器。
对于分区一个索引组织表:
分区列必须是一组主键列
第二索引可以被分区成本地或全局索引
OVERFLOW数据段通常被表分区平均分。
分享到:
相关推荐
### SQL Server 2005 中的分区表和索引:深入解析 #### 分区的由来与演变 分区的概念在SQL Server的历史中占据着重要地位。从早期的SQL Server版本开始,数据库管理员就意识到,面对不断增长的数据量,传统的单一...
通过以上介绍可以看出,MS SQL Server 中的分区表和分区索引技术对于管理和提高大型数据库的性能至关重要。合理设计分区方案可以极大地提高查询效率和系统的可扩展性。通过对分区列、分区数的选择,以及对文件组的...
#### 四、创建分区表和索引 ##### 创建Range分区 ```sql CREATE TABLE sales ( sale_date DATE, amount NUMBER ) PARTITION BY RANGE (sale_date) ( PARTITION sales_q1_2020 VALUES LESS THAN (TO_DATE('2020-04...
Oracle 分区表分区索引是 Oracle 数据库中的一种重要机制,它可以提高数据的存储和查询效率。下面将详细介绍 Oracle 分区表分区索引的类型、分类、创建方法和维护方式。 一、分区表和分区索引的概念 分区表是指将...
分区表和分区索引是数据库管理系统中的重要概念,它们对于数据管理和性能优化有着至关重要的作用。下面将详细探讨这两个主题。 分区表是大型数据库中常用的一种数据组织方式,旨在提高查询效率和管理大规模数据的...
在Oracle数据库中,分区索引是针对分区表的一种特殊索引类型,它可以显著提高对于大规模数据集的查询性能。根据索引是否与表的分区策略相匹配,分区索引可以分为两大类:本地索引(Local Index)和全局索引(Global ...
Oracle 分区表及分区索引 Oracle 分区表是指将一个大表分割成多个小表,每个小表称为一个分区,分区表的...在选择分区表和分区索引时,需要根据实际情况选择合适的分区方式和索引类型,以提高查询性能和改善管理型。
虽然存储介质和数据处理技术的发展也很快,但是仍然不能满足用户的需求,为了使用户的大量的数据在读写操作和查询中速度更快,Oracle提供了对表和索引进行分区的技术,以改善大型应用系统的性能。
### Oracle 分区表索引失效的问题 #### 一、全局索引与分区表的关系 **全局索引**(Global Index)是指索引覆盖整个表的所有数据,而不受限于分区边界。这种类型的索引通常用于非分区列或者跨分区查询。 **实验...
1. 分区表和分区索引是数据库管理中的关键技术之一。 2. 分区表可以将大表拆分成多个独立的物理分区,以提高数据I/O性能。 3. Oracle 分区表有多种类型,包括范围分区、散列分区、列表分区、组合分区、Interval分区...
分区表和分区索引是SQL Server 2005为企业级数据管理和性能优化提供的重要特性,尤其适用于处理大量数据的大型表。分区能够将数据划分为独立的、易于管理的块,这有助于提升查询性能,特别是在具有多种访问模式的...
全面学习分区表及分区索引二全面学习分区表及分区索引二
以下是对Oracle分区表和分区索引的深入解析: 1. **何时使用分区**: - 当表的数据量超过2GB时,分区有助于避免32位操作系统下的文件大小限制,同时减少大规模数据的备份时间。 - 对于包含历史数据的表,如按月份...
分区表和分区索引是数据库管理系统中的重要概念,它们对于大型数据存储的高效管理和查询具有至关重要的作用。本文将深入探讨这两个主题,帮助你更好地理解它们的原理、用途以及实际应用。 1. 分区表(Partitioning...
SQL Server 2005 中的分区表和索引 SQL Server 2005 中的分区表和索引是改善大型表和具有各种访问模式的表的可伸缩性和可管理性的重要工具。分区可以将大型表分为更小、更容易管理的部分,提供一定的帮助。创建分区...
【MSSQL Server 分区表和分区索引详解】 在SQL Server中,分区表和分区索引是针对大型数据表的管理和性能优化策略。当面对数据量庞大的表时,使用分区能够提高数据处理效率,增强系统的可管理性。本文将详细讲解...