有没有人知道如何监控软件在数据库上的活动?
我会说得更具体一些:假设我有一个软件A,它将一些数据写入SQL Server数据库;我想实时知道一旦软件执行了某个操作,具体接触了哪些表。
提前感谢
发布于 2020-01-20 19:20:19
这真的取决于你到底想做什么。您是否只想看到对数据库执行的查询是实时的?如果是这样的话,正如Fabiano Carvalho所说,SQL Profiler是您最好的选择。它实时显示SQL Server上的活动,并允许您记录这些活动。
请注意,如果您启动它,并简单地使用默认设置,这取决于您的SQL Server的繁忙程度,您可能会看到成百上千个事件飞逝而过。如果您对单个应用程序生成的流量特别感兴趣,则应为其添加过滤条件。
SQL Profiler将允许您检查应用程序生成的实际查询(包括参数值),如果您想要调试生成的查询是否与预期的查询匹配,这将是一个很大的帮助。Profiler还将向您显示执行过程中使用的服务器资源,因此它是一个非常棒的性能调优工具。
您声明希望查看受影响的确切表,但根据应用程序的不同,这些表可能并不总是直接在Profiler中可见。例如,如果应用程序执行存储过程,而不是使用查询,那么您可能必须深入研究过程代码,以确定“幕后”到底发生了什么。
如果您对历史事件感兴趣(比如出于审计目的),那么您可能希望研究变更数据捕获(CDC)或类似的方法。
https://stackoverflow.com/questions/59821815
复制相似问题