事实表(如果很大)的一定要分区,而且分区方式和你的业务逻辑相关,每个分区放在一个单独的分区中。我所指的业务逻辑是指比如一个表基本粒度是 天+客户代码+产品代码,如果查询比较偏重于 时间+客户,并且每次查询都涉及到时间,这样就可以考虑使用混合分区,时间 字段做 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@]

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/8570952/viewspace-911102/,如需转载,请注明出处,否则将追究法律责任。

oracle表空间大小规划,关于oracle表空间的规划方法相关推荐

  1. mysql如何查看表的大小_mysql 如何查看表的大小

    mysql 查看表的大小方法:1.查看所有数据库各表容量大小,代码为[truncate(data_length/1024/1024, 2) as '数据容量(MB)']:2.查看指定数据库各表容量大小 ...

  2. oracle临时表空间大小查询,查看oracle 系统临时表空间、undo表空间、SGA和PGA大小...

    1)检查oracle系统临时表空间大小: select sum(bytes)/1024/1024 "temp size(M)" from dba_temp_files where ...

  3. oracle设置缓冲区大小设置,描述Oracle优化库高速缓冲区

    Oracle经过长时间的发展,很多用户都很了解Oracle优化库高速缓冲区了,这里我发表一下个人理解,和大家讨论讨论.日志缓冲区也称为重做日志缓冲区,它包含所有变化了的数据块.这些变化的数据块通过Or ...

  4. Greenplum查看表/库大小、进程、表膨胀处理(sql语句)

    查询表相关进程 select a.pid from pg_locks a, pg_class b, pg_stat_activity c where a.relation = b.oid and a. ...

  5. 统计mysql说有表的大小_MySQL统计数据库和表大小

    MySQL统计数据库的schema和table时,可以通过以下SQL命令进行查询. 查看该数据库实例下所有库大小(单位:MB) mysql> select table_schema,sum(da ...

  6. mysql 索引空间大小_查看数据库表中容量大小,表有多少记录,占多少空间以及索引的大小,以及未使用空间...

    直接在sqlserver查询窗执行就OK了,也是网上看到的,对日常管理数据库工作者来说也蛮有用的,可以及时的清理冗余的数据,缓解数据库服务器的压力. Create Table #TableSpaceI ...

  7. mysql 设置表的大小_mysql InnoDB建表时设定初始大小的方法

    InnoDB在写密集的压力时,由于B-Tree扩展,因而也会带来数据文件的扩展,然而,InnoDB数据文件扩展需要使用mutex保护数据文件,这就会导致波动. 丁奇的博客说明了这个问题: When I ...

  8. Linux 命令之 du -- 显示每个文件和目录的磁盘使用空间/所占用的磁盘空间大小/所使用的磁盘空间大小/查看文件和目录的大小

    文章目录 命令介绍 常用选项 参考示例 (一)显示当前目录下的所有子目录和文件所占空间 (二)查看指定文件所占空间的大小 (三)查看指定目录的所占空间 (四)查看多个文件所占空间 (五)查看指定目录所 ...

  9. 查oracle表空间最大的表,查询表空间大小(oracle查询表空间大小)

    查询表空间大小(oracle查询表空间大小) 2020-07-24 11:36:31 共10个回答 使用以下语句查看当前用户每个表占用空间的大小:selectsegment_name,sum(byte ...

  10. 更改oracle 表空间大小,更改oracle数据库表空间大小

    Oracle表空间扩展 使用oracle时可能遇到无法通过8192在表空间中扩展错误,原因是数据库的表空间不足. oracle表空间数据文件容量与db_block_size有关,在初始建库时指定DB_ ...

最新文章

  1. ArcGIS地理信息系统空间分析实验教程第一章 导论
  2. ML之DT:基于DT决策树算法(对比是否经特征筛选FS处理)对Titanic(泰坦尼克号)数据集进行二分类预测
  3. 二叉树中的最大路径和—leetcode124
  4. asp单元格合并后宽度没有合并_宅在家里跟着大牛从零开始学excel第五课-合并,边框,列宽行高...
  5. 如何安装Genymotion虚拟机以及Genmotion的eclipse插件
  6. 力扣20.有效的括号
  7. java 装饰者_java装饰者模式怎么用?
  8. D-Link 老款路由器被曝多个高危漏洞,未完全修复
  9. linux 下拉式 终端,Gnome桌面的下拉式终端: Guake
  10. 免费建站网站分享,最好的自助建站
  11. 服务器虚拟化怎么配置,教你如何配置服务器虚拟化环境
  12. 安卓开发——修改Toolbar默认图标(如返回图标)的颜色
  13. linux 网卡绑定解绑,网卡绑定开机绑定,关机解绑
  14. ASEMI代理AD8603AUJZ-REEL7原装ADI车规级AD8603AUJZ-REEL7
  15. 塑料周转箱提高贮存效率
  16. Imagick的图像水印
  17. [轻松一下]--十句关于友谊与爱的哲言
  18. (02)Cartographer源码无死角解析-(52) 2D点云扫描匹配→ceres扫描匹配:CeresScanMatcher2D→栅格地图残差
  19. python visa库 仪器控制_Python的扩展接口[0] - VISA仪器控制
  20. 昨晚,我用python帮学妹P证件照自拍,然后发现。。。

热门文章

  1. 【Java代码】使用双冒号 :: 简洁代码及方法引用(静态方法+构造方法+实例方法+函数式编程举例)
  2. python面向对象继承_Python 面向对象 --- 继承
  3. SpringMVC-设置编码过滤器
  4. 「中间件系列一」kafka消息中间件
  5. Linux Swap空间利用率过高
  6. java中var是什么意思_js中的var是什么意思
  7. 中国科学院计算机专业职称,2018年春季工程技术系列专业技术资格职称评审结束...
  8. 计算机网络中的时延有哪几部分,计算机网络中的四种延迟分别是什么?
  9. 用tensorflow实现yolov3
  10. JSP、EL和JSTL-学习笔记01【JSP基础语法】