`
dsotbs936
  • 浏览: 38038 次
  • 性别: Icon_minigender_1
  • 来自: 浙江
文章分类
社区版块
存档分类
最新评论

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 —— 索引

分享到:
评论

相关推荐

    DB2创建索引和数据库联机备份之间有冲突_一次奇特的锁等待问题案例分析-contracted.doc

    总之,DB2创建索引和数据库联机备份之间的冲突是由于内部的联机备份锁机制导致的。通过理解这个机制,调整备份计划,以及掌握锁等待问题的分析技巧,我们可以有效地避免这种冲突,确保数据库的稳定运行。对于DB2管理...

    使用db2top和db2advis生成索引建议

    在本篇文章中,我们将详细介绍如何使用`db2top`来收集数据库活动快照,并进一步通过`db2advis`工具分析这些快照数据,为优化数据库性能提供宝贵的索引建议。 首先,为了确保`db2top`能够正确运行,我们需要进行必要...

    DB2索引分析器使用简述

    在DB2数据库系统中,索引是优化查询性能的关键因素之一。正确地创建和维护索引可以显著提高数据检索的速度。DB2提供了多种工具来帮助用户管理和优化索引,其中“db2advis”索引分析器是一个非常有用的工具,它能够为...

    DB2索引及其优化(设计,优化,问题分析,解答,举例)

    DB2索引及其优化 DB2索引设计及其优化是...在本文中,我们讨论了DB2索引的概念、创建索引、建立索引注意事项、索引分类和索引优化等方面的知识点,并提供了一些有用的提示和建议,以帮助读者更好地理解和应用DB2索引。

    DB2数据库创建命令说明

    在DB2环境中,首先需要创建一个用户,这里创建的用户名称为`sfoa`。 ```sql useradd sfoa ``` 设置用户密码,这里将用户的密码设为与另一个用户`su-db2inst1`相同的密码。 ```sql userpwd sfoa su-db2inst1 ``` ...

    三种方法教你创建DB2联合数据库

    ### DB2联合数据库创建方法详解 #### 手动创建DB2联合数据库的步骤解析 **DB2联合数据库**(Federated Database)是一种允许不同数据库系统之间共享数据的技术。通过这种方式,用户可以从单一的访问点查询分布在多...

    Quest Central for DB2

    9. **数据库设计与建模**:虽然描述中未明确提及,但一些版本的Quest Central可能包含了数据库设计工具,帮助创建和修改数据库模式,进行ER图设计。 10. **故障排查**:通过诊断工具和日志分析,Quest Central可以...

    DB2中创建一个汉字拼音首字母的SQL函数

    一般对于中文数据的索引,采用词组的首汉字拼音的首字母,在DB2中并没有提供相应的函数可以取得汉字拼音的首字母,我们可以利用数据库针对中文字符集的排序功能创建一个这样的函数。本文分析了这种函数的工作原理,...

    DB2缓冲池和索引调优的方法.doc

    索引的调优包括创建索引、重建索引、删除索引等。索引的调优需要根据实际情况进行调整。 六、结论 DB2 缓冲池和索引的调优是 DB2数据库性能优化的关键。缓冲池和索引的调优需要根据实际情况进行调整。通过缓冲池和...

    DB2官方中文参考手册1

    3. **DB2DevGettingStarted-db2axc1010.pdf** - 这是DB2开发人员的入门指南,讲解如何创建数据库、编写SQL查询、管理数据库对象(如表、索引和视图)以及进行基本的数据库操作。 4. **DB2InstallingConnectPE-db2c1...

    DB2 HELP DB2ir

    6. 创建对象:使用`CREATE TABLE`创建新的表,`CREATE INDEX`创建索引,`CREATE DATABASE`创建新的数据库等。 7. 修改对象:使用`ALTER TABLE`修改表结构,`ALTER INDEX`改变索引属性等。 8. 查看元数据:使用`...

    DB2数据库系统命令与配置参数手册.doc

    本手册主要介绍了DB2数据库系统的命令和配置参数,涵盖了DB2管理服务器、实例、数据库、表、索引、视图、存储过程、触发器、函数等方面的知识点。下面将逐一详细介绍这些知识点。 DB2管理服务器命令 DB2管理服务器...

    命令行登录db2数据库

    在DB2命令行环境下,你可以执行多种操作,如执行SQL语句(例如:`SELECT * FROM table_name`)、管理数据库对象(如创建表、索引等)、查看数据库状态、监控性能等。这些命令通常遵循特定的语法格式,需要根据具体...

    DB2学习中文教程从入门到精通

    在DB2的学习过程中,用户需要掌握如何创建和管理数据库、表、索引等数据对象。同时,学习者还需要理解并运用SQL语言,这是与DB2交互的核心语言。SQL语言用于执行数据查询、更新、插入和删除等操作。 此外,DB2提供...

    db2 730 中文版本教材

    **访问DB2数据**章节,涵盖了构成DB2数据库的对象,如表、视图、索引等,并讨论了创建和管理这些对象的各种因素。同时,介绍了用于创建、访问和操作DB2对象的工具,帮助用户掌握数据库操作的基本技能。 **处理DB2...

    搜索DB2中的XML文档的方法

    值得注意的是,创建索引后,索引本身不会立即包含数据,除非进行了索引更新。索引更新可以通过`db2text update index ix1 for text`命令手动执行,或者配置为自动由后台守护进程处理。索引更新确保文本索引与基表中...

    DB2_中文参考资料(比较全)

    8. **性能调优**:监控和分析DB2性能的工具,如db2top、db2pd等,以及如何通过调整SQL、索引、内存设置和硬件配置来提升性能。 9. **集群与复制**:DB2集群的架构和工作原理,以及数据库复制技术,如Q Replication...

    linux下DB2常用命令

    DB2 是一个 relation database management system(关系数据库管理系统),广泛应用于企业级的数据存储和管理中。在 Linux 环境下,DB2 提供了丰富的命令行工具,用于管理和维护数据库。下面是常用的 DB2 命令。 1....

    db2常用命令大全一看就明白

    `db2 move`命令用于将数据库中的数据导出到外部文件中,可以是整个数据库也可以是特定的表。这对于数据迁移非常有用。 #### 十一、其他常用命令 1. **重置连接**: ```sql db2 connect reset db2 terminate ```...

Global site tag (gtag.js) - Google Analytics