(長い質問で申し訳ありませんが、簡潔にしようと思います。)
SQL Server Profilerを実行していて、パフォーマンスの問題を追跡しています。私はプロファイラーの機能に比較的慣れておらず、データに対してクエリを実行できるようにトレースをテーブルにエクスポートしました。
私が直面していることの1つは、トレースのエクスポートによって生成されたテーブルのTextDataフィールドに対してselectクエリを実行するという一見奇妙な動作です。フィールドのデータ型(ntext、null)に関係している可能性があります。特定の値を選択していますが、予期しない結果が得られます。たとえば、これを行う場合:
select * from [TraceAnalyzer].dbo.TraceTable
そして私はこのような値に興味があります:
exec [Sproc_of_interest] @parm1=992
私はこのようなクエリを実行します:
select * from [TraceAnalyzer].dbo.TraceTable
where TextData like '%exec [Sproc_of_interest] @parm1=%'
しかし、返される結果は空です。
また、次のようなクエリを実行すると、次のようになります。
select * from [TraceAnalyzer].dbo.TraceTable
where TextData like '%exec [Sproc_of_interest]%'
次のような予期しないTextData値を取得しますexec sp_reset_connection
基準の角かっこは物事を台無しにしますか?私はそれらを省略しようとしましたが、それはすべてを除外するだけです。SQLのselectクエリのエスケープ文字を認識していませんが、問題のあるレコードの1つから値をコピーして貼り付けると、貼り付けられた値に元のクエリの条件を満たすものが含まれていないように見えます。
任意の洞察をいただければ幸いです。ありがとう。