1
我正在寻找一种方式来优化如下:优化聚集查询
SELECT
(SELECT SUM(amount) FROM Txn_Log WHERE [email protected] AND txnType IN (3, 20)) AS pendingAmount,
(SELECT COUNT(1) FROM Txn_Log WHERE gid = @gid AND txnType = 11) AS pendingReturn,
(SELECT COUNT(1) FROM Txn_Log WHERE gid = @gid AND txnType = 5) AS pendingBlock
其中@gid是参数和GID是在这个表上的索引字段。问题:每个子查询在同一组条目上重新运行 - 三个重新运行是两个太多。
非常好,您还可以限制txnType IN(3,20,11,5) – 2009-11-19 11:10:03
的初始选择。同时,对[gid]和[txnType]字段使用索引,甚至可以使用[amount ]以避免查询甚至查看表本身。来自[gid],[txnType],[金额]上的覆盖索引的最大收益, – MatBailie 2009-11-19 11:43:41