我有一个场景来确定在通过应用程序进行的各种事务中受影响的表和列。我需要一种方法来捕获表的详细信息,在应用程序运行期间数据库中受影响的列。该应用程序是一个桌面应用程序,其中商务层为Java,后端位于SQL Server 2012中。
我已经尝试过在所有表上创建触发器。这些触发器会将受影响的Table列的详细信息插入到公共表中。因此,最终,该表将为我提供所需的信息。 但是,当表太多且列数太多时,这可能会很混乱。
{{1}}
答案 0 :(得分:0)
触发器非常昂贵,无法正确缩放。因此,在大多数情况下,包括您的方案,您都应避免使用它们。但是,为了知道数据库中正在发生什么,最好的IMO解决方案是使用Adam Machanic sp_whoisactive。这是可以定期运行并在执行时捕获系统状态的存储过程。