我在我的一个表中检查了索引类型,发现所有索引都是REG类型(非群集)。根据DB2文档,如果没有明确指定,DB2默认使用创建为聚簇索引的第一个索引。为什么DB2将所有索引显示为REGULAR?
参考:http://www-01.ibm.com/support/knowledgecenter/SSEPEK_10.0.0/com.ibm.db2z10.doc.intro/src/tpc/db2z_clusteringindexes.dita “当表具有集群索引时,INSERT语句会使DB2按其索引值的顺序尽可能多地插入记录。除非您明确指定CLUSTER,否则您在表上定义的第一个索引将隐式地作为集群索引使用当您创建或更改另一个索引时。例如,如果您首先在EMP表的EMPNO列上定义唯一索引,那么DB2将按照员工标识号的顺序将行插入EMP表,除非您明确定义另一个索引为聚类索引“
答案 0 :(得分:0)
以下是我对您的问题的理解 - 您在IBM文档网站上阅读了
如果没有明确指定
,DB2默认使用创建为聚簇索引的第一个索引
您的问题是您看到了DB2 9.7 LUW数据库并且只看到了REG索引。
@mustaccio是对的。 DB2 LUW默认情况下从不创建聚簇索引。
根据DB2 9.7 LUW文档here,它说
不能将聚类索引指定为表定义的一部分 与CREATE TABLE语句一起使用。相反,聚类索引是 仅通过使用CLUSTER执行CREATE INDEX语句来创建 选项指定。然后应该使用ALTER TABLE语句来添加 与创建的聚簇索引对应的主键 表。然后,此聚类索引将用作表的主要索引 关键指标。
@Ian Bjorhovde也是正确的,您正在阅读DB2 for z / OS文档。 DB2 LUW和DB2 for z / OS之间存在许多差异