タグ

ブックマーク / old.insight-tec.com (3)

  • ロックに関する検証 その3 - InsightTechnology 旧ブログ

    ~ロックに関する検証 その3~ ペンネーム ちゃむ 前回は、ロックが悪さをする場合について説明した。 今回は、トランザクションロックに関して検証を行う。 検証には、以下のテーブル a を使用する。 SQL> create table a maxtrans 1 as select * from emp; maxtransというものは、あまり指定してテーブルを作成しない場合が多いであ ろう。これは、データブロック中のトランザクションエントリのMAX値を決める ものである。以前、ロールバック・セグメントの検証のときに、以下のような テーブルのブロックダンプを紹介したと思う。その時は、Xidがトランザクショ ン表のスロットの場所を示すことなどの説明をした。 Itl Xid Uba Flag Lck Scn/Fsc 0x01 xid: 0x0009.003.00000076 uba: 0x04000

    s5ot
    s5ot 2010/02/08
    oracle ロック
  • ロックに関する検証 その2 - InsightTechnology 旧ブログ

    ~ロックに関する検証 その2~ ペンネーム ちゃむ 前回は、ロックの重要性などを説明した。 今回は、ロックが悪さをする場合について説明しようと思う。 悪さというと少し語弊があるかもしれないが、例えば、以下のように行ロック待ちになるようなSQL文を発行してみる。 セッションA SQL> UPDATE A SET ENAME = 'OSMAU'; 12行が更新されました。 セッションB SQL> UPDATE A SET ENAME = 'OSMAU'; 「待たされているよ~~~~~~~~~~」 この時の、V$LOCKの様子は以下の通りである。 SQL> SELECT SID,TYPE,ID1,ID2,LMODE,REQUEST,CTIME,BLOCK FROM V$LOCK WHERE TYPE IN ('TM','TX') ; SID TY ID1 ID2 LMODE REQUEST CT

    s5ot
    s5ot 2010/02/08
    oracle ロック
  • ロックに関する検証 その1 - InsightTechnology 旧ブログ

    ~ロックに関する検証 その1~ ペンネーム ちゃむ 今回からロックに関する検証を行なう。 例えば、EMP表のデータをUPDATEしたときCOMMITするまで、そのUPDATEしたデー タが他のユーザーに変更されないように保証したり、表がDROPされないように保 証されているのはロックのおかげである。これらのことは「データに一貫性があ る」とか「データ構造の整合性がとれている」とかいわれることもある。さら に、ロックのおかげで、複数のユーザーがデータに同時実行アクセスできるよう になっている。 ロックには、表全体に対するロックである表ロックと、行データを保証するため の行ロックというものがある。これらを合わせてDMLロック(データロック)と いう。また、データ構造を保証するのは、DDLロック(データディクショナリー ロック)という。表のデータ構造は、データディクショナリ上に存在するので、 こ

    s5ot
    s5ot 2010/02/08
    oracle ロック
  • 1