Я ищу способ оптимизировать следующее:Оптимизировать агрегацию запрос
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) –
Кроме того, используйте индексы для полей [gid] и [txnType] и, возможно, даже [количество ], чтобы избежать запроса, когда-либо даже рассматривающего таблицу. Большая польза от индекса покрытия по [gid], [txnType], [amount] – MatBailie