1. 程式人生 > >SQL SERVER 索引(2)——設計原則

SQL SERVER 索引(2)——設計原則

       索引有助於我們提高系統的效能,提升查詢效率,但是如果索引設計的不夠合理,可能會適得其反,讓我們的系統更加緩慢,查詢效率下降,所以本次介紹一下索引的設計原則。

       資料表的選擇:

       什麼樣的表適合建立索引呢,注意如果表很小資料不多,那麼索引慎用,因為查詢優化器在遍歷用於搜尋資料的索引時,花費的時間可能比執行簡單的表掃描還長。 因此,小表的索引可能從來不用,但仍必須在表中的資料更改時進行維護。

       操作對於索引的影響:

       索引會影響 INSERT、UPDATE、DELETE 和 MERGE 語句的效能,因為當表中的資料更改時,所有索引都須進行適當的調整,所以在新建索引時應該儘量避免會做大量資料更新操作的列,而要選擇時常需要查詢的列來作為索引列,或者是兩個表的關聯欄位和查詢條件欄位等作為索引列。

       欄位長度的選擇:

       索引列要選擇較短的列,不能將 ntext、text、image、varchar(max)、nvarchar(max) 和 varbinary(max) 資料型別的列指定為索引鍵列。

       聚集索引和非聚集索引的適用場景:

動作描述

使用聚集索引

使用非聚集索引

列經常被分組排序

返回某範圍內的資料

不應

一個或極少不同值

不應

不應

小數目的不同值

不應

大數目的不同值

不應

頻繁更新的列

不應

外來鍵列

主鍵列

頻繁修改索引列

不應

       以上是索引設計的一些知識點,歡迎指正。