如果我使用以下內容,我在4分鐘內檢索到大約1,60,000行。SQL Server查詢性能問題
SELECT DISTINCT *
FROM
(ABOUT 10 TABLES WITH LEFT OUTER JOIN)
但我需要提取只有約25列與他們的一些基本操作。但我的下面的查詢是永遠執行(超過一個小時)。
Col1,Col2等,ColA,ColB等代表欄。另外我需要對它們進行DISTINCT處理,因爲這是我需要的最終版本。
SELECT DISTINCT
Col1, Col2,...Col23,
Table1.Description1 + Table1.Description2 as FinalDescription,
(CASE WHEN COLA = 'XX' THEN
cast(round(COLB,2) as numeric(10,2))
ELSE
cast(round(COLB*-1 ,2) as numeric(10,2))
END) AS 'Amount',
CASE WHEN ISNULL(COLC,'')=''
THEN COLD + 'TO' + COLE
WHEN SUBSTRING (COLC ,1 , 3)IN ('XY')
THEN COLD+','+ SUBSTRING (COLE ,5 , 12)
ELSE COLD + ','+ COLF
END as 'Custom_Column'
FROM
(ABOUT 10 TABLES WITH LEFT OUTER JOIN)
我該怎麼做才能提高性能以獲得我感興趣的格式的列?
第一:比較查詢計劃(CTRL-L)。第二:弄清楚爲什麼你需要獨特。你有沒有不正確的加入? –
我沒有任何內部連接。由於表格設計不正確且存在重複,因此需要區別。這是如何設置的。無法更改設置。也沒有權限查看查詢計劃。 –
運行您的查詢與金額列刪除,然後再運行它刪除Custom_Coulmn。你會知道哪些是有問題的。 – Adish