web-dev-qa-db-ja.com

起動パラメーターとして設定されているトレースフラグとグローバルに有効になっているトレースフラグを特定しますか?

おそらく簡単な質問です。

私たちは、環境内の起動パラメーターとしていくつかのトレースフラグをテストすることを検討しています。私は知っていますが、DBCC TRACESTATUSグローバルスコープのトレースフラグを取得するには、これが起動時に設定されたか、単に-1フラグで設定されたかを指定しません。 SQLエラーログの解析は利用可能な唯一の方法ですか?おそらくレジストリエントリはどこかにありますか?

プログラムでこれに取り組むことができるどんな方法でも役に立ちます。

読んでくれてありがとう!

4
FilamentUnities

SQL Server 2008 R2 SP1以降を実行している場合は、クエリを実行できます sys.dm_server_registry 起動時に有効になるトレースフラグを見つける。

select * from sys.dm_server_registry
where 
cast(value_data  as varchar(max)) like '%-T%'

enter image description here

あなたまたは将来の訪問者が1行の出力を必要とする場合に備えて、以下の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%'

enter image description here

7
Kin Shah