在我们的应用程序(基于Oracle)中,我们正在处理大量数据。对于一些主要的表,我们使用单独的表空间,但是对于其余的表,我们使用默认的表空间。
我的查询是
。对于每个表(记录数超过百万的表)都有单独的表空间(就性能而言)是否好?
b.或者我们可以为剩下的表定义一个单独的表空间,而不是默认的表空间。
c.如果对大容量表使用默认表空间,是否会影响性能?
现在通常没有专门用于表空间的磁盘,数据存储在存储网络(SAN)中,并且与物理文件系统没有任何固定的关系。因此,表空间的分布不像以前那么敏感或关键——只要没有非常特殊的或非常大的数据。
例如,我有一个应用程序,我每天得到大约10亿条记录,即应用程序150GB。在这里,我为每个日常分区使用一个表空间(即150个循环表空间)。主要原因是更容易维护,例如截断旧数据。
san似乎已经结束了这场争论,然而,当您考虑本地管理的表空间时,有一种趋势是使用这些来让表继承存储属性。例如,现在非常常见的表空间有LM_SMALL_TABLE、LM_MEDIUM_TABLE、LM_LARGE_TABLE(和索引类似),或者LM_16k_TABLE、LM_1M_TABLE、LM_10M_TABLE、LM_100M_TABLE和索引类似。它们将初始区和下一个区设置为16k、1m等。然后将表放在与预期容量相匹配的表空间中。您有时会看到,通过将表/分区移动到这样的表空间,将有存档/只读数据的数据库移动到更便宜的磁盘上。我唯一一次看到每个表有一个表空间是在8i上,客户端希望这样做,以便通过恢复表空间/数据文件来将特定的表恢复到备份。