IBM DB2 9.7确定默认表空间

时间:2014-03-24 07:39:26

标签: db2 tablespace db2-luw

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

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

如何在不为每个表明确定义的情况下,将其余表转到上一个USERSPACE1表空间?感谢。

1 个答案:

答案 0 :(得分:0)

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

  

如果未指定此子句,数据库管理器将选择一个表   空间(来自数据库中现有表空间的集合)与   最小的页面大小以及行大小在行内的位置   授权标识的页面大小的大小限制   声明具有USE特权。

     

如果有多个表空间符合条件,   根据以下优先顺序选择表空间   如何为该语句的授权标识授予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。最好的方法是指示表空间,或者不允许每个人在其他表空间中创建表。