我遇到了一個存儲過程,它有一些故障。一個是,開發商這樣做:直接查詢或子查詢之間的區別?
SELECT alias.firstname, alias.surname, alias.id
FROM
(SELECT firstname, surname, id, address, anotherfield, etc, etc
FROM TableName
WHERE afield = avalue) alias
所以,這顯然是一樣的:
SELECT firstname, surname, id
FROM TableName
WHERE afield = avalue
這重複了很多。所以,我的問題是,執行子查詢會有性能損失嗎?我知道這是無用的......最好的想法是做對 - 我做了。但是,離開它會有什麼性能損失嗎?
我猜查詢優化器會理解它,並做正確的事情?
謝謝@Aaron,這是一個了不起的答覆,非常有幫助。我所看到的查詢的原因純粹是開發人員誤解了老年人的指導。問題是,這是做了很多...非常簡單的查詢,這樣做。要全部改變它們,需要重新測試。所以,我改變了一些,但現在想知道在時間成本計算方面是否繼續改變它們是有用的。沒有性能損失=離開它。你的回覆已經回答了。謝謝! – Craig 2013-03-06 03:08:56