Using SQL Profiler#
SQLプロファイラー拡張機能を使用すると、ユーザーは非効率なSQLコードを見つけて最適化できます。 MicrosoftのSQL Serverプロファイラーは、操作と機能がPEMのSQLプロファイラーに非常に似ています。
SQLプロファイラーはPEMと連携して、サーバーのワークロードをプロファイリングできます。 PEMエージェントの有無にかかわらずサーバーにSQLプロファイラー拡張機能をインストールして有効にできます。ただし、トレースは非管理対象サーバーでアドホックモードでのみ実行でき、管理対象サーバーでのみスケジュールできます。
SQLプロファイラーは、 SQLトレースでの分析のために特定のSQLワークロードをキャプチャおよび表示します。キャプチャされたSQLのトレースをすぐに開始して確認するか、キャプチャされたトレースを保存して後で確認できます。 SQLプロファイラーを使用して、最大15の名前付けトレースを作成および保存できます。
SQLプロファイラーの権限#
PEMでSQLプロファイラーツールにアクセスするには、2つの前提条件があります。
PEM GUIにログインしているユーザーは、スーパーユーザーまたはPEMサーバーデータベース内のグループ
pem_comp_sqlprofilerのメンバーである必要があります。詳細については、 pem groups を参照してください。サーバーツリー
Usernameでデータベースサーバー用に構成されたユーザーは、トレースが実行されているデータベースサーバー監視対象サーバーのスーパーユーザーである必要があります。
SQLプロファイラーバージョン4.2.0以降では、 sql_profiler_admin
ロールにより、非スーパーユーザーがSQLプロファイラーファンクションを実行できます。このロールをユーザーに割り当てるには、次のコマンドを実行します。
grant sql_profiler_admin to username
トレースの作成#
[ Create Trace ]ダイアログボックスを使用して、 SQLプロファイラーがインストールおよび構成されているデータベースのSQLトレースを定義できます。ダイアログボックスを開くには、PEMクライアントツリーでデータベースを選択し、 Tools > Server > SQL Profiler > Create Trace を選択します。
Trace options タブを使用して、新しいトレースに関する詳細を指定します。
Name フィールドにトレースの名前を入力します。
User filter フィールドを使用して、トレースにクエリを含めるロールを指定します。すべてのロールからのクエリを含めるには、 Select All を選択します。
Server Filter フィールドを使用して、トレースするデータベースを指定します。すべてのデータベースに対するクエリーを含めるには、 Select All を選択します。
最大トレースファイルサイズ フィールドにトレースサイズを指定します。 SQLプロファイラーは、指定されたサイズにほぼ達すると、トレースを終了します。
Create を選択したときにトレースを開始するには、 Run Now フィールドで Yes を選択します。 [ Schedule ]タブのフィールドを有効にするには、 No を選択します。
Schedule タブを使用して、新しいトレースのスケジュールの詳細を指定します。
Start time フィールドを使用して、トレースの開始時間を指定します。
End time フィールドを使用して、トレースの終了時間を指定します。
毎日指定された時間にトレースを繰り返すには、 Repeat? フィールドで Yes を選択します。 [ Periodic job options ]タブのフィールドを有効にするには、 No を選択します。
Periodic job options タブを使用して、定期的なトレースに関するスケジュールの詳細を指定します。 Days セクションを使用して、ジョブを実行する日を指定します。
Week days フィールドを使用して、トレースを実行する曜日を選択します。
Month days フィールドを使用して、トレースを実行する日を選択します。
Months フィールドを使用して、トレースを実行する月を選択します。
Times セクションを使用して、トレース実行のスケジュールを指定します。 Hours および Minutes フィールドを使用して、トレースを実行する時間を指定します。
[ Create Trace ]ダイアログボックスの完了後、[ Create ]を選択してトレースを開始またはトレースをスケジュールします。
トレースをすぐに実行すると、トレース結果がPEMクライアントに表示されます。
既存のトレースを開く#
以前のトレースを表示するには、PEMクライアントツリーでプロファイルされたデータベースを選択し、 Management > SQL Profiler > Open Trace を選択します。 「 Open Trace 」ダイアログボックスが開きます。
トレースリストからエントリを選択し、 Open を選択して、選択したトレースを SQL Profiler タブで開きます。
トレースのフィルタリング#
フィルタは、1つ以上のルールの名前付けセットであり、それぞれがトレースビューからイベントを非表示にできます。トレースにフィルタを適用すると、非表示のイベントはトレースから削除されませんが、表示から除外されます。
Filter を選択して[ Trace Filter ]ダイアログボックスを開き、フィルタを定義するルールまたはルールセットを作成します。各ルールは、イベントを呼び出したロールのIDまたはイベント中に呼び出されたクエリタイプに基づいて、現在のトレース内のイベントをスクリーニングします。
既存のフィルタを開くには、 Open を選択します。新しいフィルタを定義するには、 Add (+) を選択して[ General ]タブに表示されるテーブルに行を追加し、ルールの詳細を提供します。
Type リストを使用して、フィルタルールを適用するトレースフィールドを指定します。
Condition リストを使用して、トレースをフィルタリングするときに値に適用するSQLプロファイラーの演算子の種類を指定します。
指定された値を含むイベントをフィルタリングするには、 Matches を選択します。
Doesを選択しますnot match 指定された値を含まないイベントをフィルタリングします。
Value フィールドで指定された文字列との完全な一致を含むイベントをフィルタリングするには、 Is等しい を選択します。
を選択します Value フィールドで指定された文字列との完全な一致を含まないイベントをフィルタリングするには、 と等しくない -で指定された文字列で始まるイベントをフィルタリングするには、 Starts with を選択しますValue フィールド.
Value フィールドで指定された文字列で始まらないイベントをフィルタリングするには、 Does not start with を選択します。
Less than を選択して、次のイベントをフィルタリングします Value フィールドで指定された数より小さい数値。
nuを持つイベントをフィルタリングするには より大きい を選択します Value フィールドで指定された数より大きいメトリック値。
Value で指定された数以下の数値を持つイベントをフィルタリングするには、 Less than or等しい を選択しますfield.
Value フィールドで指定された数以上の数値を持つイベントをフィルタリングするには、 Greater than or equal to を選択します。
Value フィールドを使用して、検索する文字列、数値、または正規表現を指定します。
ルールの定義が終了したら、 Add (+) を選択して別のルールをフィルタに追加します。フィルタからルールを削除するには、ルールを選択し、 Delete を選択します。
フィルタを適用せずにフィルタ定義をファイルに保存するには、 Save を選択します。フィルタを適用するには、 OK を選択します。
トレースの削除#
トレースを削除するには
PEMクライアントツリーでプロファイルされたデータベースを選択します。
Management > SQL Profiler > Delete Trace(s) を選択します。
Delete Tracesダイアログボックスで、トレース名の左側にあるアイコンを選択して、削除する1つ以上のトレースをマークします。
削除 を選択します。 PEMクライアントは、選択されたトレースが削除されたことを確認します。
スケジュールされたトレースの表示#
スケジュールされたトレースのリストを表示するには、PEMクライアントツリーでプロファイルされたデータベースを選択します。 Management > SQL Profiler > Scheduled Traces を選択します。
[ Scheduled Traces ]ダイアログボックスには、実行待機中のトレースのリストが表示されます。トレース名の左側にある Edit を選択して、トレースに関する詳細情報を表示します。
Status フィールドは、現在のトレースのステータスをリストします。
Enabled? スイッチは、トレースが有効になっている場合はYes、無効になっている場合はNoと表示されます。
Name フィールドには、トレースの名前が表示されます。
Agent フィールドには、トレースを実行するエージェントの名前が表示されます。
Last run フィールドには、トレースが最後に実行された日時が表示されます。
Next run フィールドには、次にスケジュールされたトレースの日時が表示されます。
Created フィールドには、トレースが定義された日時が表示されます。