使用查詢分析器調整SQL伺服器指令碼

2021-04-02 20:40:34 字數 1795 閱讀 5865

喜歡把sql伺服器所**的工具看作是倒金字塔型的,診斷和檢查一般問題的工具在頂端,尋找和診斷問題具體區域的工具在底部。除了提供一種編寫sql指令碼的便捷方式之外,在你需要解決特定sql指令碼裡明確問題的時候,查詢分析器(query analyzer)還是所需要使用的資源。如果你需要指出哪個查詢正在保持著某個特定**的鎖定狀態,你也會希望使用查詢分析器。

查詢分析器的關鍵診斷特性是它能夠顯示某個查詢的執行計畫。這個執行計畫會向你提供各種型別的有用資訊,例如在查詢的執行期間如何以及何時使用或者不使用索引。它還會提供許多其他的細節,例如排序、平行(paralleli**)、巢狀迴圈,以及sql伺服器在執行指定查詢時必須做的其他事情。

計畫的好處

有了查詢分析器,你就可以檢視預計計畫而不需要執行查詢本身,或者在查詢執行之後檢視真實的計畫。很顯然,真實的計畫會更加準確,因為它是從物理上對資料庫執行查詢的。但是對於系統負載巨大和/或長期的查詢,這種方法可能就不是最好的選擇了。在典型情況下,當我認為某個特定的查詢有問題的時候,或者如果我預計有乙個查詢會在應用程式裡被足夠頻繁地呼叫以至於可能會導致效能問題的時候,我就會執行這個工具。

你可以通過把sql表示式輸入查詢分析器再按[ctrl]l來檢視預計的執行計畫。執行計畫然後就會顯示在結果(results)面板的選項卡裡。執行計畫在剛開始的時候可能比較難讀,因為它不像英語一樣是從左往右讀的,而是從右往左讀的。

執行中的計畫

這裡有乙個你可以跟著做的例子,從這個例子裡你可以看到如何使用查詢分析器來檢視乙個執行計畫。考慮一下下面查詢,它會從northwind資料庫裡返回某個雇員所在的地點和相關地區:

select

territorydescription, regiondescription

from

employees e

join employeeterritories et on e.employeeid = et.employeeid

join territories t on et.territoryid = t.territoryid

join region r on t.regionid = r.regionid

where

e.employeeid = 1

order by

territorydescription, regiondescription

這個查詢的結果顯示:一號employeeid在東部(eastern)有兩個地區,如a所示。

圖a

查詢結果

圖b顯示了sql伺服器從示例查詢所生成的預計執行。這個圖示中的每個節點都代表著sql服務期執行示例查詢所採取的步驟。要注意,每個節點包括乙個預計的相對消耗,以及執行計畫被顯示的時候sql伺服器所使用的每個索引的名稱。

圖b

執行計畫

你可以把滑鼠放在執行計畫的每個節點上以獲取更多關於該步驟的資訊,例如該節點所代表的操作型別、受影響的行數,以及和該步相關的消耗的分解。c顯示的是圖b裡針對第乙個節點的額外資訊。這些彈出視窗裡的資訊能夠提示你可以對查詢做出哪些改進,如果能夠改進的話。

圖c

和索引調節嚮導一起使用

你可以將查詢分析器和sql伺服器的索引調節嚮導(server』s index tuning wizard,itw)一起使用。我通常使用sql伺服器的profiler來收集要送入itw的資料。但是有時候,我會使用查詢分析器,如果我認為它代表著我正在進行測試時的某種活動型別的話。你可以從查詢(query)選單來訪問itw;它能夠對在活動編輯面板裡的sql指令碼做出效能建議。

使用SQL查詢分析器操作Access資料庫

因為這幾天碰到乙個access資料庫操作的問題,沒有辦法正常異動資料,又不知道那裡錯了!所以找到下面的結果。use master exec sp addlinkedserver server m5002 srvproduct provider microsoft.jet.oledb.4.0 data...

Access查詢分析器

前一段時間在用asp.net和access資料庫做乙個 時,經常需要驗證一些複雜的sql語句的和期望的結果一樣。但是access資料庫又沒有像sql server和oracle等資料庫執行sql語句的查詢分析器,每次執行sql時都要瀏覽器開啟網頁檢視結果,很不方便。於是我就做了個可以執行sql語句並...

10 查詢分析器

1.簡介 explain命令可以檢視sql語句的執行計畫。當explain與sql語句一起使用時,mysql將顯示執行計畫的相關資訊。也就是說,mysql解釋了它將如何處理語句 如何聯接表以及以何種順序聯接表的資訊。2.功能 查詢分析器提供包括分析表讀取順序 資料讀取的操作型別 索引實際使用情況 表...