在SQL Server中“永久”设置跟踪标志?

我们需要使用SQL Server跟踪标志7646来帮助缓解一些全文阻塞,但是我惊讶地发现跟踪标志“unset”本身,可能是在数据库服务器重新启动的时候。

我用过了

DBCC TRACEON (7646, -1) 

设置跟踪标志和

 DBCC TRACESTATUS 

显示所有跟踪标志,告诉我它没有设置(重新启动后,我猜)。 为了永久性地设置跟踪标志,我这样做了:

  • 去了SQL Serverconfigurationpipe理器
  • 查看SQL Server服务的属性
  • 访问了高级选项卡
  • 编辑启动参数选项

并补充说

 ; -T {tracenumber}

到最后,像这样…

-dD:\ MSSQL10.MSSQLSERVER \ MSSQL \ DATA \ master.mdf; -eD:\ MSSQL10.MSSQLSERVER \ MSSQL \ Log \ ERRORLOG; -lD:\ MSSQL10.MSSQLSERVER \ MSSQL \ DATA \ mastlog.ldf ; -T7646

那是对的吗? 我发现在SQL Server启动参数的语法上有冲突的结果。

是的,这将为你做。 使用-T {traceflag}启动参数,即。

我学会了一个艰难的方法,那就是每个跟踪标记之前必须有分号。 例如,如果您启用了将死锁信息logging到文件,您的示例将变成…

 -dD:\MSSQL10.MSSQLSERVER\MSSQL\DATA\master.mdf;- eD:\MSSQL10.MSSQLSERVER\MSSQL\Log\ERRORLOG;- lD:\MSSQL10.MSSQLSERVER\MSSQL\DATA\mastlog.l df;-T7646;-T3605;-T1204;-T1222 

跟踪标志之间的空间导致后面的标志被忽略。