タグ

2014年2月24日のブックマーク (4件)

  • デッドロックのサンプルクエリ

    デッドロックのテストをする際のサンプルクエリなどを。 BOL では、デッドロック を確認するとよいかと思います。 第 3 章 トランザクション分離レベルの選択とデッドロックの問題~ SQL Server 2000 における Web アプリケーション開発 ~  も参考になります。 今回は以下のデッドロックを発生させるためのサンプルクエリとなっています。 サイクルデッドロック 変換デッドロック インデックス間デッドロック テスト用のテーブルのクエリは以下になります。 CREATE TABLE [dbo].[LockTest]( [Col1] [int] NOT NULL, [Col2] [int] NULL, [Col3] [int] NULL, [Col4] [int] NULL, [Col5] [int] NULL, CONSTRAINT [PK_LockTest] PRIMARY KEY

    デッドロックのサンプルクエリ
  • テーブル ヒント (Transact-SQL)

    更新 : 2006 年 12 月 12 日 クエリ オプティマイザが、テーブル スキャンや 1 つ以上のインデックスを使用することを指定します。また、このテーブルやビューとこの SELECT、INSERT、UPDATE、DELETE の各ステートメントに対するロック手法を使用することも指定します。この指定は省略可能です。ヒントが指定されない場合でも、通常、クエリ オプティマイザは最適な方法を選択します。 通常、SQL Server 2005 クエリ オプティマイザでは、クエリにとって最適な実行プランが選択されるため、<table_hint> を含むヒントは、経験を積んだ開発者やデータベース管理者が最後の手段としてのみ使用することをお勧めします。 重要 : 適用対象 DELETE INSERT SELECT UPDATE Transact-SQL 構文表記規則 構文 <table_hint>

    テーブル ヒント (Transact-SQL)
  • 第 3 章 トランザクション分離レベルの選択とデッドロックの問題~ SQL Server 2000 における Web アプリケーション開発 ~

    表 3-1 3.2 デッドロックの問題 それでは、図 3-4 の処理を Serializable トランザクション分離レベルに設定し実行すれば、問題がなくなるのでしょうか? 確かにそれで、お化け (Phantoms) は、現れなくなるでしょう。しかし、今度は、デッドロックの問題が発生します。では、前回作成したテーブルを使用して実験してみましょう。準備として、下記ステートメントを実行しユーザーを 2 人、顧客テーブルに追加しておきます。 INSERT INTO 顧客 VALUES(1,'ユーザーA','東京都千代田区','03-3282-1234','','') INSERT INTO 顧客 VALUES(2,'ユーザーB','東京都千代田区','03-3282-5678','','') クエリ   アナライザから 2 つの接続を作成 クエリ アナライザを起動し、接続を 2 つ作り一方がユー

    第 3 章 トランザクション分離レベルの選択とデッドロックの問題~ SQL Server 2000 における Web アプリケーション開発 ~
  • SQLServerで変換デッドロックの回避 - m-namikiの日記

    デッドロックといえば、2つのテーブル(ここではA、B)に対して、トランザクション1はA→Bの順で更新、トランザクション2はB→Aの順で更新しようとした場合に発生する、というのは良く知られていると思う。MicrosoftTechNetによると、このデッドロックはサイクルデッドロックというらしい。 ※ http://technet.microsoft.com/ja-jp/library/cc707374.aspxの「3.3 デッドロックの種類 2.サイクルデッドロック」を参照。 一方で1つのテーブルに対して、複数のトランザクションで参照・更新を行う場合もデッドロックが発生する。同じくTechNetによると、これは変換デッドロックというらしい。 ※ http://technet.microsoft.com/ja-jp/library/cc707374.aspxの「3.3 デッドロックの種類 1

    SQLServerで変換デッドロックの回避 - m-namikiの日記