atpeace331
作者atpeace331·2019-05-16 11:40
数据库管理员·银行

“列组织表”的技术限制 for DB2 11.1

字数 2003阅读 1793评论 3赞 2

学一门技术时,不仅要熟悉它的 应用范围、应用场景,更应了解它的 应用局限、应用限制!!!

此篇文章主要讲一下我们应该牢记的 “BLU”技术限制!

数据库环境、配置和应用限制:

  1. 列组织表无法在 DB2 pureScale 环境的数据库中创建。
  2. 列组织表必须在支持可回收存储器的自动存储器表空间中创建
  3. 列组织表必须在所具有的代码集和整理是 UNICODE 或 ISO8859-1(代码页 819)和 IDENTITY 或 IDENTITY_16BIT 的数据库中创建
  4. 无法在 XA 事务中访问或创建列组织表
  5. 列组织表的查询不支持 RS 或 RR 隔离级别
  6. 列组织表无法与对排序内存的自动调整功能一起配合使用

在做应用系统规划时,如果要使用 DB2 BLU,一定要考虑这些限制,确保它们不会影响系统规划需求!

表设计限制:

按列组织的表不能为:

  • 范围分区表
  • 多维集群表
  • 时态表
  • 类型表

按列组织的表中不能包含具有 BLOB、CLOB、DBCLOB、NCLOB 或 XML 数据类型的列。

无法对按列组织的表创建索引!

按列组织的表不支持强制检查和外键约束!
无法对按列组织的表创建触发器或者触发器不能引用这些表!

全局临时表限制:
创建的全局临时表不能是按列组织的表;使用 NOT LOGGED ON ROLLBACK PRESERVE ROWS 声明的全局临时表不能是按列组织的表。

表的维护限制:
列组织的表的 REORG TABLE 仅仅支持 RECLAIM EXTENTS 参数。
SET INTEGRITY 语句不能引用按列组织的表。
对于列组织表,无法删除或更改表中的列。

INSERT、UPDATE 和 DELETE(其中包括 MERGE)语句限制:

INSERT、UPDATE 和 DELETE 语句上的一些选项不受列组织表支持。

下列各项不受支持。针对列组织表的限制也适用于一个或多个列组织表的视图:

    SELECT FROM INSERT / UPDATE / DELETE(当 INSERT、UPDATE 或 DELETE 语句的目标表是列组织表时)。因此,不需要支持 INSERT、UPDATE 和 DELETE 语句的 include-columns 子句。 仅在从 INSERT、UPDATE 或 DELETE 语句执行选择操作的情况下,该子句才受支持。因为 include-columns 子句不受支持,所以 DELETE 语句中的 assignment-clause 子句不受支持。
    触发器(当主题表或位于触发器主体中的 INSERT、UPDATE 或 DELETE 语句的目标是列组织表时)。
    定位的 UPDATE 或 DELETE。即,UPDATE 或 DELETE WHERE CURRENT OF cursor-name,其中目标表是列组织表。当外部全查询包括对列组织表的引用时,无法声明可更新或可删除的游标。
    SELECT...FOR UPDATE(当目标表是列组织表时)。
    在 Db2 Cancun Release 10.5.0.4 之前,为 MERGE 语句(当目标表为 列组织 表时)。从 Db2 Cancun Release 10.5.0.4 开始,此限制被取消。
    原子块内的 INSERT、UPDATE 或 DELETE 语句(当目标表是列组织表时)。
    UNION ALL 视图上的 INSERT、UPDATE 或 DELETE 语句(当该 UNION ALL 视图包括列组织表时)。
    正在对列组织表进行修改的语句中 DEFAULT 或 UNASSIGNED 的扩展指示符变量值。
    可重复的读 (RR) 和读稳定性 (RS) 隔离级别(当扫描的表是列组织表时)。 因此,如果扫描的底层表是列组织表,那么 INSERT、UPDATE 或 DELETE 语句的 WITH isolation-level 子句仅接受未落实的读 (UR) 或游标稳定性 (CS) 隔离级别。将列组织表上 CS 扫描的 cur_commit 数据库配置参数设置为 DISABLED 不受支持。此外,如果 ConcurrentAccessResolution CLI/ODBC 关键字为列组织表上的 CS 扫描指定 CurrentlyCommitted,那么将返回错误。从 Db2 Cancun Release 10.5.0.4 开始,此限制也适用于包含 WITH isolation-level 子句的 MERGE 语句。

更加详细的信息请参考信息中心:https://www.ibm.com/support/knowledgecenter/en/SSEPGG_11.1.0/com.ibm.db2.luw.admin.dbobj.doc/doc/c0061528.html

如果觉得我的文章对您有用,请点赞。您的支持将鼓励我继续创作!

2

添加新评论3 条评论

michael1983michael1983联盟成员技术总监某证券
2019-05-20 11:04
摈弃DB2很久了

atpeace331@michael1983 我现在就是多学习学习 oracle、DB2、mysql这些技术,等某国产数据库解决方案成熟,我们会通通迁移过去,尤其oracle,又贵而且贸易战早晚会打到软件层面上的!

2019-05-22 09:23
redbookredbook系统工程师招商银行
2019-05-17 09:18
不支持中文字符集,毫无用处
mousekeymousekey系统运维工程师fssb
2019-05-16 17:15
i列组织表有什么好处,应用场景有哪些?
Ctrl+Enter 发表

作者其他文章

相关问题

X社区推广