oracle分区表

谈一下如何设计Oracle 分区表

為{幸葍}努か 提交于 2020-03-28 16:23:38
在谈设计Oracle分区表之间先区分一下 分区表 和 表空间 的个概念: 表空间 :表空间是一个或多个数据文件的集合,所有数据对象都存放在指定的表空间中,但主要存放表,故称表空间。 分区表 :分区致力于解决支持极大表和索引的关键问题。它采用他们分解成较小和易于管理的称为分区的片(piece)的方法。一旦分区被定义,SQL语句就可以访问的操作某一个分区而不是整个表,因而提高管理的效率。分区对于数据仓库应用程序非常有效,因为他们常常存储和分析巨量的历史数据。当表中的数据量不断增大,查询数据的速度就会变慢,应用程序的性能就会下降,这时就应该考虑对表进行分区。表进行分区后,逻辑上表仍然是一张完整的表,只是将表中的数据在物理上存放到多个表空间(物理文件上),这样查询数据时,不至于每次都扫描整张表。 表分区的具体作用 : Oracle的分区表功能通过改善可管理性、性能和可用性,从而为各式应用程序带来了极大的好处。 通常,分区可以使某些查询以及维护操作的性能大大提高。此外,分区还可以极大简化常见的管理任务,分区是构建千兆字节数据系统或超高可用性系统的关键工具。 分区功能能够将表、索引或索引组织表进一步细分为段,这些数据库对象的段叫做分区。每个分区有自己的名称,还可以选择自己的存储特性。从数据库管理员的角度来看,一个分区后的对象具有多个段,这些段既可进行集体管理,也可单独管理

oracle表按日期分区创建、新增、修改、删除

情到浓时终转凉″ 提交于 2020-03-19 00:34:54
Oracle11G分区表   当表中的数据量不断增大,查询数据的速度就会变慢,应用程序的性能就会下降,这时就应该考虑对表进行分区。表进行分区后,逻辑上表仍然是一张完整的表,只是将表中的数据在物理上存放到多个表空间(物理文件上),这样查询数据时,不至于每次都扫描整张表。 作用:   Oracle的表分区功能通过改善可管理性、性能和可用性,从而为各式应用程序带来了极大的好处。通常,分区可以使某些查询以及维护操作的性能大大提高。此外,分区还可以极大简化常见的管理任务,分区是构建千兆字节数据系统或超高可用性系统的关键工具。   分区功能能够将表、索引或索引组织表进一步细分为段,这些数据库对象的段叫做分区。每个分区有自己的名称,还可以选择自己的存储特性。从数据库管理员的角度来看,一个分区后的对象具有多个段,这些段既可进行集体管理,也可单独管理,这就使数据库管理员在管理分区后的对象时有相当大的灵活性。但是,从应用程序的角度来看,分区后的表与非分区表完全相同,使用 SQL DML 命令访问分区后的表时,无需任何修改。 什么时候用:   1、表的大小超过2GB。   2、表中包含历史数据,新的数据被增加都新的分区中。 优点:   1、改善查询性能:对分区对象的查询可以仅搜索自己关心的分区,提高检索速度。   2、增强可用性:如果表的某个分区出现故障,表在其他分区的数据仍然可用;   3、维护方便

Oracle分区表常用命令

老子叫甜甜 提交于 2020-03-18 19:39:52
一、Oracle分区简介 ORACLE的分区是一种处理超大型表、索引等的技术。分区是一种“分而治之”的技术,通过将大表和索引分成可以管理的小块,从而避免了对每个表作为一个大的、单独的对象进行管理,为大量数据提供了可伸缩的性能。分区通过将操作分配给更小的存储单元,减少了需要进行管理操作的时间,并通过增强的并行处理提高了性能,通过屏蔽故障数据的分区,还增加了可用性。 二、Oracle分区优缺点 ? 优点: 增强可用性:如果表的某个分区出现故障,表在其他分区的数据仍然可用; 维护方便:如果表的某个分区出现故障,需要修复数据,只修复该分区即可; 均衡I/O:可以把不同的分区映射到磁盘以平衡I/O,改善整个系统性能; 改善查询性能:对分区对象的查询可以仅搜索自己关心的分区,提高检索速度。 ? 缺点: 分区表相关:已经存在的表没有方法可以直接转化为分区表。不过 Oracle 提供了在线重定义表的功能。 三、Oracle分区方法 ? 范围分区: 范围分区就是对数据表中的某个值的范围进行分区,根据某个值的范围,决定将该数据存储在哪个分区上。如根据序号分区,根据业务记录的创建日期进行分区等。 ? Hash分区(散列分区): 散列分区为通过指定分区编号来均匀分布数据的一种分区类型,因为通过在I/O设备上进行散列分区,使得这些分区大小一致。 ? List分区(列表分区):

Oracle 分区表 总结

浪尽此生 提交于 2020-03-18 19:36:45
一 . 分区表理论知识 Oracle 提供了分区技术以支持 VLDB(Very Large DataBase) 。分区表通过对分区列的判断,把分区列不同的记录,放到不同的分区中。分区完全对应用透明。 Oracle 的分区表可以包括多个分区, 每个分区都是一个独立的段( SEGMENT ),可以存放到不同的表空间中 。查询时可以通过查询表来访问各个分区中的数据,也可以通过在查询时直接指定分区的方法来进行查询。 When to Partition a Table 什么时候需要分区表,官网的 2 个建议如下: ( 1 ) Tables greater than 2GB should always be considered for partitioning. ( 2 ) 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. 在 oracle 10g 中最多支持: 1024k-1 个分区: Tables can be

Oracle 分区表 总结

微笑、不失礼 提交于 2020-03-18 19:35:48
v Oracle 分区表 总结 分类: Oracle Advanced Knowledge 2009-10-23 11:38 10094人阅读 评论 (12) 收藏 举报 一 . 分区表理论知识 Oracle 提供了分区技术以支持 VLDB(Very Large DataBase) 。分区表通过对分区列的判断,把分区列不同的记录,放到不同的分区中。分区完全对应用透明。 Oracle 的分区表可以包括多个分区, 每个分区都是一个独立的段( SEGMENT ),可以存放到不同的表空间中 。查询时可以通过查询表来访问各个分区中的数据,也可以通过在查询时直接指定分区的方法来进行查询。 When to Partition a Table 什么时候需要分区表,官网的 2 个建议如下: ( 1 ) Tables greater than 2GB should always be considered for partitioning. ( 2 ) 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

Oracle 分区表 总结

天大地大妈咪最大 提交于 2020-03-18 19:34:35
一 . 分区表理论知识 Oracle 提供了分区技术以支持 VLDB(Very Large DataBase) 。分区表通过对分区列的判断,把分区列不同的记录,放到不同的分区中。分区完全对应用透明。 Oracle 的分区表可以包括多个分区, 每个分区都是一个独立的段( SEGMENT ),可以存放到不同的表空间中 。查询时可以通过查询表来访问各个分区中的数据,也可以通过在查询时直接指定分区的方法来进行查询。 When to Partition a Table 什么时候需要分区表,官网的 2 个建议如下: ( 1 ) Tables greater than 2GB should always be considered for partitioning. ( 2 ) 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. 在 oracle 10g 中最多支持: 1024k-1 个分区: Tables can be

关于分区表和分区索引

