答案 0 :(得分:1)
更新100k行的SUM需要10秒意味着你有一个糟糕的表设计。你错过了一个或多个索引。更新100k行的总和应该花费10ms或更少。
除此之外,SQL Server可以为您维护SUM。只需在所需表达式上创建索引视图即可。见Create Indexed Views。 SUM
是索引视图中受支持的聚合。
这是SqlFiddle。
索引视图优于自制解决方案(例如,在触发器中维护的列),因为首先,正确且更简单(代码更少),由引擎维护< em>任何情况并且不会漂移(例如,如果暂时禁用触发器)。这甚至没有考虑任何基于触发器的解决方案中固有的所有缺点。
答案 1 :(得分:0)
您的问题的答案:
您是否尝试过编制此列的索引,以便服务器生成列统计信息? SUM值(在我看来)可能是一个统计数据,所以这可能会加快速度。