程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> DB2數據庫 >> DB2教程 >> 索引

索引

編輯:DB2教程

索引


SQL索引有兩種,聚集索引和非聚集索引,索引主要目的是提高了SQL Server系統的性能,加快數據的查詢速度與減少系統的響應時間

聚集索引的物理存儲是連續的,非聚集索引的物理存儲不是連續的,但邏輯結構是連續的

什麼情況下設置索引

動作描述

使用聚集索引

使用非聚集索引

外鍵列

主鍵列

列經常被分組排序(order by)

返回某范圍內的數據

不應

小數目的不同值

不應

大數目的不同值

不應

頻繁更新的列

不應

頻繁修改索引列

不應

一個或極少不同值

不應

不應

 

建立索引的原則:

1) 定義主鍵的數據列一定要建立索引。

2) 定義有外鍵的數據列一定要建立索引。

3) 對於經常查詢的數據列最好建立索引。

4) 對於需要在指定范圍內的快速或頻繁查詢的數據列;

5) 經常用在WHERE子句中的數據列。

6) 經常出現在關鍵字order by、group by、distinct後面的字段,建立索引。如果建立的是復合索引,索引的字段順序要和這些關鍵字後面的字段順序一致,否則索引不會被使用。

7) 對於那些查詢中很少涉及的列,重復值比較多的列不要建立索引。

8) 對於定義為text、image和bit的數據類型的列不要建立索引。

9) 對於經常存取的列避免建立索引

9) 限制表上的索引數目。對一個存在大量更新操作的表,所建索引的數目一般不要超過3個,最多不要超過5個。索引雖說提高了訪問速度,但太多索引會影響數據的更新操作。

10) 對復合索引,按照字段在查詢條件中出現的頻度建立索引。在復合索引中,記錄首先按照第一個字段排序。對於在第一個字段上取值相同的記錄,系統再按照第二個字段的取值排序,以此類推。因此只有復合索引的第一個字段出現在查詢條件中,該索引才可能被使用,因此將應用頻度高的字段,放置在復合索引的前面,會使系統最大可能地使用此索引,發揮索引的作用。

語法:

 

創建索引的語法:

CREATE [UNIQUE][CLUSTERED | NONCLUSTERED] INDEX index_name

ON {table_name | view_name} [WITH [index_property [,....n]]

說明:

UNIQUE: 建立唯一索引。

CLUSTERED: 建立聚集索引。

NONCLUSTERED: 建立非聚集索引。

Index_property: 索引屬性。

UNIQUE索引既可以采用聚集索引結構,也可以采用非聚集索引的結構,如果不指明采用的索引結構,則SQL Server系統默認為采用非聚集索引結構。

刪除索引語法:

DROP INDEX table_name.index_name[,table_name.index_name]

說明:table_name: 索引所在的表名稱。

index_name : 要刪除的索引名稱。

顯示索引信息:

使用系統存儲過程:sp_helpindex 查看指定表的索引信息。

執行代碼如下:

Exec sp_helpindex book1;

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved