sql >> データベース >  >> RDS >> Sqlserver

SQLServerイベントをキャプチャして分析する方法

    SQL Serverデータベース管理者として作業するときは、直面する可能性のある問題を検出、トラブルシューティング、および修正できるように、SQLServerエンジンの海を深く掘り下げて内部で何が起こっているかを見つけるスキルが必要です。
    SQLServerエンジンによってローカルでSQLServerログの形式で、または外部でイベントログの形式で書き込まれるログを利用できますが、トラブルシューティングと調整の唯一のソースとは見なされません。操作。

    SQL Serverには、さまざまな種類のSQLServerイベントを収集するために使用できる多数の組み込み機能が用意されています。この記事では、これらの組み込み機能について説明し、SQLServerイベントの収集と分析に使用できる最も効率的な無料のサードパーティツールの1つについて検討します。

    SQLプロファイラー

    SQL Server Profilerは、SQL Serverデータベース管理者および開発者によって広く使用されており、接続されたSQL Serverインスタンスで実行されているクエリに関するさまざまな種類のイベントを収集し、この情報を使用してクエリのパフォーマンスを向上させます。

    SQL Profilerは、多種多様なイベントをキャプチャし、関心のあるイベントプロパティを指定し、以前に指定されたプロパティ値に基づいてキャプチャされたデータをフィルタリングする機能を提供します。どのユーザーがどのデータベーステーブルに対してどのタイプのアクションを実行しているか、どのマシンから、いつ正確に実行しているかを調べることができます。さらに、SQL Profilerは消費されたリソースの数を表示し、アクションが完了したかエラーで失敗したかを示します。

    SQLプロファイラーを介したイベント収集は、多数の既存のテンプレートを使用するか、既存のイベントを使用して独自のカスタマイズされたテンプレートを作成することによって実行されます。まず、以下に示すように、SQL Serverインスタンスの名前、認証方法、およびそのSQL Serverインスタンスに接続するために必要な資格情報を指定して、イベントのキャプチャを計画しているSQLServerインスタンスに接続する必要があります。

    SQL Serverインスタンスに接続した後、以下に示すように、プロファイリングプロセスの目的に基づいて、収集するイベントのテンプレートを指定するように求められます。

    前の画像から、SQLプロファイラーがトレース結果をファイルまたは既存のデータベーステーブルに保存するオプションを提供していることがわかります。提供されているテンプレートのいずれも要件に適合しない場合は、イベントの選択に簡単に移動できます。 タブとチェックマークを付けてすべてのイベントと列を表示し、関心のあるプロパティでキャプチャされたイベントをフィルタリングします。たとえば、特定のデータベース、データベースユーザー、データベーステーブル、ホストマシンなどからのイベントをキャプチャするようにフィルタリングできます。オン、次のように:

    興味のあるイベントを選択したら、実行をクリックするだけです。 次に示すように、ボタンを押して、選択したデータベースからイベントの受信を開始します。

    関心のあるイベントのみを収集するための非常に正確なフィルターを定義しない場合、SQLプロファイラーは読み取りと分析が困難な多数のイベントを収集することを考慮に入れてください。また、そうではありません SQL Profilerツールはサーバーリソースを「消費」し、パフォーマンスを低下させるため、実稼働環境で実行することをお勧めします。ひどく使用する必要がある場合は、正確なフィルターを使用して、キャプチャするイベントの範囲を絞り込んでください。

    拡張イベント

    SQL Profilerで廃止されたツールを使用してさまざまな種類のSQLイベントをキャプチャすることによって引き起こされるパフォーマンス低下の問題を克服するために、SQL Server 2008に軽量で高度にスケーラブルで構成可能なパフォーマンス監視機能が導入されました。これは、有用な情報の収集に使用できます。利用可能な幅広いアクションから、SQLリソースの消費を最小限に抑え、SQLServerクエリのトラブルシューティングとパフォーマンスの調整に役立ちます。このイベントキャプチャ機能は、SQLServer拡張イベントと呼ばれます。 。

    拡張イベント機能には、SQL ServerManagementStudioの拡張イベントからアクセスできます。 管理の下のオプション ノード。新しい拡張イベントセッションを作成するには、セッションを右クリックします オプション、拡張イベント ノードを選択し、新しいセッションを選択します 以下のように:

    新しいセッションから ウィンドウでは、以下に示すように、SQLプロファイラーテンプレートよりも事前定義されたテンプレートを使用して、使用可能な多数のテンプレートから選択するか、単に空白のテンプレートを使用して関心のあるイベントを明示的に指定するかを選択できます。

    イベントから タブでは、イベントカテゴリに基づいて関心のあるイベントをフィルタリングし、取得する必要のある各イベントのプロパティを選択できます。さらに、以下に示すように、カスタマイズされたフィルターを作成して、キャプチャされたイベントの範囲を絞り込むことができます。

    ストレージ このページには、拡張イベントセッションの結果を保存するためのさまざまなオプションがあります。この例では、トレース結果を以下で構成された設定で拡張イベントファイルに保持します。

    監視要件を満たすように拡張イベントセッションをカスタマイズした後、[ OK]をクリックします ボタンをクリックしてセッションを作成します。セッションが作成された後、セッション作成プロセス中にそれを構成しない限り、イベントの自動キャプチャは開始されません。セッションがイベントのキャプチャを開始できるようにするには、作成したセッションを右クリックして、セッションの開始を選択します。 以下に示すように、オプション:

    キャプチャされたセッションを表示するには、イベントを保存するように以前に構成された物理ファイルを開くか、作成されたセッションを右クリックしてライブデータを見るを選択するオプションがあります。 以下に示すように、オプション:

    新しいウィンドウが開き、収集されたイベントと各イベントのプロパティ値が次のように表示されます。

    数回クリックするだけで拡張イベントを簡単に作成できますが、イベントの命名規則が複雑で、各イベントの背後にある目的を理解するのが難しいため、監視する正しいイベントを選択しようとすると、依然としていくつかの問題に直面します。さらに、セッション情報が表示されるGUIは、イベントとそのプロパティの分析を複雑にするユーザーフレンドリーではありません。この時点から、よりユーザーフレンドリーなサードパーティツールの必要性が高まっています。これについては、この記事の次のセクションで説明します。

    dbForgeイベントプロファイラー

    SQLServer用のdbForgeイベントプロファイラーは無料です SQL Serverイベントをキャプチャして分析し、後で調べるためにイベントデータを物理トレースファイルに保存する機能を提供するツール。

    dbForge Event Profiler for SQL Serverは、拡張イベント機能を完全にサポートし、可能な限り最高のパフォーマンスと最小限のサーバー負荷で実行することにより、SQLProfilerのパフォーマンス低下の問題を克服します。

    拡張イベント機能よりもSQLServer用のdbForgeイベントプロファイラーツールを魅力的なイベントプロファイラーツールにしているのは、クエリ構文の強調表示です。 SQLプロファイラーまたは拡張イベント機能では使用できない機能。さらに、フィルタリングと並べ替えを実行する機能を提供します グリッド内の操作 結果をトレースします。

    dbForge Event Profiler for SQL Serverは、SQL Serverデータベースエンジン、Analysis Services、およびIntegration Servicesからのさまざまな種類のアクティビティを監視し、T-SQLクエリとトランザクションのパフォーマンス関連の問題をトラブルシューティングし、さまざまなSQLServerエラーを監視するために簡単に使用できます。警告。

    さらに、SQLServer用のdbForgeEvent Profilerを使用して、SQL Serverデータベースユーザーのさまざまなアクティビティを監査したり、ストレステストや品質保証テストを実行したりできます。独自のカスタムトレースを作成して、将来使用するために保存することもできます。

    dbForge Event Profiler for SQLServerを使用してSQLServerイベントをキャプチャするには、dbForgeダウンロードページから無料でダウンロードし、以下のように簡単なインストールウィザードを使用してSQLServerまたはマシンにインストールする必要があります。 :

    インストールプロセスを開始するには、インストールをクリックします ようこそのボタン ページを開き、宛先の選択からツールをインストールする場所を指定します 以下のページ:

    インストール場所を指定したら、次へをクリックします ボタン。 ショートカット ページで、デスクトップにdbForgeツールのショートカットアイコンを作成するかどうかを指定し、[次へ]をクリックします。 続行するには:

    ファイルの関連付けについて ページでは、dbForgeツールに関連付けられるファイルの拡張子を指定するように求められます。このツールを使用して開く予定のファイルの拡張子を選択し、[次へ]をクリックします 続行するには:

    スタートアップの最適化について ページを表示し、ツールのパフォーマンス使用率に最適なオプションを確認して選択し、[次へ]をクリックします 続行するには:

    これで、選択に基づいたインストールプロセスが開始され、以下に示すように、進行状況バーにインストールプロセスのステータスが表示されます。

    SQLServerのdbForgeEventProfilerのインストールが正常に完了すると、ウィザードから通知が届き、インストールウィザードを閉じた直後に、次のようにツールを起動するオプションが提供されます。

    SQLServer用のdbForgeEventProfilerのウェルカムページはユーザーフレンドリーであり、SSMSに精通している人なら誰でも簡単に適応できます。新しいトレースを開始するには、新規をクリックします 以下のように、ツールの右側にあるオプション:

    プロファイルサーバーイベント ウィンドウで、監視対象のSQLServerインスタンスへの接続に使用される接続情報を提供する必要があります。ツールの最初の実行であり、以前に保存された接続がない場合は、新しい接続をクリックします。 以下に示すボタン:

    接続マネージャー ウィンドウ、新規 ボタンをクリックすると、既知の接続ウィンドウに移動します。このウィンドウで、SQL Serverインスタンス名、認証モード、およびSQLServerへの接続に必要な資格情報を入力するように求められます。接続情報を入力したら、[接続のテスト]をクリックします 次に示すように、入力した情報が有効かどうかを確認するボタンをクリックします。

    SQL Serverインスタンスの接続情報を提供した後、ほとんどのトレース機能を提供する便利なテンプレートのリストから既存のテンプレートを使用するか、選択を解除して次の手順でキャプチャするイベントのリストを指定するかを選択します。また、次のように宛先ファイルのプロパティを指定できます。

    キャプチャするイベントについて このページでは、以下に示すように、深く掘り下げてその意味を理解しようとする必要なしに、意味のある方法で説明された、ユーザーフレンドリーでよく分類されたイベントのリストを見つけることができます。

    以下の画像は、利用可能なすべてのイベントカテゴリと、各カテゴリのイベント数も示しています。これで、以下に明確に示すように、カテゴリの名前で利用可能なすべてのイベントを理解することができます。

    キャプチャするイベントのリストを指定した後、アクション ページには、以下に示すように、現在のイベントセッションでキャプチャするアクションのリストを指定する機能があります。

    イベントフィルターについて 以下に示すように、ページでは、独自のフィルターを描画して、収集される行の数を最小限に抑え、要件に一致させ、分析を容易にすることもできます。

    ページでは、現在のイベントセッションで表示する予定の列を指定できます。キャプチャしたい情報を含む列のみを取得すると、トレースファイルのサイズと返される行の幅を大幅に最小限に抑えることができ、以下に示すように、キャプチャされたデータの分析が容易になります。

    イベントセッションをカスタマイズした後、実行をクリックしてイベントのキャプチャを開始できます 前の画像のボタン。イベントセッションを開始すると、以下に示すように、ツールはイベントのキャプチャと表示を直接開始します。

    ここでの大きな利点は、イベントをクリックすると、T-SQLスクリプトが別のボックス内に使いやすい色付きのフォントで表示され、イベントの完全な説明が表示されることです。これにより、以下に示すように、チェックと分析が非常に簡単になります。

    さらに、SQLServer用のdbForgeEvent Profilerは、以下に示すように、新しいT-SQLクエリを記述し、接続されたSQLServerインスタンスで実行するオプションを提供することでSSMSとして機能できます。

    このツールは、返されたデータを、各列名、データ型、および値を示す便利なグリッドに次のように表示します。

    ほとんどのSQLServerデータベース管理者は、OutOfMemoryエラーで失敗したSSMSを使用して大きなSQLServerファイルを実行しようとしたときに状況に遭遇しました。 dbForge Event Profiler for SQL Serverは、SQLファイル内で大きなT-SQLスクリプトを実行する機能を提供することにより、この問題を解決します。あなたがする必要があるのは、大きなスクリプトを実行するを選択することだけです。 [データベース]メニューからオプションを選択し、そのスクリプトファイルの場所、このファイルが実行されるデータベース、およびそのファイルで使用されるエンコーディングを選択します(以下に明確に示されています)。

    結論

    これまでのすべての例から、dbForge Event Profiler for SQL Server FREEサードパーティツールを使用して、一般的なイベントキャプチャツールのすべての欠点を克服することにより、さまざまなタイプのSQLServerイベントをキャプチャして分析する方法を確認できます。 無料です ツールとそれは間違いなく使用する価値があります。


    1. SQL CURSORを使用するときに、これらの間違いを犯しますか?

    2. Oracleクエリでランニングバランスを計算する

    3. SQLサーバーでID列の値が突然1001にジャンプします

    4. Mysql ::Error:指定されたキーが長すぎました。キーの最大長は1000バイトです