最佳化子查詢sql語句為內串連

來源:互聯網
上載者:User

標籤:

背景:

  希望提高查詢的效率,從sql語句中頻繁出現的子查詢入手。

資料表如下:Student表中的CityCode對應於City表中的Code。

Student表:                      City表:

子查詢方式:

sql語句如下:

1 select * from Student 2 where CityCode 3 in4 (select Code from City)

內串連方式:
sql語句如下:

1 select a.* from 2 Student a inner join City b3 on a.CityCode=b.Code

二者的檢索結果一致,

 

對於簡單檢索而言,尤其是在資料量小的情況下,二者並無差異,可能會引起同學的質疑,憑什麼說串連的方式比子查詢的方式要好,拿不出證據,老子弄死你們。

於是,需要藉助SQL Server的效能最佳化指標,在SQL Server查詢語句之前,添加如下兩行語句即可,sql語句如下:

1 set statistics time on2 set statistics io on

然後,開啟結果標籤右側的訊息標籤,這是內串連的訊息:

這是子查詢的訊息:

注意在子查詢中City表邏輯讀取了8次,而串連中只有1次。不要在意時間,因為資料量較小,所以子查詢的時候更快一些,等資料量上去,你就懂了。

最佳化子查詢sql語句為內串連

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.