确定哪些跟踪标志设置为启动参数与全局启用?

Fil*_*ies 4 sql-server dbcc

可能是一个快速的问题。

我们希望在我们的环境中测试几个跟踪标志作为启动参数,虽然我知道我们可以DBCC TRACESTATUS用来获取全局范围的跟踪标志,但它没有指定这是在启动时设置还是仅使用 -1 设置旗帜。解析 SQL 错误日志是唯一可用的方法吗?可能是某个地方的注册表项?

任何可以以编程方式解决的方法都是有用的。

谢谢阅读!

Kin*_*hah 7

如果您运行的是SQL Server 2008 R2 SP1 及更高版本,则可以查询sys.dm_server_registry以找出在启动时启用的 TRACE FLAGS。

select * from sys.dm_server_registry
where 
cast(value_data  as varchar(max)) like '%-T%'
Run Code Online (Sandbox Code Playgroud)

在此处输入图片说明

以防万一如果您或未来的访问者需要在一行中输出,您可以使用以下 T-SQL :

select distinct @@SERVERNAME as SERVER_NAME
                ,replace(STUFF((
                        select ' ' + cast(value_data as varchar(max))
                        from sys.dm_server_registry
                        where cast(value_data as varchar(max)) like '%-T%'
                        for xml PATH('') -- select it as XML
                    ), 1, 1, ' ')        -- This will remove the first character ";" from the result
        , '&#x00', '')                   -- This will remove the "&#x00" else you will get  -traceFlag&#x00
    as TRACE_FLAGS_ENABLED_AT_STARTUP
from sys.dm_server_registry
where cast(value_data as varchar(max)) like '%-T%'
Run Code Online (Sandbox Code Playgroud)

在此处输入图片说明