當前位置:成語大全網 - 新華字典 - sql server 怎麽建立索引

sql server 怎麽建立索引

創建索引:

(1)在SQL Server Management Studio中,選擇並右擊要創建索引的表,從彈出菜單中選擇“設計”,打開表設計器。右鍵單擊表設計器,從彈出菜單中選擇“索引/鍵”命令,打開“索引/鍵”對話框。對話框中列出了已經存在的索引,如下圖所示。

(2)單擊“添加”按鈕。在“選定的主/唯壹鍵或索引”框顯示系統分配給新索引的名稱。

(3)在“列”屬性下選擇要創建索引的列。可以選擇多達16列。為獲得最佳性能,最好只選擇壹列或兩列。對所選的每壹列,可指出索引是按升序還是降序組織列值。

(4)如果要創建唯壹索引,則在“是唯壹的”屬性中選擇“是”。

(5)設置完成後,單擊“確定”按鈕。

(6)當保存表時,索引即創建在數據庫中。

使用CREATE INDEX語句創建索引:

復制內容到剪貼板

代碼:

CREATE[ UNIQUE ] [ CLUSTERED | NONCLUSTERED ] INDEX索引名

ON {表名|視圖名} (列名[ ASC | DESC ] [ ,...n ] )

例:

在數據庫HrSystem中為表Employees創建基於IDCard列的唯壹索引IX_Employees,可以使用以下命令:

復制內容到剪貼板

代碼:

USE HrSystem

GO

CREATE UNIQUE NONCLUSTERED INDEX [IX_Employees]ONdbo.Employees(IdCard)

GO

例:

為表Employees創建基於列IDCard的唯壹、聚集索引IX_Employees1,可以使用以下命令:

復制內容到剪貼板

代碼:

USE HrSystem

GO

CREATE UNIQUE CLUSTERED INDEX [IX_Employees1] ON [dbo].[Employees](IdCard)

GO

需要註意的是,在壹個表中只允許存在壹個聚集索引。因此,如果表Employees中已經存在壹個聚集索引,則執行上面的語句時將會提示下面的錯誤信息。

消息1902,級別16,狀態3,第1行

無法對表'dbo.Employees'創建多個聚集索引。請在創建新聚集索引前刪除現有的聚集索引'PK__Employee__263E2DD300551192'。 例:

對表Employees的列Emp_name按照降序創建索引,可以使用以下命令:

復制內容到剪貼板

代碼:

USE HrSystem

GO

CREATENONCLUSTERED INDEX [IX_Employees2] ON [dbo].[Employees]

(

[Emp_name] DESC

)

GO

在CREATE INDEX語句中使用INCLUDE子句,可以在創建索引時定義包含的非鍵列,其語法結構如下:

復制內容到剪貼板

代碼:

CREATENONCLUSTERED INDEX 索引名

ON { 表名| 視圖名 } ( 列名 [ ASC | DESC ] [ ,...n ] )

INCLUDE (<列名1>, <列名2>, [,… n])

例: 在表Employees上創建非聚集索引IX_Wage,索引中的鍵列為Wage,非鍵列為Emp_name、Sex和Title,具體語句如下:

復制內容到剪貼板

代碼:

USEHrSystem

GO

CREATENONCLUSTERED INDEX IX_Wage

ON Employees ( Wage )

INCLUDE (Emp_name, Sex, Title)

GO

例: 在創建索引IX_Wage後,當表Employees中的數據量比較大時,執行下面的SELECT語句將會明顯地改進查詢效率。

復制內容到剪貼板

代碼:

USEHrSystem

GO

SELECTEmp_name, Sex, Title, Wage

FROMEmployees

WHEREWage BETWEEN 1000 AND 3000

GO