天天看點

Sql Server資料庫性能優化之索引

最近在做SQL Server資料庫性能優化,是以複習下一索引、視圖、存儲過程等知識點。本篇為索引篇,知識整理來源于網際網路。

索引加快檢索表中資料的方法,它對資料表中一個或者多個列的值進行結構排序,是資料庫中一個非常有用的對象。

索引的建立

#1使用企業管理器建立

啟動企業管理器--選擇資料庫------選在要建立索引的表------在表的下拉菜單中選擇索引---在快捷菜單中選擇建立索引--

在建立索引對話框中單擊“添加”按鈕,彈出“從清單中選擇列”,在該對話框中選擇要添加到索引鍵的表列

單擊确定傳回建立索引對話框,再點選确定完成索引的建立。

#2使用T-sql語句建立索引。

create index語句為給定表或視圖建立一個改變實體順序的聚集索引,也可以建立一個具有查詢功能的非聚集索引。文法格式如下:

create [unique] [clustered] [nonclustered] index index_name

on {tabel/view} (column[dese/asc][....n])

注: [unique] [clustered] [nonclustered]表示要建立索引的類型,以此為唯一索引,聚集索引,和非聚集索引,當省略unique選項時,建立非唯一索引.當省略clustered,nonclustered選項時.建立聚集索引,省略nonclustered選項時,建立唯一聚集索引。

使用索引雖然可以提高系統的性能,增強資料檢索速度,但它需要占用大量的實體存儲空間,建立索引的一般原則如下:

(1)隻有表的所有者可以在同一表中建立索引。

(2)每個表中隻能建立一個聚集索引。

(3)每個表中最多可以建立249個非聚集索引。

(4)在經常查詢的字段上建立索引。

(5)定義text,image,bit資料類型的列上不要建立索引。

(6)在外間上可以建立索引。

(7)在主鍵列上一定要建立索引。

(8)在那些重複的值比較多,查詢較少的列上不要建立索引。

檢視索引

#1使用企業管理器檢視索引,步驟如下:

(1)啟動SQL Server management Studio并連接配接到SQLServer 2008資料庫

(2)選擇指定的資料庫,|展開要檢視索引的表。

(3)右擊該表,在彈出快捷菜單中選擇‘設計’指令

(4)彈出‘表結構設計’對話框,右擊該對話框,在彈出的快捷菜單中選擇‘索引/鍵’指令

(5)打開“索引/鍵”對話框,在對話框左側選中某個索引,在對話框的右側就可以檢視此索引的資訊,并可以修改相關資訊。

#2使用系統存儲過程檢視索引,文法格式如下:

use database_name

EXEC Sp_helpindex table_name

#3利用系統表檢視索引資訊

檢視資料庫中指定表的索引資訊,可以利用該資料庫中的系統表sysobjects和sysindexes進行查詢,系統表sysobjects可以根據表明查找到索引表的ID号,再利用系統表sysindexes根據ID号查找到索引檔案的相關資訊。

索引的修改

#1使用企業管理器修改索引。

#2使用T-SQL語句更改索引名稱,文法格式如下:

exec sp_rename ‘table_name.old_name’ ‘new_name’

注:要對索引進行重命名時,需要修改的索引名格式必須為“表名.索引名”

索引的删除

#1使用企業管理器删除索引

#2使用T-SQL語句删除索引,文法格式如下:

drop Index table_name.index_name,.....n

注:drop index語句不能删除通過PRINARY KEY和UNIQUE限制建立的索引,若要删除該限制相應的索引,請使用帶有DROP CONSTRAINT子句的ALTER TABLE.

墨匠