人盡茶涼 提交于 2020-03-18 19:34:14
关于 分区表 和 分区索引 (About Partitioned Tables and Indexes) 对于10gR2而言,基本上可以分成几类: v Range(范围)分区 v Hash(哈希)分区 v List(列表)分区 v 以及组合分区:Range-Hash,Range-List。 对于表而言(常规意义上的堆组织表),上述分区形式都可以应用(甚至可以对某个分区指定compress属性),只不过分区依赖列不能是lob,long之类数据类型,每个表的分区或子分区数的总数不能超过1023个。 对于索引组织表,只能够支持普通分区方式,不支持组合分区,常规表的限制对于索引组织表同样有效,除此之外呢,还有一些其实的限制,比如要求索引组织表的分区依赖列必须是主键才可以等。 注:本篇所有示例仅针对常规表,即堆组织表! 对于索引,需要区分创建的是全局索引,或本地索引: l 全局索引(global index):即可以分区,也可以不分区。即可以建range分区,也可以建hash分区,即可建于分区表,又可创建于非分区表上,就是说,全局索引是完全独立的,因此它也需要我们更多的维护操作。 l 本地索引(local index):其分区形式与表的分区完全相同,依赖列相同,存储属性也相同。对于本地索引,其索引分区的维护自动进行,就是说你add/drop/split/truncate表的分区时

创建与管理Oracle的分区表和本地索引

ぃ、小莉子 提交于 2020-03-18 19:32:50
在网上看到eygle写的一篇关于分区表和本地索引的文章,感觉总结的挺好,特转了过来。 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  

sqlserver 2005新特性

。_饼干妹妹 提交于 2020-03-11 13:11:14
一、数据库设计方面 1、字段类型。 varchar(max)\nvarchar(max)类型的引入大大的提高了编程的效率,可以使用字符串函数对CLOB类型进行操作,这是一个亮点。但是这就引发了对varchar和char效率讨论的老问题。到底如何分配varchar的数据,是否会出现大规模的碎片?是否碎片会引发效率问题?这都是需要进一步探讨的东西。 varbinary(max)代替image也让SQL Server的字段类型更加简洁统一。 XML字段类型更好的解决了XML数据的操作。XQuery确实不错,但是个人对其没好感。(CSDN的开发者应该是相当的熟了!) 2、外键的级联更能扩展 可能大部分的同行在设计OLTP系统的时候都不愿意建立外键,都是通过程序来控制父子数据的完整性。但是再开发调试阶段和OLAP环境中,外键是可以建立的。新版本中加入了SET NULL 和 SET DEFAULT 属性,能够提供能好的级联设置。 3、索引附加字段 这是一个不错的新特性。虽然索引的附加字段没有索引键值效率高,但是相对映射到数据表中效率还是提高了很多。我做过试验,在我的实验环境中会比映射到表中提高30%左右的效率。 4、计算字段的持久化 原来的计算字段其实和虚拟字段很像。只是管理方面好了而已,性能方面提高不多。但是SQL2005提供了计算字段的持久化,这就提高了查询的性能

oracle 优化 —— 分区表

泄露秘密 提交于 2020-03-06 08:39:59
一、分区表简介   分区表类型: 【范围分区】、【列表分区】 【hash分区】 【这些分区的组合分区】     范围分区:以某一个范围进行分区。eg:时间段划分。     列表分区:以某一些几个值进行分区。eg:地区分区,省份进行划分。     hash分区:以hash算法进行分块。可以有效的消除io的竞争。 更多用在组合分区的子分区中。     组合分区:11g前仅有两种组合分区 (range- *) eg: 范围 -列表(月份地区),范围- hash 两种组合          11g后新增四种。(range-range,list-list,list-hash,list-range) 考虑到兼容性等问题尽量使用 范围开头的组合分区。       使用分区表优点:      减少访问路径,提升性能外      更方便的批量操作数据,从而维护方便。     不同的分区映射到磁盘以平衡I/O,改善整个系统性能。     相比索引来讲:索引的维护开销是相当大的,它要保证他的有序性,他的数据结构如果乱的话、是需要重组的,而分区表化整为零,大大的减小了扫描范围,同样可以起到很高的效率。 二、分区表实战   范围分区示例    1 -- 范围分区示例 2 drop table range_part_tab purge; 3 --注意,此分区为范围分区 4 5 --例子1 6 create