索引

       索引就是一種與實際資料分頁分開存放的結構,其內容包含許多指向分頁,或是資料列的指標。

       聚集索引:資料記錄實際存放順序與聚集索引順序完本相同。每個資料表只能夠擁有一個聚集索引。

       非聚集索引:是一種分散式的索引架構,與資料表中資料列實際排列順序無關,一個資料表最多可以建立249個非聚集索引。

       索引使用准則:只要有搜尋引數據(SARG)或連結(JOIN)陳述式,沒有使用索引的第一個橍位,來作為指令陳述式的一部分,那麼就不使用索引,來進行更有效率的書籤查閱,在記定建立復合索引之橍位的優先順序時,必須緊記點!

       選擇索引:1.用SQL Server Profiler追溯有問題的查詢。2在執行查詢時建立索引,查詢結束後刪除索引。

    索引主要用途:1.確保資料庫資料表資料唯一性的方法。2.提供快速存取資料表資料的能力。

    評估索引的適合性

    索引的辯識度:辯識度比率,唯一索引值的數目,資料表中資料列的數目

    最理想的辯識度是1,代表著每筆資料列都有一個唯一的值。.

    准則:如果一個非聚集索引的辯識度低於0.85,也就是說當查詢最佳化工具,無法以鍵值來舍棄最少85%左右的資料列時,那麼查詢最佳化工具通常選擇不使用非聚集索引,直接以資料表掃瞄來執行查詢指令。

      索引統計資訊

  檢視索引所儲存的統計資訊,請執行DBCC show_statistics(資料表,索引)

  All density 低密度表示高辯識度,索引密度復蓋的範圍小。

  索引密度

  用來表示索引鍵之所有唯一鍵值的倒數據結果

  索引鍵密度=1.00/資料表中唯一鍵值的數據數目

      索引設准則

  請將復合索引最左邊的欄位,調整為最具辯識度的欄位。

  記得於連結子句中,使用索引鍵值欄。

  針對最關鍵的查詢與交易修改索引,而不應該替任何可能會存取資料的查詢都建立索引

  避免替辯識度低的欄位建立索引。

  小心地選擇聚集與非聚集索引

  聚集索引考量適用欄位准則

  經常搜索擁有大量重復值的欄位

  經常於ORDER BY子句中使用的欄位

  經常用來執行範圍查詢的欄位

  除了PRIMARY KEY之外,經常於連結子句中使用的欄位

  非聚集索引考量適用欄位准則

  在SARG或連結子句中使用,並且相對於其它欄位來說,擁有較高辯識度的欄位

  在WHERE或ORDER BY子句中同時使用的欄位