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

SQL Anywhere 11.0.1 (日本語) » SQL Anywhere サーバ - SQL の使用法 » データベース・パフォーマンスのモニタリングと改善 » アプリケーション・プロファイリングのチュートリアル » チュートリアル:デッドロックの診断

 

レッスン 3:デッドロック・データの取得

データベース・トレーシング・ウィザードを使用すると、診断トレーシング・セッションを作成できます。トレーシング・セッションではデッドロック・データを取得します。

♦  デッドロック・データを取得するには、次の手順に従います。
  1. Sybase Central で、[モード] - [アプリケーション・プロファイリング] を選択します。

    アプリケーション・プロファイリング・ウィザードが表示された場合は、[キャンセル] をクリックします。

  2. データベース・トレーシング・ウィザードを起動します。

    1. 左ウィンドウ枠で、app_profiling - DBA をクリックし、[ファイル] - [トレーシング] を選択します。

    2. [ようこそ] ページで、[次へ] をクリックします。

    3. [トレーシング詳細レベル] ページで、[高 (短期間の集中的なモニタリングに推奨)]を選択し、[次へ] をクリックします。

    4. [トレーシング・レベルの編集] ページで、[次へ] をクリックします。

    5. [外部データベースの作成] ページで、[新しいデータベースを作成せず、既存のトレーシング・データベースを使用] を選択し、[次へ] をクリックします。

    6. [トレースの開始] ページで、[このデータベースにトレーシング・データを保存] を選択します。

    7. 格納するトレーシング・データの量を制限しない場合は、[制限なし] を選択し、[完了] をクリックします。

    8. [完了] をクリックします。

  3. デッドロックを作成します。

    1. Sybase Central の左ウィンドウ枠で、app_profiling - DBA データベースを選択し、[ファイル] - [Interactive SQL を開く] を選択します。

      Interactive SQL が起動し、app_profiling - DBA データベースに接続します。

    2. 前の手順を繰り返し、2 番目の Interactive SQL ウィンドウを開きます。

    3. 1 つの Interactive SQL ウィンドウで、次の SQL 文を実行します。

      CALL "DBA"."proc_deadlock1"();
    4. 2 番目の Interactive SQL ウィンドウで、20 秒以内に次の SQL 文を実行します。

      CALL "DBA"."proc_deadlock2"();

      しばらくすると、デッドロックが検出されたことを示す [ISQL エラー] ウィンドウが表示されます。これは、proc_deadlock1 が deadlock2 テーブルにアクセスする必要があるが、このテーブルは proc_deadlock2 によってロックされているために発生します。また、proc_deadlock2 は deadlock1 テーブルにアクセスする必要があるが、このテーブルも proc_deadlock1 によってロックされています。

    5. [OK] をクリックします。

  4. 2 つの Interactive SQL ウィンドウを閉じます。

  5. トレーシング・セッションを停止するには、Sybase Central で app_profiling - DBA データベースを選択し、[ファイル] - [トレーシング] - [トレーシングを停止して保存] を選択します。