以下查询按预期工作。但我想有足够的优化空间。有什么帮助吗?
SELECT a.cond_providentid,
b.flag1
FROM c_master a
WHERE a.cond_status = 'OnService'
ORDER BY a.cond_providentid,
a.rto_number;
答案 0 :(得分:2)
我是否可以建议将查询放在数据库视图中的左连接中 - 这样,代码可以更清晰,更易于维护。
另外,检查您经常使用最多的列。它可能是索引的候选者,这样当您运行查询时,它可以更快。
您也可以检查您的列数据类型......我看到您有这种类型的代码:
(CASE 当b.tray_type为空时 然后1 ELSE 0 END)flag2
如果您有机会更改表的设计,(iebTray_Type为bit,或使用计算列来确定标志),它将运行得更快,因为您不必使用Case语句来确定标志。您可以将其添加为查询的另一列。
希望这有帮助! :)
安