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

發佈了27 篇原創文章 · 獲贊 6 · 訪問量 2888
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章