Вы, конечно, можете запустить SUM()
по всей таблице, и производительность будет примерно зависеть от количества записей в этой таблице.Обратите внимание, что такие вещи, как индексы, в этом случае не сильно повлияют на производительность, поскольку SQL Server должен касаться каждой записи, чтобы вычислить сумму.
Если выполнение SUM
на всей таблице в производственной среде может плохо масштабироваться, тоОдним из вариантов для рассмотрения будет сохранение суммы в отдельной таблице.Затем, когда запись вставляется или удаляется, вы можете использовать триггер для надлежащего обновления промежуточного итога.Таким образом, доступ к сумме будет примерно постоянным временем, хотя у вас будут дополнительные издержки из-за логики триггера.