select * from sys.dm_db_missing_index_details
index_handle
int標識特定的缺失索引。 該識別符號在伺服器中是唯一的。 index_handle是此表的鍵。
database_id
smallint
標識帶有缺失索引的表所駐留的資料庫。
object_id
int標識索引缺失的表。
equality_columns
nvarchar(4000)
構成相等謂詞的列的逗號分隔列表,謂詞的形式如下:
table.column =constant_value
inequality_columns
nvarchar(4000)
構成不等謂詞的列的逗號分隔列表,例如以下形式的謂詞:
table.column > constant_value
「=」之外的任何比較運算子都表示不相等。
included_columns
nvarchar(4000)
用於查詢的涵蓋列的逗號分隔列表。 有關涵蓋的詳細資訊或包含的列,請參閱建立帶有包含列的索引。
對於記憶體優化的索引 (包括雜湊和記憶體優化非聚集),忽略included_columns。 每個記憶體優化索引中均包含表的所有列。
statement
nvarchar(4000)
索引缺失的表的名稱。
注:include:
非鍵列即包含列 只存在非聚集索引中。
包含列的優點
1)他們可以是不允許作為索引鍵列的資料型別。
2)在計算索引鍵列數或索引鍵大小時, 資料庫引擎 不考慮它們。
重點:如果根據以上缺失索引從新建立新的索引(注:並不是所有缺失索引都需要建立索引,根據實際情況來建立,畢竟建立索引是以消耗空間換時間!!!)
建立語句: create [unique|clustered|nonclustered] index index_name on table_name(property_name) include(include_name)
ps:
index_name:索引名稱
table_name:表名稱
property_name:索引列 即上述**中的equality_columns,inequality_columns
include_name:包含列included_columns
此處附上自己的理解:
1)針對於查詢的字段 一般需要放到include 包含字段裡面;
2)對於關聯關係的字段(inner join、left等) 一般可以放到include(非鍵列、包含列) 或者索引欄位中,但是放到include(非鍵列、包含列) 裡面 對於消耗較低;
3)對於where 條件的字段或者group by、order by 的資料一般 作為索引字段;
具體索引基礎可參考:sql索引
dbcc showcontig(a)
dbcc showcontig 正在掃瞄 'a' 表...
表: 'a' (143272632);索引 id: 1,資料庫 id: 9
已執行 table 級別的掃瞄。
- 掃瞄頁數................................: 621
- 掃瞄區數..............................: 78
- 區切換次數..............................: 77
- 每個區的平均頁數........................: 8.0
- 掃瞄密度 [最佳計數:實際計數].......: 100.00% [78:78]
- 邏輯掃瞄碎片 ..................: 0.00%掃瞄頁數
表或索引的頁數。
掃瞄擴充套件盤區數
表或索引中的擴充套件盤區數。
擴充套件盤區開關數
遍歷索引或表的頁時,dbcc 語句從乙個擴充套件盤區移動到其它擴充套件盤區的次數。
平均擴充套件盤區上的平均頁數
頁鏈中每個擴充套件盤區的頁數。
掃瞄密度
[最佳值:實際值]
最佳值是指在一切都連續地鏈結的情況下,擴充套件盤區更改的理想數目。實際值是指擴充套件盤區更改的實際次數。如果一切都連續,則掃瞄密度數為 100;如果小於 100,則存在碎片。掃瞄密度為百分比值。
邏輯掃瞄碎片
擴充套件盤區掃瞄碎片
平均每頁上的平均可用位元組數
所掃瞄的頁上的平均可用位元組數。數字越大,頁的填滿程度越低。數字越小越好。該數還受行大小影響:行大小越大,數字就越大。
平均頁密度(完整)
平均頁密度(為百分比)。該值考慮行大小,所以它是頁的填滿程度的更準確表示。百分比越大越好。
mysql 建立索引 刪除索引 檢視索引sql語句
在執行create table語句時可以建立索引,也可以單獨用create index或alter table來為表增加索引。alter table用來建立普通索引 unique索引或primary key索引。alter table table name add index index name ...
mysql 檢視sql是否使用索引
explain執行結果關注以下幾個字段 table 這一列是查詢設計的表。type 很重要的一列,顯示了查詢使用了那種型別,是否使用的索引,能反映出語句的質量。一般這個指標從好到壞依次是 system const eq ref ref 最好達到 fulltext ref or null index ...
SQL 索引 建立索引
create index 語句用於在表中建立索引。在不讀取整個表的情況下,索引使資料庫應用程式可以更快地查詢資料。您可以在表中建立索引,以便更加快速高效地查詢資料。使用者無法看到索引,它們只能被用來加速搜尋 查詢。注釋 更新乙個包含索引的表需要比更新乙個沒有索引的表更多的時間,這是由於索引本身也需要...