db2创建删除索引sql命令,aqua data studio
db2创建索引可以在建表后创建/删除,所以不用担心重建表
aqua data studio工具
不能在创建表时创建索引,可以再Indexes里创建,
创建索引命令
CREATE INDEX IDX_TABLENAME_COLUMNNAME ON TABLENAME(COLUMNNAME) PCTFREE 10 MINPCTUSED 10 ALLOW REVERSE SCANS
第一行是必须的,其他可选
PCTFREE:CREATE INDEX 语句的PCTFREE子句指定创建索引时,每个索引页中要留作空闲空间的百分比。在索引页上保留更多的空闲空间将导致更小的页分割,这将减少为重新获得顺序索引页面而重组表的需要,从而增加预存取,而预存取是一个可以提高性能的重要部件。此外,如果总是存在大关键字值,那么就要考虑降低CREATE INDEX语句的PCTFREE子句的值。
对于只读表上的索引,使PCTFREE为0;对于其他索引,使PCTFREE为10(DB2建表时,PCTFREE默认为10),以提供可用的空间,从而加快插入操作的速度。此外,对于有集群索引的表,这个值应该更大一些,以确保集群索引不会被分成太多的碎片。如果存在大量的插入操作,那么使用15到35之间的值或许会更合适一些。
MINPCTUSED:CREATE INDEX语句的MINPCTUSED子句指定在索引叶页上最小已用空间的阈值。如使用该子句,可以对这个索引启用联机索引重组。一旦启用了联机索引重组,就可以参照一下参考事项来确定是有执行联机重组:当从这个索引的一个叶页中删除一个关键字后,并且该页上已用空间的百分比小于所指定的阈值,那么就检查相邻的索引页来确定是否可以将两个叶页上的关键字合并到单个索引页中。
如:CREATE INDEX IDX_NAME ON TAB_NAME (COL_NAME) MINPCTUSED 20
当从这个索引删除一个关键字时,如果这个索引页上的其余关键字占用索引页上20%或更小的空间,就可以尝试将这个索引页的关键字与相邻索引页的关键字合并,来删除这个索引页。如果组合的关键字可以全部位于一页上,就执行这个合并并删除其中一个索引页。
ALLOW REVERSE SCANS:在 DB2 V8 和更早的版本中,索引默认的检索方式是单向的,只进行升序检索或者降序检索,如果想利用一个索引进行双向检索,必须在创建索引的时候明确指定 ALLOW REVERSE SCANS 选项。而在 DB2 V9 中,索引的默认检索方式已经改成了双向,如果明确要求进行单向检索,需要指定 DISALLOW REVERSE SCANS 选项
删除索引命令
DROP INDEX IDX_TABLENAME_COLUMNNAME