创建唯一索引
在DB2 UDB中,我可以使用以下语法创建索引
create unique index I_0004 on TABLENAME (a) INCLUDE (b, c, d);其中a、b、c和d是表TABLENAME的字段。
在用于os390的DB2中,不允许使用此语法( INCLUDE关键字),因此我按如下方式创建索引
create unique index I_0004 on TABLENAME (a);
create index I_0005 on TABLENAME (a, b, c, d);上面的两个语句是否等同于使用INCLUDE关键字的解决方案?
索引列顺序
如果我稍微修改一下第一条语句
create index I_0005 on TABLENAME (a, b, c, d) ALLOW REVERSE SCANS; 这个ALLOW REVERSE SCANS是否等同于创建索引
create index I_0005 on TABLENAME (a, b, c, d);
create index I_0005 on TABLENAME (d, c, b, a); 或者它是否也考虑了给定列的任何组合(我的意思是,a,b,c,d;b,c,d,a;c,d,a,b;等等)?
发布于 2009-05-25 16:31:16
关于UNIQUE INDEX:粗略地说,是的,(a)上包括(b, c, d)的唯一索引相当于(a)上的唯一索引加上(a, b, c, d)上的非唯一索引--当然,在内部,数据库引擎可以使用更少的空间&c。
关于ALLOW REVERSE SCANS:不,(a, b)上可以反向扫描的索引并不等同于(b, a)上不能加1的索引--相反,可以反向扫描的索引等同于不能在同一列上加上另一个索引,其中每个ASC都会变成DESC,反之亦然(如果不指定,ASC就是默认值)。
请注意,由于默认情况下允许使用DB2 9.1反向扫描,因此请参阅http://publib.boulder.ibm.com/infocenter/db2luw/v9/index.jsp?topic=/com.ibm.db2.udb.rn.doc/doc/c0023548.htm (并且,我相信DB2 V8现在已不再受支持,请参阅http://www-01.ibm.com/support/docview.wss?rs=71&uid=swg21370360 --我认为V9.5是当前版本)。
https://stackoverflow.com/questions/906603
复制相似问题