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 の使用法 » パフォーマンスの向上、診断、モニタリング » アプリケーションプロファイリングのチュートリアル » チュートリアル:デッドロックの診断

 

レッスン 2:デッドロックの生成と情報の取得

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

ヒント

アプリケーションプロファイリングのチュートリアルでは、チュートリアルを実行しているデータベースと同じテストデータベース (app_profiling.db) にトレーシング情報が格納されます。ただし、負荷の高いデータベースをプロファイリングする場合は、パフォーマンスへの影響を避けるため、運用データベースとは別のデータベースにトレーシングデータを格納することを検討してください。

 ♦ デッドロックデータの取得
  1. Sybase Central で、[モード]  » [アプリケーションプロファイリング] をクリックします。

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

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

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

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

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

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

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

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

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

  3. 次の手順に従って、デッドロックを発生させます。

    1. 左ウィンドウ枠で、app_profiling - DBA をクリックし、[ファイル]  » [Interactive SQL を開く] をクリックします。

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

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

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

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

      CALL "DBA"."proc_deadlock2"();

      しばらくすると、デッドロックが検出されたことを示す [ISQL エラー] ウィンドウが表示されます。

    5. proc_deadlock1 は deadlock2 テーブルにアクセスする必要がありますが、このテーブルが proc_deadlock2 によってロックされていることによって、このデッドロックが発生しました。同様に、proc_deadlock2 は deadlock1 テーブルにアクセスする必要がありますが、このテーブルも proc_deadlock1 によってロックされています。

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

  4. デッドロックした操作は SQL Anywhere によって停止されたため、Interactive SQL ウィンドウを閉じることができます。

  5. Sybase Central の左ウィンドウ枠で app_profiling - DBA 接続をクリックし、[ファイル]  » [トレーシング]  » [トレーシングを停止して保存] をクリックして、トレーシングセッションを停止します。

  6. チュートリアルを続行するには、次のリンクをクリックします。レッスン 3:ブロックされた接続データの確認

 参照