Sql server 如何查看所有执行过的SQL语句

时间:2021-03-12 04:32:58
Trace file 里面是否可以查看执行过的SQL语句?
profiler 是否可以直接查看执行过的哦SQL语句?

16 个解决方案

#1


Trace file 里面是否可以查看执行过的SQL语句?可以
profiler 是否可以直接查看执行过的哦SQL语句?不可以,只能监控从开始Profiler之后发生的SQL

#2


sqlserver启动之后有一个default trace,应该可以得到大部分信息,但是不保证完全,如果要完全,需要自定义trace

#3


由于数据被人无缘无故的删除,因此想查看是谁执行了哪些语句。

请问:
如何查询任意时间内,执行过的SQl语句

#4


引用 2 楼 DBA_Huangzj 的回复:
sqlserver启动之后有一个default trace,应该可以得到大部分信息,但是不保证完全,如果要完全,需要自定义trace

我想要知道的是如何查询到任意时间内的执行过的SQL语句

#5


参考:http://www.cnblogs.com/gaizai/p/3358998.html
http://technet.microsoft.com/zh-cn/library/ff848738(v=sql.105).aspx

#6


本帖最后由 DBA_Huangzj 于 2014-07-29 10:38:33 编辑
如果服务器没重启过,可以在缓存中找打大部分语句,但是没有标识时间点,所以你这个想法除了default trace之外,只能用一些日志解析工具如log exploer(2008开始不支持)或者apex sql等

#7


但是所有工具都有不完整的方面,根本上还是要做好权限 管控和一些必要的监控

#8


看看日志里面有没有存档 Sql server 如何查看所有执行过的SQL语句

#9


删除数据不会记录到这个errorlog里面的

#10


引用 5 楼 lackyking 的回复:
参考:http://www.cnblogs.com/gaizai/p/3358998.html
http://technet.microsoft.com/zh-cn/library/ff848738(v=sql.105).aspx

这个里面的只是很好,但是还是不能查看到具体的SQL语句

#11


引用 7 楼 DBA_Huangzj 的回复:
但是所有工具都有不完整的方面,根本上还是要做好权限 管控和一些必要的监控

新建一个trac是可以的,但是对数据库的影响很大,也不肯能一直这样监控。
我的想法是能否通过Trace file,或者其他的方式查看执行过的SQL语句。
产看transaction log 的工具大部分也是收费的,这个对我来说也是不适用的。

#12


默认trace文件也不可能跟踪所有T-SQL,T-SQL的量太庞大,只有分析日志才能比较简单得出,还是那句做好安全管控才是根本。另外没有一个工具是完全合适的,都有缺陷,包括日志工具

#13


没做监控的话,现在再来找,不一定找到出来,日志工具有很多都是试用版,用一两次没问题,但是如果你打算用来每次出问题才来找是谁,本身方向就错了。可能很多人用sa来连,到时候就算找到了,也不一定能定位是哪个人

#14


事后的追踪是没有希望的。

现场环境的 DBA 必须确保 sa 用户不被他人使用,更应该是其他人不能直接操作数据库。
开角色/DB用户给程序,一般人必须通过程序操作数据。
如果有追踪的需求,程序负责记录操作日志,那样的日志会有用户、客户端、操作、数据ID 等关键信息,很方便查找。

#15


引用 12 楼 DBA_Huangzj 的回复:
默认trace文件也不可能跟踪所有T-SQL,T-SQL的量太庞大,只有分析日志才能比较简单得出,还是那句做好安全管控才是根本。另外没有一个工具是完全合适的,都有缺陷,包括日志工具

请问有没有什么开关可以控制trace记录所有的SQL语句

#16


没有,即使有,数据量也非常庞大

#1


Trace file 里面是否可以查看执行过的SQL语句?可以
profiler 是否可以直接查看执行过的哦SQL语句?不可以,只能监控从开始Profiler之后发生的SQL

#2


sqlserver启动之后有一个default trace,应该可以得到大部分信息,但是不保证完全,如果要完全,需要自定义trace

#3


由于数据被人无缘无故的删除,因此想查看是谁执行了哪些语句。

请问:
如何查询任意时间内,执行过的SQl语句

#4


引用 2 楼 DBA_Huangzj 的回复:
sqlserver启动之后有一个default trace,应该可以得到大部分信息,但是不保证完全,如果要完全,需要自定义trace

我想要知道的是如何查询到任意时间内的执行过的SQL语句

#5


参考:http://www.cnblogs.com/gaizai/p/3358998.html
http://technet.microsoft.com/zh-cn/library/ff848738(v=sql.105).aspx

#6


本帖最后由 DBA_Huangzj 于 2014-07-29 10:38:33 编辑
如果服务器没重启过,可以在缓存中找打大部分语句,但是没有标识时间点,所以你这个想法除了default trace之外,只能用一些日志解析工具如log exploer(2008开始不支持)或者apex sql等

#7


但是所有工具都有不完整的方面,根本上还是要做好权限 管控和一些必要的监控

#8


看看日志里面有没有存档 Sql server 如何查看所有执行过的SQL语句

#9


删除数据不会记录到这个errorlog里面的

#10


引用 5 楼 lackyking 的回复:
参考:http://www.cnblogs.com/gaizai/p/3358998.html
http://technet.microsoft.com/zh-cn/library/ff848738(v=sql.105).aspx

这个里面的只是很好,但是还是不能查看到具体的SQL语句

#11


引用 7 楼 DBA_Huangzj 的回复:
但是所有工具都有不完整的方面,根本上还是要做好权限 管控和一些必要的监控

新建一个trac是可以的,但是对数据库的影响很大,也不肯能一直这样监控。
我的想法是能否通过Trace file,或者其他的方式查看执行过的SQL语句。
产看transaction log 的工具大部分也是收费的,这个对我来说也是不适用的。

#12


默认trace文件也不可能跟踪所有T-SQL,T-SQL的量太庞大,只有分析日志才能比较简单得出,还是那句做好安全管控才是根本。另外没有一个工具是完全合适的,都有缺陷,包括日志工具

#13


没做监控的话,现在再来找,不一定找到出来,日志工具有很多都是试用版,用一两次没问题,但是如果你打算用来每次出问题才来找是谁,本身方向就错了。可能很多人用sa来连,到时候就算找到了,也不一定能定位是哪个人

#14


事后的追踪是没有希望的。

现场环境的 DBA 必须确保 sa 用户不被他人使用,更应该是其他人不能直接操作数据库。
开角色/DB用户给程序,一般人必须通过程序操作数据。
如果有追踪的需求,程序负责记录操作日志,那样的日志会有用户、客户端、操作、数据ID 等关键信息,很方便查找。

#15


引用 12 楼 DBA_Huangzj 的回复:
默认trace文件也不可能跟踪所有T-SQL,T-SQL的量太庞大,只有分析日志才能比较简单得出,还是那句做好安全管控才是根本。另外没有一个工具是完全合适的,都有缺陷,包括日志工具

请问有没有什么开关可以控制trace记录所有的SQL语句

#16


没有,即使有,数据量也非常庞大