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

2022-08-18 20:57:10 字數 1569 閱讀 8598

資料查詢部分

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

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

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

如何看懂mysql explain

mysql的檢視執行計畫的語句很簡單,explain 你要執行的sql語句就ok了。舉乙個例子 explain select from employees where employees.gender m 返回的結果如下 這些結果都代表什麼?id是一組數字,表示查詢中執行select子句或操作表的順...

如何看懂man手冊

這篇文章不直接說明某個命令的用法,只是告訴一些需要的人怎麼讀懂man手冊中提供的命令格式,如果你想知道某個命令的作用和使用例項,請ctrl w。標題含義 name 命令的名稱和用途 摘要 synopsis 命令語法 摘要 description 完整描述 environment 命令使用的環境變數 ...

如何看懂man手冊

這篇文章不直接說明某個命令的用法,只是告訴一些需要的人怎麼讀懂man手冊中提供的命令格式,如果你想知道某個命令的作用和使用例項,請ctrl w。標題含義 name 命令的名稱和用途 摘要 synopsis 命令語法 摘要 description 完整描述 environment 命令使用的環境變數 ...