1. 程式人生 > >執行計劃 - SQL SRVER

執行計劃 - SQL SRVER

一、資料查詢部分

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查詢,這兩個查詢統稱為書籤查詢。

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

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

原地址