下面的CUST表格將加入〜10個表格。SQL - 在此處執行子查詢還是擴展WHERE子句會更好嗎?
對於這個子查詢,我最好直接加入Customer表並將子查詢的4部分WHERE子句移動到主查詢的WHERE子句中?
我主要想知道,如果我們通過創建子查詢如下本地化部分主WHERE子句,是否可以減少SQL Server必須執行的處理量。
select * From
(select CKey, CID, CName from MainDB.dbo.Customer
where
LOC = 'ARK'
and Status = 1
and CID not like 'KAN%'
and CID not like 'MIS%') as CUST
SQL Server中的查詢優化器對於像這樣的事情其實很聰明,所以我相信你不會看到任何好處,把這樣的約束放到一個單獨的子查詢中 - 只需將你的Customer表連接到其他表並將它們將四個WHERE子句放入所有其他WHERE子句的列表中 - 沒有造成任何損害。 – 2010-07-25 19:03:01