最初当我们开始转移到db2 LUW时,我们遇到了一些问题,我们的表太大而不适合默认的4K表空间。 由于“压力”来完成它,我们只需要一个32K的默认表空间,并把所有的表格放在那里。
如果有的话会有什么影响? 我曾经和一个人说过,有可能把数据库做得比它所需要的大得多。 真的吗? 记忆呢? 将小表移回到4K表空间会有什么好处吗? 我在论坛上四处张望,什么也没有,但似乎找不到一个好的答案。
总之,如果你有相对较低的要求(小型数据库,交易量低)我不打扰为不同的页面大小设置不同的表空间。 但是,如果您的数据库很大或者您的交易量增加, 就会出现与性能和空间要求相关的问题。
DB2可以在一页中保存最多恒定数量的行( 源 ):
在32K页面大小的表空间中放置的行长度为12字节的表仅使用每个页面的约10%,其计算为(255行×12字节)+ 91字节的开销)/ 32k页面大小= 10%。 这只是一个考虑,如果桌子很大,这意味着浪费的空间是显着的。 这也使得I / O和缓冲效率较低,因为每个页面的实际有用内容都很小。
如果数据库足够小以便完全适合您的缓冲池,则性能方面可能不会有明显的差异。 另外,如果数据库很小,则可能不会注意到几千兆字节的空间。
您可以优化的东西(可能是IBM认为的)是您可以在不同的IO设备上设置表空间,并且还可以针对确切的使用情况优化缓冲池。 对所有表使用相同的缓冲池可能会导致实例中的某些辅助function(例如应用程序中的一些Janitor任务)通常会从缓冲池中清除最常用的数据。 把临时表之类的东西放到不同的表空间和缓冲池中,可以控制你的宝贵内存的用途。 不过,正如前面所说,这些事情只有在某一点之后才开始。
根据IBM的说法,在基本安装上,不存在大小差异或性能差异。 任何收益将来自多个表空间并单独优化它们。