SQL Server 2008 建立非聚集索引
可以對錶或索引檢視建立多個非聚集索引。通常,建立非聚集索引是為了提高聚集索引未包含的常用查詢的效能。
典型實現
可以通過下列方法實現非聚集索引:
PRIMARY KEY 和 UNIQUE 約束
在建立 PRIMARY KEY 約束時,如果不存在該表的聚集索引且未指定唯一非聚集索引,則將自動對一列或多列建立唯一聚集索引。主鍵列不允許空值。
在建立 UNIQUE 約束時,預設情況下將建立唯一非聚集索引,以便強制 UNIQUE 約束。如果不存在該表的聚集索引,則可以指定唯一聚集索引。有關詳細資訊,請參閱 PRIMARY KEY 約束和 UNIQUE 約束。
獨立於約束的索引
預設情況下,如果未指定聚集,將建立非聚集索引。每個表可以建立的非聚集索引最多為 249 個,其中包括 PRIMARY KEY 或 UNIQUE 約束建立的任何索引,但不包括 XML 索引。
索引檢視的非聚集索引
對檢視建立唯一的聚集索引後,便可以建立非聚集索引。有關詳細資訊,請參閱建立索引檢視。
具有包含列的索引
當建立非聚集索引以包含某個查詢時,可以在索引定義中包含非鍵列,以包含查詢中未用作主搜尋列的那些列。這樣可以提高效能,因為查詢優化器可以在索引中找到需要的所有列資料,而不用訪問表或聚集索引。有關詳細資訊,請參閱具有包含列的索引。
具有篩選謂詞的索引
篩選索引是一種經過優化的非聚集索引,尤其適用於涵蓋從定義完善的資料子集中選擇資料的查詢。篩選索引使用篩選謂詞對錶中的部分行進行索引。與全表索引相比,設計良好的篩選索引可以提高查詢效能、減少索引維護開銷並可降低索引儲存開銷。
有關詳細資訊,請參閱篩選索引設計準則。
磁碟空間要求
有關非聚集索引的磁碟空間要求的資訊,請參閱確定索引的磁碟空間要求。
效能注意事項
儘管在索引中包含查詢使用的所有列這一點很重要,但要避免新增不必要的列。新增太多的索引列(鍵列或非鍵列)可能會導致下列效能後果:
一頁上容納的索引行減少,導致磁碟 I/O 增加,而緩衝效率降低。
需要更多的磁碟空間來儲存索引。
索引維護可能增加對基礎表或索引檢視執行修改、插入、更新、刪除或合併等操作所需的時間。
您應確定查詢效能的提高是否超過修改資料時對效能的影響,以及是否產生了額外的磁碟空間要求。有關評估查詢效能的詳細資訊,請參閱查詢優化。
當表資料具有定義完善的行子集的列(如稀疏列、大部分值為 NULL 的列、具有各種類別的值的列以及具有截然不同的值範圍的列)時,可考慮使用篩選索引以提高效能。有關詳細資訊,請參閱篩選索引設計準則。
在建立表時建立 PRIMARY KEY 或 UNIQUE 約束
CREATE TABLE (Transact-SQL)
對現有表建立 PRIMARY KEY 或 UNIQUE 約束
ALTER TABLE (Transact-SQL)
建立索引
CREATE INDEX (Transact-SQL)
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/16436858/viewspace-515890/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- SQL Server索引 - 非聚集索引SQLServer索引
- SQL Server 2008 非聚集索引設計SQLServer索引
- SQL Server 聚集索引和非聚集索引的區別SQLServer索引
- [zt] 聚集索引和非聚集索引(sql server索引結構及其使用)索引SQLServer
- SQL Server 深入解析索引儲存(非聚集索引)SQLServer索引
- SQL Server 索引和表體系結構(非聚集索引)SQLServer索引
- SQL Server 深入解析索引儲存(聚集索引)SQLServer索引
- [轉]聚集索引和非聚集索引的區別索引
- 使用聚集索引和非聚集索引的區別索引
- SQL Server 索引和表體系結構(聚集索引)SQLServer索引
- mysql關於聚集索引、非聚集索引的總結MySql索引
- Sql Server之旅——第四站 你必須知道的非聚集索引掃描SQLServer索引
- 【SQL Server2005頁面儲存5之--非聚集索引行在非葉級別儲存】SQLServer索引
- SQLSERVER的非聚集索引結構SQLServer索引
- 建立索引——提高SQL Server效能索引SQLServer
- 一文總結分析聚集索引、非聚集索引、覆蓋索引的工作原理!索引
- 從InnoDB 索引執行簡述 聚集索引和非聚集索引、覆蓋索引、回表、索引下推索引
- 資料庫的聚集索引和非聚集索引 很好的詳細說明資料庫索引
- 從效能的角度談SQL Server聚集索引鍵的選擇SQLServer索引
- SQL Server調優實戰 亂建聚集索引的後果SQLServer索引
- 【SQL Server2005頁面儲存4之--非聚集索引行在葉級別儲存】SQLServer索引
- 探究SQL新增非聚集索引,效能提高几十倍之謎SQL索引
- SQL Server 2008配置並行索引操作SQLServer並行索引
- 非域環境下SQL Server mirror建立SQLServer
- Sql Server之旅——第三站 解惑那些背了多年聚集索引的人SQLServer索引
- 關於SQL Server 2008的缺失索引功能SQLServer索引
- 建立SQL Server 2008的效能基線SQLServer
- 建立SQL Server 2008的工作負荷SQLServer
- 建立SQL Server 2008的計劃指南SQLServer
- SQL Server 2008登入名的建立SQLServer
- SQL Server 2008篩選索引設計準則SQLServer索引
- SQL Server 2008 空間資料庫 --- 空間索引概念及建立(取自幫助)SQLServer資料庫索引
- SQL SERVER建立索引需要注意的問題SQLServer索引
- SQL Server2008建立約束圖解SQLServer圖解
- SQL Server 2008證書和非對稱金鑰SQLServer
- 理解SQL Server 2008索引的儲存結構YDSQLServer索引
- SQL Server 2008為索引操作選擇恢復模式SQLServer索引模式
- SQL Server 2008 建立事務日誌備份SQLServer