DB2/z v10 的 DB2 文档在 tablespaces section 中有以下片段:
As a general rule, you should have only one table in each table space.
但它实际上并没有为此提供任何理由。
我们有一些表格存储了以下几行基于时间的历史信息(大大降低了复杂性,但应该足以说明):
Table HOURLY_CPU_USAGE:
RecDate date
RecTime time
Node char(32)
MaxCpuUsage float
primary key (RecDate, RecTime, Node)
Table DAILY_CPU_USAGE:
RecDate date
Node char(32)
MaxCpuUsage float
primary key (RecDate, Node)
Table MONTHLY_CPU_USAGE:
RecDate date
Node char(32)
MaxCpuUsage float
primary key (RecDate, Node)
(日表将所有小时记录汇总为一天,月表对日数据进行相同处理,将其汇总到日期为
YYYY-MM-01
的行中)。现在在我看来,这些表的用途都非常相似,我不确定为什么我们要将它们保存在单独的表空间中。
现在打折将它们组合成一个表的可能性,这是我提出的建议,但有一些并发症阻止了它。
“每个表空间一个表”指南背后的基本原理是什么?有哪些异常(exception)(如果有)?我假设它们可能是异常(exception),因为它似乎是一个指导方针,而不是一个硬性规定。
最佳答案
只是一个疯狂的猜测……但也许 IBM 建议每个表空间不要超过一个表,因为许多 db/2 实用程序在表空间级别运行。如果将多个表放入一个表空间,那么实用程序将作为一个单元对所有表进行操作。
例如,备份和恢复在表空间级别工作。您不能备份/恢复同一表空间中的单个表。它们都作为一个单元进行备份或恢复。我相信同样的事情适用于其他实用程序,可能也适用于许多调整参数。
关于db2 - 为什么 DB2 建议每个表空间一张表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9374338/