2009-09-10 74 views
0

以下查詢按預期工作。但我想有足夠的空間來優化。任何幫助?優化權限加入

SELECT a.cond_providentid, 
     b.flag1 
FROM  c_master a 
WHERE a.cond_status = 'OnService' 
ORDER BY a.cond_providentid, 
     a.rto_number; 
+0

你爲什麼使用SUM()? SUM(1 | 0)'可以不用'SUM()';} – knittl 2009-09-10 06:14:07

+2

16個問題,你不會答覆?不,謝謝... – 2009-09-10 06:17:35

+0

如果你使用正確的加入,你不值得回答...只是開個玩笑 – 2009-09-10 06:22:06

回答

2

可能,我建議把你的左內聯接的查詢數據庫中的觀點 - 以這種方式,代碼可以更清潔和更容易維護。

此外,檢查您經常使用的列最多..​​它可能是一個索引的候選人,以便您運行查詢時,它可以更快。

您也可能會檢查您的列數據類型......我看到你有這種類型的代碼:

(CASE WHEN b.tray_type IS NULL THEN 1 ELSE END)FLAG2

如果你有機會(iebTray_Type到位,或使用計算列,以確定標誌)改變爲您設計的表,它會運行得更快,因爲你不必使用Case語句來確定國旗。您可以將其添加爲查詢的另一列。

希望這會有所幫助! :)

+0

+1的問題 – Natrium 2009-09-10 06:36:07