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

Sql Server 覆蓋索引

編輯:關於SqlServer

覆蓋索引通常都是復合索引,即索引字段為多個。創建索引時應該注意索引排列順序。

Sql Server檢索應用索引時,字段識別順序為 從左到右。

例如如下索引的使用上

Create NONCLUSTERED  Index IX_Student_Name_Class_Sex

On tb_Student(Name,Class,Sex)

 

Select * From tb_Student as s where s.Name='ws'  //可以使用

 

Select * From tb_Student as s where s.Name='ws'  and s.Class=1   //可以使用

 

Select * From tb_Student as s where s.Name='ws'  and s.Class=1 and s.Sex=1  //可以使用

 

Select * From tb_Student as s where s.Class=1 and s.Sex=1   //不能使用所創建的索引

 

所以說在我們創建和使用索引的時候,要注意字段的排序順序。

創建索引時,盡量使用不更新的字段,以避免更新時帶來的非聚集索引維護成本。在編寫更新語句時,盡量避免更新索引字段,

應當判斷是否需要更新字段,做法就是加一個判斷,這樣避免相同的數據,還做更新,造成沒必要的數據覆蓋帶來的索引維護成本。

 

如果說索引字段一定要頻繁更新的話,那麼可采用讀寫分離。索引照常在查詢庫中建立,而更新在寫庫中操作,避免了插入數據維護索引造成太多的等待和死鎖。

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