Atitit 查詢最佳化工具的流程attilax總結

來源:互聯網
上載者:User

標籤:統計   特定   部分   mil   條件   避免   end   cat   並行運算   

 

 

 

Atitit 查詢最佳化工具的流程attilax總結

 

1.1. 來理解該過程:1

1.2. 關於這些最佳化器的最重要原則的就是:儘可能的減少掃描範圍,2

1.3. 、篩選條件分析2

1.4. 二、索引最佳化2

 

1.1. 來理解該過程:

 

這個圖看上去有點複雜,我們來詳細分析下,其實就是將這個最佳化階段分為3個子階段

<1>這個階段僅考慮串列計劃,也就說單一處理器運行,如果這個階段找到了一個好的串列計劃,最佳化器就不會進入下一階段。所以對於資料量少的情況,或者執行語句簡單的情況下,基本採用的都是串列計劃。

當然,如果這個階段開銷比較大,那麼會進入到第2個階段,再進行最佳化。

<2>這個階段首先對第1階段的串列計划進行最佳化,然後如果環境支援並行化操作,則進行並行化操作,通過進行比較,然後進行最佳化後的成本如果比較低則輸出執行計畫,如果成本還是比較高,則進入第2階段,再繼續最佳化。

<3>其實到達這個階段就是最佳化的最後一個階段了,這個階段會對第2個階段中採用串列和並行的比較結果進行最後一步最佳化,如果串列執行好那就進一步最佳化,當然如果並存執行好的話,則再繼續並行最佳化。

其實第3階段是查詢最佳化工具的無奈之舉,當到達第3階段了就是一個補救階段,只能最後做最佳化了,最佳化完好不好的就只能按照這個執行計畫執行了。

那麼上述過程中,各個階段的最佳化的原則有哪些:

1.2. 關於這些最佳化器的最重要原則的就是:儘可能的減少掃描範圍,

不管是表或者索引,當然走索引比表好,索引的量也是越少越好,最理想的情況是只有一條或者幾條。 

所以,SQL Server也尊重上述原則,一直圍繞著這個原則去最佳化。

1.3. 、篩選條件分析

所謂的篩選條件,其實就是我們所寫的T-SQL語句中的WHERE語句後面的條件,我們會通過這裡面的語句進行盡量縮小資料掃描範圍,SQL Server通過這些語句來最佳化。

但是SQL Server也不是萬能的,有些寫法它也是不能識別的,也是我們寫語句要避免的:

 

1.4. 二、索引最佳化

經過上面的篩選範圍的確定之後,SQL Server緊接著開始索引的選擇,首先要確定的第一件事就是篩選欄位是否存在索引項目,也就是說是否被索引覆蓋。

當然,如果查詢項為索引覆蓋最好,如果不被索引覆蓋,那麼為了充分利用索引的特性,就引入了書籤尋找(bookmark)部分。

所以,鑒於此,我們在建立索引的時候,所參考的屬性值就為篩選條件的列了

 

 

完全相同的查詢語句,產生的查詢計劃完全不同,一個是索引掃描,一個則是高效的索引尋找。

這裡我只告訴你:FirstName like ‘K%‘的有1255行;而FirstName like ‘Y%‘只有37行,其中

其實,關於這裡的原因就是統計資訊在作怪了。

所以,特定的T-SQL語句不一定產生特定的查詢計劃,同樣特定的查詢計劃不一定是最優的方式,影響的它的因素很多:關於索引、關於硬體、關於表內容、關於統計資訊等諸多因素影響。

 

SQL Server調優系列基礎篇(並行運算總結) - 指尖流淌 - 部落格園.html

SQL Server調優系列進階篇(查詢最佳化工具的運行方式) - 指尖流淌 - 部落格園.html

 

查詢最佳化工具介紹-onlinedog-ITPUB部落格.html

 

 

作者:: 綽號:老哇的爪子claw of Eagle 偶像破壞者Iconoclast image-smasher

捕鳥王"Bird Catcher 王中之王King of Kings 虔誠者Pious 宗教信仰捍衛者 Defender of the Faith. 卡拉卡拉紅鬥篷 Caracalla red cloak

簡稱:: Emir Attilax Akbar 埃米爾 阿提拉克斯 阿克巴

全名::Emir Attilax Akbar bin Mahmud bin  attila bin Solomon Al Rapanui 

埃米爾 阿提拉克斯 阿克巴 本 馬哈茂德 本 阿提拉 本 所羅門  阿爾 拉帕努伊   

常用名:艾提拉(艾龍),   EMAIL:[email protected]

轉載請註明來源:attilax的專欄   http://www.cnblogs.com/attilax/

--Atiend

 

 

 

 

Atitit 查詢最佳化工具的流程attilax總結

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.