SQL Server のトレースフラグ ってたくさんある(のかも)
SQLTO というSQL Serverユーザーグループ組織(たぶん)とMicrosoft の共催のセミナーイベントを USTREAM で拝見させて頂きました。
Masayuki_Ozawa さんのセッションで、トレースフラグに興味が沸いたので、DBCC TRACEOFF が成功する番号を調べてみることにしました。以下がT-SQLスクリプトです。
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- -
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
SET NOCOUNT ON;
DECLARE @OKTable TABLE
(Value int
);
DECLARE @NGTable TABLE
(Value int
);
DECLARE @Value AS INT = -10;
DECLARE @MaxValue AS INT = 9999;
WHILE @Value < @MaxValue
BEGIN
BEGIN TRY
DBCC TRACEOFF(@Value)
--DBCC TRACEON(@Value)
INSERT INTO @OKTable ([Value]) VALUES (@Value);
END TRY
BEGIN CATCH
INSERT INTO @NGTable ([Value]) VALUES (@Value);
END CATCH
SET @Value = @Value + 1;
END
SELECT * FROM @OKTable;
SELECT COUNT(*) FROM @NGTable;
SELECT @@VERSION;
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- -
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
結果:
マイナス1から9300まで、(ゼロを含んで)9302回、成功しました。
ちなみに @@VERSION の結果は以下のとおりです。
Microsoft SQL Server 2008 R2 (RTM) - 10.50.1600.1 (Intel X86) Apr 2 2010 15:53:02 Copyright (c) Microsoft Corporation Developer Edition on Windows NT 5.1
■MSDN ライブラリ「トレース フラグ (Transact-SQL)」
http://msdn.microsoft.com/ja-jp/library/ms188396.aspx
公開されているトレースフラグはこの13個なのでしょうか...
公開されていないトレースフラグ(undocumented trace flag)がたくさんあるようで、上記セミナーイベントでも T1117、T1118、T3604、T3615 あたりが紹介されていましたし、"undocumented trace flag sql server"とかでググるといろいろ出てきますね。
まあ仕事上ではほとんど使う機会はないはずなのでこれ以上は調べません...