使用 DB2 对象:创建索引
索引(index) 是DB2数据库中的一种辅助对象,但是通常它对于数据库应用程序的性能非常重要。索引使查询能够更高效地访问数据。惟一索引还用来 “确保特定数据列的惟一性”。
索引是在一个表上定义的,并使用表列的子集作为索引键。索引以经过排序的次序存储索引键。除了存储索引键之外,每个索引项包含一个称为记录 ID(RID)的逻辑指针,它指向一个数据行在表中的位置。可以指定索引项以升序还是以降序存储。索引是与表数据分开存储的。
可以选择索引是否进行聚簇。聚簇索引(clustering index) 使表中的数据按照与聚簇索引相同的次序进行聚簇。当查询按照与聚簇索引相同的次序访问表数据时,聚簇索引能够进一步提高性能。
可以在一个表上定义多个索引,对于每个表只能定义一个聚簇索引,但是 Multiple Dimensional Clustering(MDC)表例外。不能在视图上创建索引。
可以使用 CREATE INDEX 语句创建索引。以下练习演示如何使用 GUI 工具创建索引:
1、在 Control Center 中,选择 Indexes 视图。点击 Create New Index 启动 Create Index 向导。
2、在 Create Index 向导中,选择要创建新索引的表。选择 HWLD 作为表模式,AUTHOR 作为表名。对于 XML column 选项,选择 No。点击 Next。
3、在 Name 页面上,选择 HWLD 作为索引模式,指定 AUTHORID 作为索引名。点击 Next 进入 Column 页面,在这里指定索引列。
4、选择 AUTHOR_ID,并点击 > 按钮将它添加到右边作为选择的索引列。选中 Enforce uniqueness 以使 AUTHOR_ID 中的数据保持惟一性。包含列是 DB2 提供的一个特性,用来在索引中存储额外的数据列,从而加快数据访问,尤其是在只扫描索引的时候。在这里没有包含列。点击 Next。
图Create Index 向导
5、Options 页面允许对一些索引性能选项进行定制。选中 Customize performance options。
6、选择默认值。PCTFREE 和 LEVEL 2 PCTFREE 指定在创建索引期间在索引树的叶页面和第 2 层索引页面上的空闲空间。如果您知道表以后会进行许多次插入,您可能希望提高 10% 默认值,以避免在插入期间索引页面碎片化。如果指定了 MINPCTUSED,DB2 就使用这个阈值来判断何时可以将两个接近空的索引页面合并在一起。如果启用这个特性,它可以帮助减少索引页面上由于删除造成的空的空间。适当地调整这些参数有助于改进索引访问性能。
7、点击 Next 进入 Summary 页面。
8、在 Summary 页面上,使用 Show SQL 查看 CREATE INDEX 语句。如果表中有数据,那么可以使用 Estimate Size 检查新索引的空间使用情况。点击 Finish 完成索引的创建。应该会返回消息 DB20000,这表示向导成功地完成了操作。关闭消息窗口。
9、在 Control Center Indexes 视图中,选择索引名 AUTHORID。看一下这个索引的细节。点击 Show Related Objects 查看相关对象的信息,比如这个索引的基表 HWLD.AUTHOR 以及驻留这个索引的表空间 TBSP_INDEX1。
图Control Center —— 索引