SELECT TOP 10 dic.item_cd,
dic.item_knm,
dic.item_enm
FROM tbus.dt_item_com dic
INNER JOIN tbus.mfProd mfp ON dic.item_cd LIKE mfp.prodId
INNER JOIN tbus.plu_category plc ON mfp.prodType LIKE plc.plc_prodType
WHERE (dic.item_knm LIKE '%%'
OR (dic.item_enm LIKE '%%')
AND (dic.item_cd NOT IN
(SELECT TOP 0 dic.item_cd
FROM tbus.dt_item_com dic
INNER JOIN tbus.mfProd mfp ON dic.item_cd LIKE mfp.prodId
INNER JOIN tbus.plu_category plc ON mfp.prodType LIKE plc.plc_prodType
WHERE (dic.item_knm LIKE '%%'
OR dic.item_enm LIKE '%%')
ORDER BY dic.item_cd DESC))
ORDER BY dic.item_cd DESC
這是SQL查詢我想優化。優化SQL Server查詢
什麼這個查詢的作用是內部連接的項目名稱三個表(目前它只是「%%」。這會是像「蘋果%%」後面')。而且,因爲這是用於分頁的,所以它也沒有IN語法。
這裏的問題是有兩個重複的INNER JOIN & WHERE短語 - 一個在NOT IN內部,另一個在外部。我怎樣才能消除這種重複的代碼,並使其更快:(
(它是基於SQL Server 2000上)
你有什麼指標 – tomsv 2013-03-18 19:15:16
但這頂0的意思與NOT IN回事呢。???它有特殊的含義嗎?你是否試圖通過排除做分頁? – usr 2013-03-18 19:20:23
dontamaso //遺憾的是,沒有數量指標。 Odering item_cd(項目代碼)將是方式對其進行索引。 – Raccoon 2013-03-18 19:30:32