學習如何看懂SQL Server執行計劃

數據查詢部分sql

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

二、 執行計劃的圖表是從右向左看的3d

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

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

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

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

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

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

(若是有些sql執行很慢能夠看一下執行計劃是否包含太多「掃描」操做,若是有能夠考慮爲這些字段創建索引,創建索引切記不要再常常有更新操做的字段上創建,每次更新都會致使重建索引的操做,也會影響性能,0或1這種標識狀態的字段由於大部分數據都是同樣的創建索引也沒有什麼做用)圖表

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

四、  

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

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

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

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

⑷創建非彙集索引並把其餘顯示列加入索引中[索引查找]

⑸創建非彙集索引並把其餘顯示列加入索引中並把彙集索引列看成條件[彙集索引查找]

相關文章
相關標籤/搜索