从SQL Server Management Studio查看以前的查询结果

我昨晚离开我的电脑,在Sql Server Management Studio的查询编辑器中运行批量删除。 我正在运行这个testing在我们的实时数据库上使用脚本之前,在大型数据库上的删除速度。 在晚上我的电脑重新启动更新。 我想知道是否有任何方法可以查看以前执行的语句的日志,并查看执行所花费的时间。 它正在从SQL Server 2000中删除。谢谢!

唯一的方法就是在操作之前(和操作过程中)设置某种forms的监控过程。 例如,Profiler工具可以logging任何批处理的持续时间(以及任何语句,但不是结果),也可以在语句之前和之后发出一个显示getdate()结果的SELECTPRINT

通过像DELETE这样的修改操作,在事务日志中将会有一个logging(假设它没有被截断,因为日志备份或简单恢复模式下的检查点),但是凡人不能检查事务日志内置的工具。 第三方日志检查器虽然可用,但事务日志显示操作发生的时间,它不包含有关其持续时间的信息:)

我意识到这是closures了马门闩之后的大门,但没有这样的东西,将重新生存的内置logging,对不起!

也许凡人不能查看日志文件,但DBA可以搜集各种信息。 这里有几个查询,让你开始。

 -- Run this query to get the transaction ID USE YourDatabase GO SELECT [Transaction ID], Operation, Context, AllocUnitName FROM fn_dblog(NULL, NULL) WHERE Operation = 'LOP_DELETE_ROWS' and AllocUnitName like '%YourTableName%' ORDER by [transaction ID] desc -- Run this query to find the transaction SID SELECT Operation, [Transaction ID], [Begin Time], [End Time], [Transaction Name], [Transaction SID] FROM fn_dblog(NULL, NULL) WHERE [Transaction ID] = 'TransactionID from above' -- or use below to search using time instead of transaction ID [Begin Time] between 'starttime' and 'endtime' AND [Operation] = 'LOP_BEGIN_XACT' -- Run this to determine who ran the delete USE MASTER GO SELECT SUSER_SNAME([Transaction SID from above])