关于oracle表空间的规划⽅法
事实表(如果很⼤)的⼀定要分区,⽽且分区⽅式和你的业务逻辑相关,每个分区放在⼀个单独的分区中。我所指的业务逻辑是指⽐如⼀个表基本粒度是 天+客户代码+产品代码,如果查询⽐较偏重于 时间+客户,并且每次查询都涉及到时间,这样就可以考虑使⽤混合分区,时间 字段做 Range 分区,客户 字段 做 Hash ⼦分区。
对于表空间来说,最重要的是如何把要连续访问的段放在⼀起,但是由于oracle 不能提供基于段的统计信息,所以对数据的物理模型设计和访问模式的详细了解对表空间的规划有⾮常⼤的好处。然后基于这些原则,我们就可以平衡这些因素。
表空间的使⽤遵循以下原则:
1. 对每个表空间上的段使⽤相同的区⽚尺⼨;段参数INITIAL=NEXT,PCTINCREASE=0;可以通过使⽤Create Tablespace 的‘MINIMUM EXTENT’ ⼦句来确保分配的区⽚是此参数的倍数;
2. 仅在表空间级指定INITIAL、NEXT参数,在创建数据段时不要指定这些参数;
3. 区⽚的⼤⼩根据段⼤⼩来确定,原则是均衡顺序扫描的效率和空间的利⽤率,同时确保段的区⽚数⽬控制在1024之下;根据此原则,在进⾏相应测试之后,确定以下区⽚选取规则:
好听的男生名段⼤⼩ 区⽚⼤⼩)
128M 128K
128M-4G 4M
4G 128M
4.Oracle9i引⼊了本地管理表空间,它在管理和性能上都优于传统的字典管理表空间,它已融合了规则1、2、3 ;要使⽤此特性,在CREATE TABLESPACE语句中指定EXTENT MANAGEMENT LOCAL⼦句;
5. 段的区⽚数⽬上限应在4096之下,DML操作在此区⽚数⽬范围内不会有明显的性能差异;但某些DDL操作的速度则与区⽚的数⽬关系较⼤;因此合理的区⽚数⽬应保持在1024之下;对于持续不断扩展的段,应监控区⽚数⽬,在必要时移⾄其它表空间;
6. 对于特别⼤的数据段应控制在4G-128G(Oracle7为5G-160G)之间,它们应存放到单独的表空间上,同时对于这些特⼤段应考虑使⽤分区拉提⾼性能;
7. ⽤户的临时表空间应使⽤TEMPORARY类型;
汉堡加盟排行榜8. 当系统的事务规模⽐较均衡时可以对回滚段使⽤OPTIMAL参数,否则应避免制定OPTIMAL参数,⽽定期监控回滚段的⼤⼩,并在必要时重建;
9. 临时段和回滚段绝对不要将⽤户数据存放到SYSTEM表空间,它是专为永远不会Drop和Truncate的系统数据对象⽽设计的;
10. 创建表空间时指定数据⽂件的⼤⼩应=区⽚整数倍+1数据块,对于Local Managed Tablespace则为区⽚整数倍+64K;
清炒西兰花11. 当表空间使⽤统⼀的区⽚⼤⼩时,不要对其进⾏空间整理,重整的结果不仅耗费精⼒⽽且可能会使性能变差;对于未使⽤统⼀的区⽚尺⼨的表空间应通过Export/Import重整;
12. 9i 提供了Alter Table …Move [Tablespace…]命令可⽤于快速重整表,Alter Index …Rebuild…[Tablespace…] 命令可⽤于快速重建索引;
露珠⾸先,不同访问模式的段不应该放在同⼀个表空间当中,⼀般⽽⾔,我们有以下两种完全不同的访问模式需要特别考虑
顺序读写
段的读写基本是以⼀种连续读写的⽅式进⾏的,譬如:单线程全表扫描,快速全索引扫描,应该被单独存放在⾃⼰的表空间当中,⽽且,如果可能的话,这些表空间的数据⽂件也应当保存在⼀些并发访问尽可能少的磁盘当中,这样的话,在进⾏扫描的时候,查询速度会有⾮常⼤的提⾼。因为,基本上磁盘的寻道时间是最⼩的,⽽且⼤多数数据都可以从硬盘的buffer当中取得。
集中写
类似⼤量数据集中写⼊或者parallel direct loads 这种应⽤,应当被放在单独的表空间当中,⽽且尽可能保存在较快的镜像盘当中,⽽不应该选⽤RAID-5,
还有⼀个问题就是,对于⼀些只读的历史数据,最好把它们放在单独的表空间当中,并且标记为只读,这样会⼤⼤加快备份时的速度。
其次,考虑到磁盘的负载均衡,建议把段分开在不同的设备上来保存. 我们需要从两个不同的⾓度来进⾏考虑:
活动性
两个IO很⼤的段不应该放在同⼀个表空间当中,即使这个表空间是由多个数据⽂件组成,也没有办法避免由于IO 争⽤造成的性能下降.
相关性
通常情况下,把相关的⼀些段从⼀个表空间当中分离出来,典型地来说就是尽可能把表和索引分在不同地表空间,两个经常需要做连接地⼤表分在两个不同地表空间,这样就可以避免,数据访问,索引读取和执⾏计划同时对⼀个表空间进⾏⼤量地IO操作。
常⽤原则法国香水品牌有哪些
1、⼀般较⼤的表或索引单独分配⼀个tablespace。
2、Read only对象或Read mostly对象分成⼀组,存在对应的tablespace中。
中考成绩什么时候才公布3、若tablespace中的对象皆是read only对象,可将tablespace设置成read only模式,在备份时,read only tablespace只需备份⼀次。
4、⾼频率insert的对象分成⼀组,存在对应的tablespace中。
5、增、删、改的对象分成⼀组,存在对应的tablespace中。
6、表和索引分别存于不同的tablespace。
7、存于同⼀个 tablespace中的表(或索引)的extent ⼤⼩最好成倍数关系,有利于空间的重利⽤和减少碎⽚。
根据以上原则,数据库表空间设计如下:原则上每个schema对应⼀个表空间和⼀个相应索引表空间;每个schema下的⼤表对应⼀个单独的表空间和索引表空间;对于需要分区的特⼤表,则每个⼦分区对应⼀个单独的表空间和索引空间。
[@more@]
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论