gpt4 book ai didi

sql-server - 如何在 SQL Server 中跟踪数据库写入?

转载 作者:行者123 更新时间:2023-12-01 05:22:00 24 4
gpt4 key购买 nike

我正在使用 SQL Server 2008 R2,试图对一个不透明的应用程序进行逆向工程并复制它的一些操作,以便我可以自动加载一些海量数据。

我认为这应该很容易——只需进入 SQL Server Profiler,开始跟踪,执行 GUI 操作,然后查看跟踪结果。我的问题是过滤器没有像我预期的那样工作。特别是,“Writes”列经常显示“0”,即使在明显对数据库进行更改的语句上,例如 INSERT查询。这使得无法设置 Writes >= 1过滤器,就像我想做的那样。

我已经通过设置全包跟踪并运行应用程序来验证这正是正在发生的事情。我事先查了表,运行了操作,后来查了表,肯定是对表做了改动。我查看了跟踪,在“写入”列中没有一行显示任何非零数字,包括显示 INSERT 的行。询问。查询没什么特别的......就像

exec sp_executesql 
N'INSERT INTO my_table([a], [b], [c])
values(@newA, @newB, @newC)',
N'@newA int,@newB int,@newC int', @newA=1, @newB=2, @newC=3

(如果上面有错误,这里是我的错字——该语句肯定是在表中插入了一条记录)

我确定此行为的关键在于“写入”列的描述:“服务器代表事件执行的 物理磁盘写入数 。”也许服务器正在缓存写入,并且它发生在 Profiler 的权限之外。我不知道,也许这并不重要。

有没有办法可靠地查找和记录更改数据库的所有语句?

最佳答案

您是否尝试过 Server Side Trace ?它也适用于记录读取和写入,这 - 如果我正确地读你 - 你想要记录写入。

关于sql-server - 如何在 SQL Server 中跟踪数据库写入?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15935470/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com