データベーストレーシングウィザードを使用すると、診断トレーシングセッションを作成できます。トレーシングセッションではデッドロックデータを取得します。
アプリケーションプロファイリングのチュートリアルでは、チュートリアルを実行しているデータベースと同じテストデータベース (app_profiling.db) にトレーシング情報が格納されます。ただし、負荷の高いデータベースをプロファイリングする場合は、パフォーマンスへの影響を避けるため、運用データベースとは別のデータベースにトレーシングデータを格納することを検討してください。
Sybase Central で、[モード] » [アプリケーションプロファイリング] をクリックします。
アプリケーションプロファイリングウィザードが表示された場合は、[キャンセル] をクリックします。
データベーストレーシングウィザードを起動します。
左ウィンドウ枠で、app_profiling - DBA をクリックし、[ファイル] » [トレーシング] をクリックします。
[ようこそ] ページで、[次へ] をクリックします。
[トレーシング詳細レベル] ページで、[高 (短期間の集中的なモニタリングに推奨)] をクリックし、[次へ] をクリックします。
[トレーシングレベルの編集] ページで、[次へ] をクリックします。
[外部データベースの作成] ページで、[新しいデータベースを作成せず、既存のトレーシングデータベースを使用] を選択し、[次へ] をクリックします。
[トレースの開始] ページで、[このデータベースにトレーシングデータを保存] をクリックします。
格納するトレーシングデータの量を制限しない場合は、[制限なし] をクリックし、[完了] をクリックします。
次の手順に従って、デッドロックを発生させます。
左ウィンドウ枠で、app_profiling - DBA をクリックし、[ファイル] » [Interactive SQL を開く] をクリックします。
Interactive SQL が起動し、app_profiling.db データベースに接続します。
前の手順を繰り返し、2 番目の Interactive SQL ウィンドウを開きます。
最初の Interactive SQL ウィンドウで、次の SQL 文を実行します。
CALL "DBA"."proc_deadlock1"(); |
最初の Interactive SQL ウィンドウで SQL 文を実行してから 20 秒以内に、2 番目の Interactive SQL ウィンドウで次の SQL 文を実行します。
CALL "DBA"."proc_deadlock2"(); |
しばらくすると、デッドロックが検出されたことを示す [ISQL エラー] ウィンドウが表示されます。
proc_deadlock1 は deadlock2 テーブルにアクセスする必要がありますが、このテーブルが proc_deadlock2 によってロックされていることによって、このデッドロックが発生しました。同様に、proc_deadlock2 は deadlock1 テーブルにアクセスする必要がありますが、このテーブルも proc_deadlock1 によってロックされています。
[OK] をクリックします。
デッドロックした操作は SQL Anywhere によって停止されたため、Interactive SQL ウィンドウを閉じることができます。
Sybase Central の左ウィンドウ枠で app_profiling - DBA 接続をクリックし、[ファイル] » [トレーシング] » [トレーシングを停止して保存] をクリックして、トレーシングセッションを停止します。
チュートリアルを続行するには、次のリンクをクリックします。レッスン 3:ブロックされた接続データの確認
![]() |
DocCommentXchange で意見交換できます
|
Copyright © 2012, iAnywhere Solutions, Inc. - SQL Anywhere 12.0.1 |