把用户数据与数据字典数据分开。
把不同应用组的数据分别放在不同的表空间中。
为了减少I/O的竞争,把不同表空间的数据文件放在不同的硬盘上。
分离用户数据和回滚段的数据以防止某个磁盘出现故障丢失数据。
控制数据的可用性,例如使一些表空间联机(online)而另一些表空间脱机(offline)
为特殊类型的数据库使用保留某个表空间。例如,高频率的更新操作,只读操作或临时段
在上述原则中,对日常系统最有用的原则是把索引空间同数据表空间分离开来。把它们分
离出来的理由如下:与表相关联的索引会导致I/O和表增长/碎片问题的出现。碎片问题同样要
求将数据段从系统表空间中分离出来。同时对索引的数据操纵和查询时将会由大量的输入/输
出。索引段同样因为不恰当的大小或无法预料的表增长问题而导致碎片。将应用索引分离到一
个单独的表空间中,将大大减少管理数据空间和索引空间碎片问题的工作量。
在数据库的表空间设计时,建议每一个表空间对应的数据物理文件的大小应该小于1G大小
,因为许多系统的操作系统不支持大于2G大小的文件。同时,从数据库的备份角度考虑,对小
文件的备份不仅可以提高备份的速度,也可以提高备份的安全性。
对表空间建立的时候,有一参数应该注意,它就是在建立TABLESPACE时用到的DEFAULT
STORAGE,该参数决定了今后建表或建索引时默认的存储策略(也就是说如果没有修改建表或
建索引的参数时,系统就用该默认参数)。
由于创建表空间要用到数据文件,如果一个系统很大的话,就需要许多的数据文件。而该
数据文件的个数会受到初始化参数或操作系统的限制,因此在创建表空间时,应该考虑系统的
限制,选择有效的参数。对于一个ORACLE数据库而言,它的最大数目受如下三个方面限制,它
们分别是:操作系统能够打开的最大文件数目,db_files的数目,建立数据库时的参数
maxdatafiles数目。在上述参数中,以操作系统的限制为主,其次为maxdataflies,最后为
db_files。也就是说如果操作系统允许打开的文件数为32,而maxdatafiles设置为48的话,系
统认为打开的文件数目最大为32,如果操作系统允许最大的打开文件数目为64,maxdatafiles
数目为32,db_files数目为48,那么系统允许打开的文件最大数目为32,而不是48。
在进行临时表空间的设计时,应该考虑在实际的日常应用中会引起临时表空间扩展的语句
,因为临时表空间的扩展同样会导致应用的终止。在我们日常的应用中如下DDL或DML语句会引
创建索引:create index
在日常的DML语句中存在如下关键字会引起临时表空间扩展:SELECT…DISTINCT,ORDER
没有索引的连接:none-indexed joins
包含关联的子查询:certain correlated subqueries
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/701141/viewspace-407196/,如需转载,请注明出处,否则将追究法律责任。