このチュートリアルは、テスト・データベースが作成されていることを前提としています。テスト・データベースを作成していない場合は、レッスン 1:テスト・データベースの作成を参照してください。
このチュートリアルの SQL 文をコピーして Interactive SQL にペーストできます。
Sybase Central を起動し、ユーザ ID に DBA、パスワードに sql を使用してテスト・データベース app_profiling.db に接続します。
Sybase Central の起動とデータベースへの接続の操作に慣れていない場合は、ローカル・データベースへの接続を参照してください。
左ウィンドウ枠で、app_profiling - DBA をクリックし、[ファイル] - [Interactive SQL を開く] を選択します。
Interactive SQL が起動し、app_profiling.db データベースに接続します。
Interactive SQL で、次の SQL 文を実行します。
テーブルを 2 つ作成します。
CREATE TABLE "DBA"."deadlock1" ( "id" UNSIGNED BIGINT NOT NULL DEFAULT AUTOINCREMENT, "val" CHAR(1) ); CREATE TABLE "DBA"."deadlock2" ( "id" UNSIGNED BIGINT NOT NULL DEFAULT AUTOINCREMENT, "val" CHAR(1) ); |
各テーブルに値を挿入します。
INSERT INTO "deadlock1"("val") VALUES('x'); INSERT INTO "deadlock2"("val") VALUES('x'); |
後でデッドロックを発生させるために使用する 2 つのプロシージャを作成します。
CREATE PROCEDURE "DBA"."proc_deadlock1"( ) BEGIN LOCK TABLE "DBA"."deadlock1" IN EXCLUSIVE MODE; WAITFOR DELAY '00:00:20:000'; UPDATE deadlock2 SET val='y'; END; CREATE PROCEDURE "DBA"."proc_deadlock2"( ) BEGIN LOCK TABLE "DBA"."deadlock2" IN EXCLUSIVE MODE; WAITFOR DELAY '00:00:20:000'; UPDATE deadlock1 SET val='y'; END; |
データベースに加えた変更をコミットします。
COMMIT; |
Interactive SQL を終了します。
Copyright © 2009, iAnywhere Solutions, Inc. - SQL Anywhere 11.0.1 |