我想知道SELECT
SELECT
會引起任何額外的性能,或者如果數據庫足夠聰明,以優化這一點。性能的選擇SELECT
例如,我有一些選擇我喜歡以下幾點:
SELECT a.year, b.month, c.day, totalVolume from
(SELECT DATEPART(year, transactionTime) as year,
DATEPART(month, transactionTime) as month,
DATEPART(day, transactionTime) as day,
SUM(volume) as totalVolume FROM DOW30
GROUP BY DATEPART(year, transactionTime),
DATEPART(month, transactionTime),
DATEPART(day, transactionTime)) a
order by a.year, b.month, c.day
所有這些特定查詢的作用是組中的Dow30所有的交易日期,並總結了總體積。我使用這個數據是因爲該表每秒存儲每筆交易,我想每天進行彙總。
這不是完整的查詢,只是一個例子。我知道我可以僅僅從一個SELECT
這樣做,但我想知道如果做SELECT
SELECT
會產生某種性能損失,或者如果這一切都得到神奇的優化。
爲什麼我制定的查詢這種方式,因爲這就是我的可視化查詢,居然和我加入這個頂級select
與另一個表,並從根本SELECT
選擇出列,使我更容易的緣故可視化查詢。但是,如果沒有正式的DBA背景,我不確定這是否是錯誤的,以及是否需要找出更好的方式來編寫我的查詢。
你有沒有看的查詢計劃?我不知道如何得到它的SQL服務器,但也許你可以自己找出它。 它會告訴你,數據庫如何看你的查詢。 – fkerber 2012-01-08 21:51:38
我不是SQL Server專家,但我希望服務器優化...因爲這不是猜測,更多的是知道要知道唯一的方法是檢查查詢的查詢計劃 - 然後你可以看到服務器是怎麼做出來的,它甚至可以給你提示是否需要索引... – Yahia 2012-01-08 21:54:38