Sql Server系列:索引基礎

來源:互聯網
上載者:User

標籤:style   blog   http   io   ar   使用   sp   strong   檔案   

1. 索引概念

  索引用於快速尋找在某個列中某個特定值的行,不使用索引,資料庫必須從第1條記錄開始讀完整個表,知道找出需要的行。表越大,查詢資料所花費的時間越多。如果表中查詢的列有索引,資料庫能快速到達一個位置去尋找資料,而不必遍曆所有資料。

  索引是一個單獨的、儲存在磁碟上的資料庫結構,包含對資料表裡所有記錄的引用指標。使用索引用於快速找出一個或多個列中有特定值的行,對相關列使用索引是降低查詢操作時間的最佳途徑。索引包含由表或試圖中的一列或多列產生的鍵。

  索引的優點:

  ◊ 通過建立唯一索引,可以保證資料庫表中每一行資料的唯一性。

  ◊ 可以大大加快資料的查詢速度,這也是建立索引的最主要的原因。

  ◊ 實現資料的參照完整性,可以加速表和表之間的串連。

  ◊ 在使用分組和排序子句進行資料查詢時,可以顯著減少查詢中分組和排序的時間。

  索引的缺點:

  ◊ 建立索引和維護索引需要耗費時間,並且隨著資料量的增加所消耗的時間會增加。

  ◊ 索引需要佔用磁碟空間,除了資料表占資料空間之外,每一個索引還要佔用一定的物理空間。如果有大量的索引,索引檔案可能比資料檔案更快達到最大檔案大小。

  ◊ 當對錶中的資料進行添加、修改和刪除的時候,索引需要動態維護,這樣降低了資料的維護速度。

2. 索引的分類

  SQL Server中索引有兩種:叢集索引和非叢集索引。它們的區別是在物理資料的儲存方式上。

2.1> 叢集索引

  叢集索引基於資料行的索引值,在表內排序和儲存這些資料行。每個表只能有一個叢集索引,因為資料行本身只能按一個順序儲存。

  建立叢集索引時需要考慮的幾個因素:

  ◊ 每個表只能有一個叢集索引

  ◊ 表中的物理順序和索引中行的物理順序是相同的,建立任何非叢集索引之前要首先建立叢集索引,這是因為叢集索引改變了表中行的物理順序。

  ◊ 關索引值的唯一性使用UNIQUE關鍵字或者由內部的唯一識別碼明確維護。

  ◊ 在索引的建立過程中,SQL Server臨時使用當前資料庫的磁碟空間,所以要保證有足夠的空間建立叢集索引。

2.2> 非叢集索引

  非叢集索引具有完全獨立於資料行的結構,使用非叢集索引不用將物理資料頁的資料按列排序。非叢集索引包含索引索引值和指向表資料存放區位置的行定位器。

  可以對錶或索引檢視表建立多個非叢集索引。設計非叢集索引是為了改善經常使用的、沒有建立叢集索引的查詢的效能。

  查詢最佳化工具在尋找資料值時,先尋找非叢集索引以找到資料值在表中的位置,然後直接從該位置檢索資料。這使得非叢集索引成為完全符合查詢的最佳選擇,因為索引中包含所尋找的資料值在表中的精確位置的項。

  考慮使用非叢集索引的查詢情況:

  ◊ 使用JOIN或GROUP BY子句。應為串連和分組操作中所涉及的列建立多個非叢集索引,為任何外鍵列建立叢集索引。

  ◊ 包含大量唯一值的欄位。

  ◊ 不返回大型結果集的查詢。建立篩選索引以覆蓋從大型表中返回定義完善的行子集的查詢。

  ◊ 經常包含在查詢的搜尋條件中的列。

3. 建立索引

  SQL Server中建立索引的兩中方法:在SQL Server Management Studio的物件總管中,通過圖形化工具建立或使用T-SQL語句建立。

3.1> 使用SQL Server Management Studio物件總管建立

  ◊ 在【物件總管】中,展開【資料庫】找到需要建立索引的資料表節點,展開該節點下的子節點,右擊【索引】節點,在彈出的捷徑功能表中選擇【建立索引】->【非叢集索引】。

  ◊ 在開啟的【建立索引】介面選擇需要建立索引的列,進而建立索引。

 

Sql Server系列:索引基礎

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.