405

SQL Server プロファイラー トレースを特定のデータベースに制限するにはどうすればよいですか? 接続先のインスタンスのすべてのデータベースのイベントを表示しないようにトレースをフィルター処理する方法がわかりません。

4

5 に答える 5

616

[トレース プロパティ] > [イベントの選択] タブ > [すべての列を表示] を選択します。列フィルターの下に、データベース名が表示されます。Like セクションにデータベース名を入力すると、そのデータベースのトレースのみが表示されます。

于 2008-11-07T17:10:29.690 に答える
44

SQL 2005では、最初にトレースに[データベース名]列を表示する必要があります。最も簡単な方法は、その列がすでに追加されているチューニングテンプレートを選択することです。

チューニングテンプレートが選択されていると仮定して、フィルタリングするには:

  • [イベントの選択]タブをクリックします
  • 「列フィルター」ボタンをクリックします
  • [すべての列を表示する(右側を下にする)]をオンにします
  • 「データベース名」を選択し、右側のペインの「いいね」の横にあるプラス記号をクリックして、データベース名を入力します。

トレースは常にテーブルにも保存するので、事後にトレースデータに対してLIKEクエリを実行できます。

于 2008-11-07T18:35:26.383 に答える
9

実験によって、私はこれを観察することができました:

SQL Profiler2005またはSQLProfiler2000をSQLServer2000にあるデータベースで使用すると、前述の問題は解決しませんが、SQL Profiler2005をSQLServer2005データベースで使用すると、完全に機能します。

要約すると、この問題はSQLServer 2000で蔓延しており、SQLServer2005で修正されているようです。

SQLServer 2000を処理する際の問題の解決策は、(wearejimboによって説明されているように)です。

  1. 以下のようにsysdatabasesテーブルにクエリを実行して、フィルタリングするデータベースのDatabaseIDを特定します。

    SELECT * 
    FROM master..sysdatabases 
    WHERE name like '%your_db_name%'   -- Remove this line to see all databases
    ORDER BY dbid
    
  2. SQL Profiler 2000の[新しいトレース]ウィンドウで(DatabaseNameの代わりに)DatabaseIDフィルターを使用します

于 2008-12-03T13:37:18.687 に答える
4

[トレース] プロパティで、上部の [一般] の横にある [イベントの選択] タブをクリックします。次に、右下の列フィルター...をクリックします。次に、またはなど、フィルタリングする対象を選択できます。TextDataDatabaseName

Likeノードを展開し、またはの%ようなパーセント記号を使用してフィルターを入力します。標識がなければ、フィルターは機能しません。%MyDatabaseName%%TextDataToFilter%%%

また、 [値を含まない行を除外する]チェックボックスを必ずオンにしてください。[一般] タブDatabaseNameに移動してテンプレートを変更するなど、フィルタリングするフィールドが見つからない場合は、空白のフィールドにすべてのフィールドが含まれている必要があります。

于 2015-07-21T12:45:25.733 に答える
3

新しいテンプレートを作成し、DBnameを確認します。トレースファイルにそのテンプレートを使用します。

于 2009-03-30T21:47:50.407 に答える