web-dev-qa-db-ja.com

トレースのテキストデータが切り捨てられないようにするにはどうすればよいですか?

サーバー側のトレースによって作成されたTEXTDATA列を含むトレースファイルがあります。トレースされたクエリの一部は非常に長いです。

プロファイラーでトレースファイルを再度開くと、関連する長いクエリが完全に表示されます。テキストは340行、10951文字です。

しかし、トレースファイルをSQL-Serverテーブルにインポートした後、関連するクエリが切り捨てられたようです。テーブルには、 fn_trace_gettable メソッドによって作成されたntext列があります。

さまざまな方法を使用してテーブルをクエリしました。SSMSでのテキスト出力(最大文字数が構成されている)は、52行目で出力を中断します。SSMSのファイル出力(* .rpt)も切り捨てられます。ここで、クエリは250行目で切り捨てられます。

だから今私は、トレースファイルからSQL ServerテーブルにWHOLEクエリを取得することは可能ですか?

3
Magier

SSMSは、XMLとして入力されない限り、常に長い文字列を切り捨てます。この場合、無制限を許可するように設定できます。

enter image description here

私が通常使用する回避策( ここから )は以下のとおりです

SELECT (SELECT YourTraceDataColumn AS [processing-instruction(x)] FOR XML PATH(''), TYPE)
FROM YourTraceTable

これにより、先頭に(<?x)および末尾(?>)文字を使用しますが、それ以外の場合はデータをそのままにし、文字をXMLエンティティに置き換えません。

7
Martin Smith