pax*_*blo 4 db2 mainframe zos tablespace
DB2 docs for DB2/z v10在tablespaces部分中包含以下代码段:
作为一般规则,每个表空间中应该只有一个表.
但它实际上并没有为此提供任何理由.
我们有一些表存储基于以下行的历史时间信息(复杂性大大降低,但应足以说明):
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)
Run Code Online (Sandbox Code Playgroud)
(每日表将所有小时记录汇总到一天,月表与日常数据相同,将其汇总到日期行中YYYY-MM-01).
现在在我看来,这些表的目的非常相似,我不确定为什么我们要将它们保存在单独的表空间中.
现在折扣将它们组合成一张表的可能性,这是我提出的建议,但有一些并发症阻止了它.
"每个表空间一个表"指南背后的理由是什么?有什么例外,如果有的话?我认为它们可能是例外,因为它似乎是一个指导而不是一个严格的规则.
小智 5
目前,每个表空间维护一个表的主要原因是管理表.大多数DB2实用程序在表空间级别工作.例如,如果对特定表的表空间执行LOAD REPLACE,则所有其他表将以空结束为空,因为LOAD REPLACE执行的第一件事是删除所有行.
所以"为什么你不为每个表空间保留一张桌子?".我认为,当表与一个没有另一个没用的程度相关时,在一个表空间中包含多个表是合理的,甚至是可取的.例如.CustomerTable + NextCustomerIDTable.
另一个考虑因素是表空间的类型.根据您创建的表空间类型,在单个表空间中创建多个表可能会影响性能.如果不使用分段表空间,表空间扫描将读取表空间中的所有页面,包括其他表中的页面.请参阅此处的"表空间扫描"主题:http://publib.boulder.ibm.com/infocenter/dzichelp/v2r2/index.jsp? topic =%2Fcom.ibm.db2.doc.ve%2Fdvnhlpcn_tablescan.htm
| 归档时间: |
|
| 查看次数: |
5138 次 |
| 最近记录: |