DB2中创建索引

注意:DB2中创建主键,会自动隐式创建索引

 

PRIMARY KEY 子句告诉 DB2 自动生成索引,由此索引来强制实施该列的惟一性。此外,整个表仅有一个主键,因此没有其他任何列会包含该子句。若多个列需要保证该行的惟一性,则必须在表定义后加上 PRIMARY KEY 子句:

CREATE TABLE EMPLOYEE
  (
  EMPNO INT NOT NULL,
  LASTNAME VARCHAR(20) NOT NULL,
  ...,
  PRIMARY KEY (EMPNO, LASTNAME)
  )

 

注意:在数据库中, 每条记录的物理存储是无序的。

         如果没有索引,将会搜索整个表

 

Create an Index:

The physical storage of rows in a base table is not ordered. When a row is inserted, it is placed in the most convenient storage location that can accommodate it. When searching for rows of a table that meet a particular selection condition and the table has no indexes, the entire table is scanned. An index optimizes data retrieval without performing a lengthy sequential search. The following SQL statement creates a

non-unique index called LNAME from the LASTNAME column on the EMPLOYEE table, sorted in ascending(升序) order:

CREATE INDEX LNAME ON EMPLOYEE (LASTNAME ASC)

The following SQL statement creates a unique index on the phone number column:

CREATE UNIQUE INDEX PH ON EMPLOYEE (PHONENO DESC)

 

参考:http://users.sdsc.edu/~jrowley/db2/howto.html

 

 


索引(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 向导

 

  Create Index 向导 —— 第 3 步

  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 完成索 引 的创建。应该会返回消息 DB2 0000, 这表示向导成功地完成了操作。关闭消息窗口。

  9、在 Control Center Indexes 视图中,选择索 引 名 AUTHORID。看一下这个索 引 的细节。点击 Show Related Objects 查看相关对象的信息,比如这个索 引 的基表 HWLD.AUTHOR 以及驻留这个索 引 的表空间 TBSP_INDEX1。

  图Control Center —— 索 引

  Control Center —— 索引

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值