iT邦幫忙

2022 iThome 鐵人賽

DAY 10
0
自我挑戰組

資料庫二年級:練習AdventureWorks範例資料庫系列 第 10

[第十天]子查詢(完)&效能初探

  • 分享至 

  • xImage
  •  

昨天的雙層子查詢
轉換成JOIN的語法不知道好做嗎?
我們一起來寫看看吧。

用JOIN取代子查詢

試著用JOIN取代看看吧!

記得用[Person].[BusinessEntityAddress]當居中的橋樑。

上面的語法改成使用JOIN會是:

SELECT
  B.[BusinessEntityID]
 ,A.[AddressID]
  ,[AddressLine1]
  ,[AddressLine2]
  ,[City]
  ,[StateProvinceID]
  ,[PostalCode] from HumanResources.Employee E
JOIN [Person].[BusinessEntityAddress] B on E.BusinessEntityID = B.BusinessEntityID
JOIN [Person].[Address] A on B.AddressID = A.AddressID
WHERE E.OrganizationLevel = 1
ORDER BY B.BusinessEntityID

得到的結果都是:
https://ithelp.ithome.com.tw/upload/images/20220911/20152049kbajbTQPem.jpg

我們再一次驗證了
即使是兩層的子查詢,
都是可以用JOIN來代替的。

效能檢查(執行計畫)

資料庫在工作時,
和我們一樣,有工作效率的問題。
以最基礎的SELECT語法為例,
如果
有多種語法能夠得到同樣的查詢結果,
那我們應該撰寫效能較好的那個語法。(廢話)

記得之前還是學生的時候,
我只要資料庫執行出來的結果
和我想的結果
不要差太多,
其他效能什麼都,我都不在意,
我總是想:「我可以等」!

但工作以後,
才知道真正線上使用的資料庫,
是不可能不管效能的。
而且效能還是工作中的重中之重。

為什麼這樣說呢?
不是結果正確最重要嗎?
如果效能不好,會有什麼問題嗎?

明天我們就從這裡來揭曉吧!


上一篇
[第九天]一層又一層的子查詢
下一篇
[第十一天]執行計畫->效能
系列文
資料庫二年級:練習AdventureWorks範例資料庫30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言