Click here to view and discuss this page in DocCommentXchange. In the future, you will be sent there automatically.

SQL Anywhere 12.0.1 » SQL Anywhere サーバー SQL の使用法 » パフォーマンスの向上、診断、モニタリング » アプリケーションプロファイリングのチュートリアル » チュートリアル:デッドロックの診断

 

レッスン 3:ブロックされた接続データの確認

[アプリケーションプロファイリング] モードを使用すると、デッドロックに関係する接続がグラフィックで表示されます。また、[接続のブロック] タブには、ブロックされた接続に関する追加情報も表示されます。

 ♦ ブロックされた接続データの確認
  1. 次の手順に従って、トレーシングセッション中に作成された分析ファイルを開きます。

    1. Sybase Central で、[アプリケーションプロファイリング]  » [分析ファイルを開くかトレーシングデータベースに接続] をクリックします。

    2. [トレーシングデータベース内] をクリックします。

    3. [開く] をクリックします。

    4. [ユーザー ID] フィールドに DBA と入力します。

    5. [パスワード] フィールドに sql と入力します。

    6. [アクション] ドロップダウンリストから、[このコンピューターで稼働しているデータベースに接続] をクリックします。

    7. [データベース名] フィールドに app_profiling と入力します。

    8. [接続] をクリックします。

  2. 次の手順に従って、デッドロックのグラフィック表示を参照します。

    1. [アプリケーションプロファイリングの詳細] ウィンドウ枠で、[ステータス] タブをクリックし、[ロギングセッション ID] リストから最新の ID を選択します。

      [アプリケーションプロファイリングの詳細] ウィンドウ枠が表示されない場合は、[表示]  » [アプリケーションプロファイリングの詳細] をクリックします。

    2. [アプリケーションプロファイリングの詳細] ウィンドウ枠の下部で、[デッドロック] タブをクリックします。最新のデッドロックが表示されます。別のデッドロックを参照するには、[デッドロック] リストをクリックします。

    3. 次の図は、UPDATE 文により、どのようにデッドロック状態が作成されたかを示しています。

      テーブルには、接続ごとに、別の接続をポイントする矢印が表示されます。

    デッドロックに関連する各接続は、次のフィールドが含まれるテーブルで表示されます。

    • [接続名]   このフィールドには、接続を開いたユーザー ID が表示されます。

    • [SQL 文]   このフィールドには、デッドロックに関係する実際の文が表示されます。この場合、Interactive SQL の各インスタンスから実行したプロシージャーで検出された UPDATE 文が原因でデッドロックが発生しました。

    • [所有接続 ID]   このフィールドには、現在の接続をブロックしている接続の ID が表示されます。

    • [レコード ID]   このフィールドには、現在の接続がブロックされているローの ID が表示されます。

    • [ロールバック操作のカウント]   このフィールドには、デッドロックの結果としてロールバックされる必要がある操作回数が表示されます。この場合、プロシージャーには UPDATE 文しか含まれていないため、この数は 0 になります。

  3. 追加のデッドロック情報 (発生頻度、継続時間など) を表示するには、次のように [接続のブロック] タブを使用します。

    1. [アプリケーションプロファイリングの詳細] ウィンドウ枠で、 [データベーストレーシングデータ] タブをクリックします。

    2. [データベーストレーシングデータ] の上にある [接続のブロック] タブをクリックします。

    3. [接続のブロック] タブが開き、ブロック時間、ブロックが解除された時間、各接続に対するブロックの継続時間が表示されます。

  4. デッドロックについてのアプリケーションプロファイリングのチュートリアルを終了しました。[接続]  » [切断] をクリックして、Sybase Central を閉じます。

 参照