DB2/z v10 的 DB2 文档在表空间部分有以下片段:
作为一般规则,您应该在每个表空间中只有一个表。
但它实际上并没有为此提供任何理由。
我们有一些表格存储基于时间的历史信息,大致如下(复杂性大大降低,但应该足以说明):
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)
(每日表将所有每小时记录汇总到一天中,而每月表对每日数据执行相同操作,将其汇总到带有 date 的行中YYYY-MM-01
)。
现在在我看来,这些表的用途都非常相似,我不确定为什么我们要将它们保存在单独的表空间中。
现在折扣将它们组合成一个表的可能性,这是我提出的一个建议,但有一些并发症阻止它。
“每个表空间一个表”准则背后的基本原理是什么?有哪些例外(如果有)?我假设它们可能是例外,因为这似乎是一个指导方针,而不是一个硬性规定。