【问题标题】:IBM DB2 9.7 determining default tablespaceIBM DB2 9.7 确定默认表空间
【发布时间】:2014-03-24 07:39:26
【问题描述】:

我有一个 DB2 9.7 数据库。我已经定义了任何特定的表空间,所以所有表都转到 USERSPACE1。

现在我创建了两个新表空间,并使用 IN 子句为这两个新表空间中的每一个分配了两个表。但是,现在所有其他表也都进入了两个新表空间之一,即使我没有为其余的表指定它!

如何在不为每个表显式定义的情况下让其余表转到前一个 USERSPACE1 表空间?谢谢。

【问题讨论】:

    标签: db2 tablespace db2-luw


    【解决方案1】:

    当没有指定表空间子句时,DB2 会根据下一个算法选择表空间:

    如果未指定此子句,则数据库管理器选择一个表 空间(来自数据库中现有表空间的集合)与 最小的足够页面大小并且行大小在行内 页面大小限制,授权ID所在的页面大小 语句具有 USE 权限。

    如果有多个表空间符合条件, 按照以下优先顺序选择表空间,具体取决于 语句的授权 ID 如何被授予 USE 权限 表空间:

    1. The authorization ID
    2. A role to which the authorization ID is granted
    3. A group to which the authorization ID belongs
    4. A role to which a group the authorization ID belongs is granted
    5. PUBLIC
    6. A role to which PUBLIC is granted
    

    如果多个表空间仍然符合条件,则做出最终选择 由数据库管理器。

    如果发生以下情况,表空间的确定可能会改变:

    Table spaces are dropped or created
    USE privileges are granted or revoked
    

    http://pic.dhe.ibm.com/infocenter/db2luw/v10r5/topic/com.ibm.db2.luw.sql.ref.doc/doc/r0000927.html

    如您所见,表空间 USERSPACE1 可以选择也可以不选择,具体取决于许多参数。最好是标明表空间,或者不允许大家在其他表空间创建表。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-12-17
      • 1970-01-01
      • 1970-01-01
      • 2012-11-14
      • 2013-11-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多