SQL Serverプロファイラーのトレースを特定のデータベースに制限するにはどうすればよいですか?接続するインスタンスのすべてのデータベースのイベントを表示しないようにトレースをフィルターする方法がわかりません。
SQL Serverプロファイラーのトレースを特定のデータベースに制限するにはどうすればよいですか?接続するインスタンスのすべてのデータベースのイベントを表示しないようにトレースをフィルターする方法がわかりません。
回答:
[トレースプロパティ]> [イベント選択]タブで、[すべての列を表示]を選択します。列フィルターの下に、データベース名が表示されます。「Like」セクションのデータベース名を入力すると、そのデータベースのトレースのみが表示されます。
before
をトレースから始めなければなりません。後で実行すると、フィールドは編集できなくなります!
SQL 2005では、最初にトレースにデータベース名列を表示する必要があります。最も簡単な方法は、その列が既に追加されているチューニングテンプレートを選択することです。
フィルターするためにチューニングテンプレートが選択されていると仮定します。
トレースも常にテーブルに保存するので、事後のトレースデータに対してLIKEクエリを実行できます。
実験により、これを観察することができました。
SQL Server 2000にあるデータベースでSQLプロファイラー2005またはSQLプロファイラー2000を使用すると、問題は解決しませんが、SQL Server 2005データベースでSQLプロファイラー2005を使用すると、問題なく動作します。
要約すると、この問題はSQLServer 2000で蔓延し、SQLServer 2005で修正されたようです。
SQLServer 2000を扱う際の問題の解決策は(wearejimboで説明されているとおり)です。
次のようにsysdatabasesテーブルにクエリを実行して、フィルタリングするデータベースのDatabaseIDを特定します。
SELECT *
FROM master..sysdatabases
WHERE name like '%your_db_name%' -- Remove this line to see all databases
ORDER BY dbid
SQLプロファイラ2000の[新規トレース]ウィンドウで(データベース名の代わりに)データベースIDフィルタを使用する
トレースプロパティで、上部の横にある[ イベントの選択 ]タブをクリックします。全般。次に、右下の[ 列フィルター... ]をクリックします。次に、TextData
またはなど、フィルタリングするものを選択できます。DatabaseName
。
拡大する Like」ノードを展開し、またはの%
ようなパーセント記号を使用してフィルターを入力します。なし%MyDatabaseName%
%TextDataToFilter%
%%
サインフィルタは機能しません。
また、[値を含まない行を除外する]チェックボックスを必ずオンにしてください。[ 全般 ]タブにDatabaseName
移動して変更するなど、フィルタリングするフィールドが見つからない場合は、テンプレート、空白のフィールドにすべてのフィールドを含める必要があります。
新しいテンプレートを作成し、DBnameを確認します。そのテンプレートをトレースファイルに使用します。