2016-08-08 39 views
0

我想设置僵局标志在SQL 2008 R2,当我运行此命令DBCC TRACEON(1222)未设置状态标志

DBCC TRACEON (1222) 

我没有得到任何错误,它说,它完成DBCC TRACEON (1222),但是当我检查未设置标志的状态

  • DBCC TRACESTATUS (1222)

是否有另一种方法来设置?为什么不能这样工作?

谢谢!

+1

如你在2008年,你可能不需要这个反正。您可以查看默认的system_health扩展事件会话http://dba.stackexchange.com/questions/10644/deadlock-error-isnt-returning-the-deadlock-sql/10646#10646 –

+0

@MartinSmith:感谢您的链接,有一点像这样陈述..“或者如果缓冲区已经在此期间循环了。”..我们知道缓冲区的再循环时间,我们可以每20分钟左右记录一下这个跟踪标志输出到磁盘,这样我们保证即使在繁忙的系统中也能获得数据,无论缓冲区再循环时间如何 – TheGameiswar

+0

@TheGameiswar - 它使用内存环形缓冲区,最大内存为4MB。希望缓冲区不会循环并重写旧的事件,因为它只记录死锁,高严重性错误或长时间锁定和锁定等待,所以这些都应该是例外。没有什么能够阻止人们为死锁图设置扩展事件追踪并使用诸如文件这样的持久目标。 –

回答

1
dbcc traceon('someflag') 

集跟踪标志在会话级,一旦会话被关闭,跟踪标记将不再活性

要设置跟踪标志全局使用该命令..

dbcc traceon('someflag',-1) 

要查看那些跟踪这些设置在全球使用此..

dbcc tracestatus(-1) 

跟踪标志将被清除一旦SQLServer是restarted.You需要的SQLserver启动创建它们,如果你希望他们能够坚持

enter image description here

+0

我确实运行了-1参数,它仍然没有设置:( –

+0

我不能repro这个,你能分享你的sql版本 – TheGameiswar