【发布时间】:2010-07-07 12:09:30
【问题描述】:
有没有办法找到所有已由单个语句更新的行,sql 本身必须跟踪这一点,因为它可以在需要时回滚更新。我有兴趣查找所有已更改的行,因为我正在使用更新触发器获得性能。
我在 Sql Server 中有一些大型 (2M-10M) 行表,我正在添加审计触发器来跟踪记录何时更新以及通过什么来更新,问题是这会扼杀性能。对表的大多数更新将涉及 20,000 多行,现在它们花费的时间是以前的 5-10 倍。
我已经想到了一些选择
1) 完全抛弃触发器并将审计字段添加到每个更新语句中,但这依赖于每个人的代码都被更改。 2) 在字段上使用之前/之后的校验和值,然后使用它们第二次更新更改的行,仍然会影响性能。
其他人解决了这个问题吗?
【问题讨论】:
-
什么版本的 SQL Server?你能发布你当前的触发代码吗?
标签: sql-server triggers