SQL Server 2012 索引

1.索引介紹

    索引是一種重要的數據庫對象,它可以和基本表或者視圖建立關聯。當表的數據量比較大時,查詢操作會比較耗時。建立索引是加快查詢速度的有效手段。數據庫索引類似於圖書後面的索引,能快速定位到需要查詢的內容。用戶可以根據應用環境的需要,在基本表上建立一個或多個索引,以提供多種存取路徑,加快查找速度。
在SQL Server 2012中,索引主要有聚集索引和非聚集索引兩種。
1. 聚集索引
    聚集索引定義中包含聚集索引列。聚集索引根據數據行的鍵值在表或視圖中排序來存儲這些數據行。因此數據表的物理存儲順序和索引是一致的。每個表有且只能有一個聚集索引,因爲數據行本身只能按一個順序進行排序。
2. 非聚集索引
    非聚集索引具有獨立於數據行的結構。非聚集索引包含非聚集索引鍵值,並且每個鍵值項都有指向包含該鍵值的數據行指針。從非聚集索引中的索引行指向數據行的指針稱爲行定位器,行定位器的結構取決於數據頁是存儲在堆中還是聚集表中,對於堆,行定位器是指向行的指針,對於聚集表,行定位器是聚集索引鍵。



2.創建索引

①創建非聚集索引
使用SSMS工具
  1. 在數據庫中,打開需要創建索引的數據表,右擊“索引”,選擇新建索引。
    在這裏插入圖片描述
  2. 選擇“非聚集索引”,進入“新建索引”對話框
    在這裏插入圖片描述
  3. 在“索引名稱”中輸入需要新建的索引名
    在這裏插入圖片描述
  4. 在“索引鍵列”中單擊“添加”按鈕,彈出選擇列窗口,選擇需要設爲索引的屬性列,點擊確定返回
    在這裏插入圖片描述
  5. 點擊確定,在“索引”中可以看到索引創建成功。
    在這裏插入圖片描述
使用SQL方式

語法格式:

CREATE [NONCLUSTERED] INDEX <索引名>
ON <視圖或數據表>(屬性列)

使用示例:爲student表中的StuName屬性建立非聚集索引

create nonclustered index IX_student_StuName
on student(StuName)

②創建聚集索引
使用SSMS工具
  1. 在數據庫中,打開需要創建索引的數據表,右擊“索引”,選擇新建索引。
    在這裏插入圖片描述
  2. 選擇“聚集索引”,進入“新建索引”對話框
    在這裏插入圖片描述
  3. 在“索引名稱”中輸入需要新建的索引名
    在這裏插入圖片描述
  4. 在“索引鍵列”中單擊“添加”按鈕,彈出選擇列窗口,選擇需要設爲索引的屬性列,點擊確定返回
    在這裏插入圖片描述
  5. 點擊確定,在“索引”中可以看到索引創建成功。
    在這裏插入圖片描述
使用SQL方式

語法格式:

CREATE CLUSTERED INDEX <索引名>
ON <視圖或數據表>(屬性列)

使用示例:爲student表中的StuID屬性建立聚集索引

create clustered index IX_student_StuID
on student(StuID)



3.索引啓用與禁用

禁用索引可以防止用戶訪問索引,對於非聚集索引,則可以防止用戶訪問基本表數據。索引被禁用後會一直保持禁用狀態,直到它被重新生成或被刪除。

禁用索引
使用SSMS工具
  1. 右擊需要禁用的索引名,選擇禁用
    在這裏插入圖片描述
  2. 彈出“禁用索引”對話框,點擊確定,即可禁用索引。右擊索引,選擇屬性,可以看到索引已被禁用
    在這裏插入圖片描述
使用SQL方式

語法格式:

ALTER INDEX <索引名> 
ON <數據表或視圖> DISABLE

使用示例:禁用IX_student_StuName索引

alter index IX_student_StuName
on student disable

啓用索引
使用SSMS工具
  1. 右擊需要啓用的索引名,選擇“重新生成”
    在這裏插入圖片描述
  2. 彈出“重新生成索引”對話框,點擊確定
    在這裏插入圖片描述
  3. 右擊索引,選擇“屬性”,可以看到索引處於就緒狀態。
    在這裏插入圖片描述
使用SQL方式

語法格式:

ALTER INDEX <索引名> 
ON <數據表或視圖> REBUILD

使用示例:禁用IX_student_StuName索引

alter index IX_student_StuName
on student rebuild



4.查看索引

語法格式:

--查看數據表或視圖中的索引
SP_HELPINDEX <數據表或視圖>

使用示例:查看student表中的索引

use schoolDB
go
sp_helpindex student

在這裏插入圖片描述


5.刪除索引

使用SSMS工具
  1. 選擇需要刪除的索引,右擊,選擇刪除
    在這裏插入圖片描述
  2. 彈出刪除對象對話框,點擊確定,即可完成索引刪除
    在這裏插入圖片描述
使用SQL方式

語法格式:

DROP INDEX <索引名> ON <數據表或視圖>

使用示例:刪除student表中的IX_student_StuName索引

drop index IX_student_StuName
on student



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章