學習如何看懂SQL Server執行計劃(一)——數據查詢篇

一、數據查詢部分

1、 看到執行計劃有兩種方式,對sql語句按Ctrl+L,或按Ctrl+M打開顯示執行計劃窗口每次執行sql都會顯示出相應的執行計劃

2、 執行計劃的圖表是從右向左看的

3、 SQL Server有幾種方式查找數據記錄

[Table Scan] 表掃描(最慢),對錶記錄逐行進行檢查

[Clustered Index Scan] 聚集索引掃描(較慢),按聚集索引對記錄逐行進行檢查

[Index Scan] 索引掃描(普通),根據索引濾出部分數據在進行逐行檢查

[Index Seek] 索引查找(較快),根據索引定位記錄所在位置再取出記錄

[Clustered Index Seek] 聚集索引查找(最快),直接根據聚集索引獲取記錄

(如果有些sql執行很慢可以看一下執行計劃是否包含太多“掃描”操作,如果有可以考慮爲這些字段建立索引,建立索引切記不要再經常有更新操作的字段上建立,每次更新都會導致重建索引的操作,也會影響性能,0或1這種標識狀態的字段因爲大部分數據都是一樣的建立索引也沒有什麼作用

(索引就兩種,1是聚集索引,2個非聚集索引,聚集索引每張表只能有一個,非聚集索引每張表可以有多個,主鍵Id就是典型的聚集索引,聚集索引是順序排列的類似於字典查找拼音a、b、c……和字典文字內容順序是相同的,非聚集索引與內容是非順序排列的,類似字典偏旁查找時,同一個偏旁‘馬’的漢字可能一個在第10頁一個在第100頁)

4、  

⑴沒有主鍵的表查詢[表掃描]

⑵有主鍵的表查詢[聚集索引掃描]

⑶建立非聚集索引的表查詢[索引掃描+書籤查找]

書籤查找:通過非聚集索引找到所求的行,但這個索引並不包含顯示的列,因此還要額外去基本表中找到這些列,所以要進行鍵查找,如果基本表在堆中則Key Lookup會變成RID查找,這兩個查找統稱爲書籤查找。

⑷建立非聚集索引並把其他顯示列加入索引中[索引查找]

⑸建立非聚集索引並把其他顯示列加入索引中並把聚集索引列當作條件[聚集索引查找]

 

轉自https://www.cnblogs.com/taiyonghai/p/5594826.html

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章