db2 - 为什么 DB2 建议每个表空间一张表?

标签 db2 mainframe zos tablespace

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/

相关文章:

programming-languages - : PROC,是什么语言VERIFY,DECLARE,SCREEN,CMS,

DB2 版本的 SQL 差异

db2 - 在 db2 中提取两个日期之间的记录

c# - 尝试从包含 UNION 的 View 中进行 SELECT 时出现 DB2 'SQL0901 SQL System Error.'

db2 - SQLRPGLE 程序 IBM 中的 SQLSTATE '08003'

legacy - Cyber​​syn/cyberstride 是用什么语言实现的?

cobol - 在运行时显示 loadlib

java - JZOS 批处理工具包 - 集成 JZOS Cobol 记录生成器

input - 在 z/OS Assembler 中,我可以读取 JCL 输入流两次吗?

sql - 在 (DB2) SQL 中选择上个月的第一天