Freelance Graphics - Œ³‚è1

Similar documents
untitled

Microsoft PowerPoint - 第5章補足-DB2組み込みSQL.ppt

PHP 分科会 '11/11 OpenSource 協議会 System i 2011/11/25

標準化 補足資料

…l…b…g…‘†[…N…v…“…O…›…~…fi…OfiÁŸ_

tkk0408nari

1 SQL Server SQL Oracle SQL SQL* Plus PL/SQL 2 SQL Server SQL Server SQL Oracle SQL SQL*Plus SQL Server GUI 1-1 osql 1-1 Transact- SQL SELECTFROM 058

結合演算 ( 復習 ) データベース論 (9) R 社員番号 氏名麻生太郎安部晋三与謝野馨森喜朗 部門経理課営業課総務課営業課 S 部門経理課営業課総務課 電話 問合せ言語と SQL(2) R S 社員番号

橡実践Oracle Objects for OLE

~~~~~~~~~~~~~~~~~~ wait Call CPU time 1, latch: library cache 7, latch: library cache lock 4, job scheduler co


Microsoft PowerPoint pptx

1 ex01.sql ex01.sql ; user_id from (select user_id ;) user_id * select select (3+4)*7, SIN(PI()/2) ; (1) select < > from < > ; :, * user_id user_name

PowerPoint プレゼンテーション

Microsoft Word - Android_SQLite講座_画面800×1280

[Lab 2]Oracleからの移行を促進する新機能

Oracle Database Connect 2017 JPOUG

DUCTION はじめての人のための トランザクション入門 TO INTRO- TRANS- 日本 PostgreSQL ユーザ会第 35 回 PostgreSQL 勉強会 2017 年 5 月 27 日 ACTION 坂田哲夫 (NTT OSS センタ ) 1

1,.,,,., RDBM, SQL. OSS,, SQL,,.

橡j_Oracle_whitepaper.PDF

PowerPoint Presentation

橡ExCtrlPDF.PDF

Microsoft Word - Lab5d-DB2組み込みSQL.doc

eラーニング資料 e ラーニングの制作目標 データベース編 41 ページデータベースの基本となる概要を以下に示す この内容のコースで eラーニングコンテンツを作成予定 データベース管理 コンピュータで行われる基本的なデータに対する処理は 次の 4 種類です 新しいデータを追加する 既存のデータを探索

Exam : J Title : Querying Microsoft SQL Server 2012 Version : DEMO 1 / 10

<4D F736F F F696E74202D2091E6358FCD B8F88979D B F2E707074>

1.SqlCtl クラスリファレンス SqlCtl クラスのリファレンスを以下に示します メソッドの実行中にエラーが発生した場合は標準エラー出力にメッセージを出力します (1)Connect() メソッド データベースへ connect 要求を行います boolean Connect(String

プレポスト【問題】


PowerPoint -O80_REP.PDF

リレーショナルデータベース入門 SRA OSS, Inc. 日本支社 Copyright 2008 SRA OSS, Inc. Japan All rights reserved. 1

Microsoft PowerPoint - db03-5.ppt

第 3 章 メディア障害とバックアップ リカバリ この章では メディア障害の発生に備えたバックアップ方法と 障害時の基本的なリカバリ方法につい て説明します 1. メディア リカバリ概要 2. ファイルの多重化 3. アーカイブ モードの設定 4. バックアップ概要 5. 一貫性バックアップ ( オ

CodeGear Developer Camp

Chapter Two

--

PostgreSQL 9.4 評価検証報告 SRA OSS, Inc. 日本支社高塚遙 :55 ~ 16:30 PostgreSQL 9.4 最新情報セミナー Copyright 2014 SRA OSS, Inc. Japan All rights reserved. 1

今さら聞けない!? Oracle入門 ~後編~

Exam : 1z0-882 日本語 (JPN) Title : Oracle Certified Professional, MySQL 5.6 Developer Vendor : Oracle Version : DEMO 1 / 4 Get Latest & Valid 1z0-882-JP

Oracle Rdb: PowerPoint Presentation

内容 Visual Studio サーバーエクスプローラで学ぶ SQL とデータベース操作... 1 サーバーエクスプローラ... 4 データ接続... 4 データベース操作のサブメニューコンテキスト... 5 データベースのプロパティ... 6 SQL Server... 6 Microsoft

XML Consortium & XML Consortium 1 XML Consortium XML Consortium 2

※サンプルアプリケーションを固めたファイル(orcasample

第 2 章 PL/SQL の基本記述 この章では PL/SQL プログラムの基本的な記述方法について説明します 1. 宣言部 2. 実行部 3. 例外処理部

日本オラクル株式会社

スライド 1

Sequel のすすめ 私が SQL を嫌いな理由 とみたまさひろ RubyHiroba Sequel のすすめ - 私が SQL を嫌いな理由 Powered by Rabbit 2.0.7

1. 検証概要 目的及びテスト方法 1.1 検証概要 PostgreSQL はカルフォニア大学バークレー校で開発された POSTGRES, Version 4.2 をベースにしたオープンソースのリレーショナルデータベース管理システムです PostgreSQL はオープンソースでありながら 商用リレー

( 目次 ) 1. はじめに 開発環境の準備 仮想ディレクトリーの作成 ASP.NET のWeb アプリケーション開発環境準備 データベースの作成 データベースの追加 テーブルの作成

Chapter Two

DB2 UDB For LinuxのCLUSTERPRO上での稼動確認

ストラドプロシージャの呼び出し方

Case 0 sqlcmdi.parameters("?tencode").value = Iidata(0) sqlcmdi.parameters("?tenname").value = Iidata(1) 内容を追加します sqlcmdi.executenonquery() Case Else

1 トランザクション管理

untitled

Microsoft Word - Lab6.doc

,, create table drop table alter table

【2/10開催】 第4回 OSS勉強会配布資料

PA4

Oracle SQL Developer Data Modeler

PostgreSQL カンファレンス 2013 証券取引バックオフィスにおける Oracle から PostgreSQL への マイグレーション SBI ジャパンネクスト証券株式会社 イアン バーウィック

データセンターの効率的な資源活用のためのデータ収集・照会システムの設計

はじめに コースの概要と目的 Oracle をより効率的に使用するための SQL のチューニング方法について説明します また 索引の有無 SQL の 記述方法がパフォーマンスにどのように影響するのかを実習を通して理解します 受講対象者 アプリケーション開発者 / データベース管理者の方 前提条件 S

Oracle Rdb: SQL Update

Web 環境におけるレイヤー別負荷の 2 違い DB サーバ AP サーバ 後ろのレイヤーほど負荷が高く ボトルネックになりやすい

Sharing the Development Database

SRA OSS, Inc. のご紹介 1999 年より PostgreSQL サポートを中心に OSS ビジネスを開始 2005 年に現在の形に至る 主なビジネス PostgreSQL, Zabbix などの OSS のサポート コンサルティング 導入構築 PowerGres ファミリーの開発 販売

2

PGECons技術ドキュメントテンプレート Ver.3

Oracle 入門 ~ 研修受講後のスキルアップサポート ~ 対応バージョン :Oracle 10gR1 ~ 12cR1 本資料は アシスト Oracle 研修をご受講いただいたお客様からのご質問や 研修ではご案内できなかった情報などを FAQ にまとめたものです 研修受講後のスキルアップの一助とし

Oracle Lite Tutorial

データベースアクセス

Caché SQL に関するよくある質問

DumpCollection IT Exam Training online / Bootcamp PDF and Testing Engine, study and practice

ii II Web Web HTML CSS PHP MySQL Web Web CSS JavaScript Web SQL Web

PowerRDBconnector説明書(SQLServer編)

7-1- 基 RDB に関する基礎知識 1 独立行政法人情報処理推進機構

テーブルの確認 sqlite>.tables.tables コマンドでデータベース内のテーブル一覧を表示する テーブルスキーマの表示 sqlite>.schema mytable.schema コマンドで指定のテーブルのスキーマを表示できる テーブル出力の整形.explain コマンドを使うと テー

ソフトウェアエンジニアリング - 機能 #54

ストアドプロシージャ移行調査編

Oracle Database 10g Release 2を使用したデータベース・パフォーマンス

クエリの作成が楽になるUDF

Chapter Two

復習 (SQL 文 ) 3/6 復習 (SQL 文 ) 4/6 表の作成 CREATE TABLE...; 表の削除 DROP TABLE テーブル名 ; 表内のデータが全て消えてしまう. 表内のデータを得る SELECT 列名 FROM 表名...; 表にデータを挿入する. INSERT INTO

Microsoft Word - tutorial3-dbreverse.docx

Blue Asterisk template

// JDBC // CallableStatement cs = null; try { cs = conn.preparecall("{call DUMMY_PROC(?,?)}"); cs.setstring(1, "This is a test"); cs.registeroutparame

KeyWeb Creator 概要 What s KeyWeb Creator? 動的なホームページを作成するためのツール!! 従来の Web ページ DB を利用した Web ページ <HTML> <HEAD> <TITLE>show_book</TITLE> </HEAD> <BODY> <DI

第 7 章 ユーザー データ用表領域の管理 この章では 表や索引を格納するユーザー データ用表領域の作成や 作成後のメンテナンスに ついて解説します 1. ユーザー データ用表領域の管理概要 2. ユーザー データ用表領域作成時の考慮事項 3. ユーザー データ用表領域の作成 4. ユーザー データ

第 5 章 結合 結合のパフォーマンスに影響を与える結合の種類と 表の結合順序について内部動作を交えて 説明します 1. 結合処理のチューニング概要 2. 結合の種類 3. 結合順序 4. 結合処理のチューニングポイント 5. 結合関連のヒント

Microsoft Word - SQLServer_fra_Linux_v1.1.docx

SQLite データベース IS04 組み込み 1

Chapter Two

Microsoft Word - JP-AppLabs-MySQL_Update.doc

スライド 1

柔軟なセキュリティー

Microsoft Word - Win-Outlook.docx

122.pdf

このドキュメントに記載されている情報 (URL 等のインターネット Web サイトに関する情報を含む ) は 将来予告なしに変更することがあります このドキュメントに記載された内容は情報提供のみを目的としており 明示または黙示に関わらず これらの情報についてマイクロソフトはいかなる責任も負わないもの

ログインおよび設定

Transcription:

SQL ステートメント Level ISOLATION お断り : 当資料は DB2 UDB V7.2(UNIX,PC) をベースに作成されています < 第 1.00 版 >2001 年 6 月 1

( 内容 ) とはロックの範囲と ISOLATION レベル ISOLATION レベルの設定ロックのモードアクセス パス & 処理内容とロック モードの関係 SQL ステートメント Level ISOLATIO 考慮点 Isolation? 2

とは 分離レベル指定が SQL ステートメント単位で使用可能 アプリケーションを準備またはバインドするときに分離レベルをパッケージ レベルで設定することに加え 分離レベルをステートメント レベルで設定することができます ステートメント レベルの分離レベルは WITH 文節を使用して指定します ステートメント レベル分離をサポートしているのは以下の SQL ステートメントです SELECT INSERT UPDATE DECLARE CURSOR 分離の使用に関しては いくつかの条件があります * WITH 文節を副照会で使用することはできません * WITH UR オプションは 読み取り専用の操作にのみ適用されます このオプションが他の状況で使用された場合 ステートメントは "UR" から "CS" に自動的に変更されます * ステートメントのデフォルト分離レベルは ステートメントがバインドされるパッケージの分離レベルです * ステートメント レベルの分離レベルは ステートメントがあるパッケージに指定された分離レベルをオーバーライドします 3

ブランク ページです 4

ロックの範囲と ISOLATION レベル ISOLATION( 分離 ) レベルによりロックが保持される範囲を設定される ( 注 : * は対応する ISO SQL Isolation Level ) RR (Repeatable Read): 反復可能読み取り (* Serializable) RS (Read Stability): 読み取り固定 (* Repeatable Read) CS (Cursor Stability): カーソル固定 ( 省略時値 ) (* Read Committed) UR (Uncommitted Read): 未コミット読み取り (* Read Uncommitted) ISOLATION レベルによる照会処理時のロック取得の違い Table1 col1 col2 col3 100 A01 700 200 A02 800 300 A01 750 400 B00 600......... 索引列 select col2 from table1 where col1 between 100 and 350 and col3 >= 750 結果行 200 A02 800 300 A01 750 RR の場合のロック取得行 100 A01 700 200 A02 800 300 A01 750 400 B00 600 RS の場合のロック取得行 200 A02 800 300 A01 750 CS の場合のロック取得行 200 A02 800 UR の場合のロック取得行なし 次の索引キーの行にもロック カーソルの位置のみ 5

解説 : ISOLATION レベルの比較照会処理時のロック取得更新された行については 作業単位完了 (COMMIT/ROLLBACK) までロックを取得する照会行については ISOLATION によりロックの取得範囲と保持期間が異なる ISOLATION RR RS CS UR ロックの範囲 作業単位内で走査した全ての行 および索引キーの次の行 作業単位内で参照した結果行 カーソルがおかれた行のみ 未コミットデータへのアクセス 〇 反復不可能読み取り 〇 〇 幻像読み取り 〇 〇 〇 照会行へのロック (Read Lock) の保持期間他のアプリケーションへの影響 長所 考慮点 作業単位内作業単位内カーソルが次の行に進むまで 作業単位内で走査した全ての行への更新処理が不可能同一作業単位内で実行されたSELECT 文には必ず同じ結果行が戻される 多くの行ロックを取得し locklist の不足からロック エスカレーションが発生する可能性あり 作業単位内で参照した結果行への更新処理が不可能高い同時稼動性と結果行の保持 幻像読み取りが発生すること カーソルがおかれた行への更新処理は不可能コミット行のみを照会する場合において最高の同時稼動性反復不可能読み取りと幻像読み取りが発生すること 行にはロックを取得しない 更新時の照会処理のロックはCSと同じ更新時の照会処理のロックはCSと同じロックの負荷がない同時稼動性が高い 更新処理時のロックは CS と同じ DROP/CREATE 中の表 視点 索引にはアクセス不可能 6

ISOLATION レベルの設定 アプリケーションのタイプによる ISOLATION レベルの選択 アプリケーション要件により ISOLATION レベルを選択する 設定方法埋め込み SQL PREP/BIND コマンドの ISOLATION オプション (BIND 時に指定しない場合には PREP 時の設定が有効となる ) CLI ODBC アプリケーション db2cli.ini ファイルに設定する方法 TXNISOLATION = 1 2 8 16 32 ( 1:UR 2:CS 8:RR 16:RS 32:NC *NC は AS/400 版のみ ) アプリケーションで設定する方法 SQL_SetConnectAttr() のSQL_ATTR_TXN_ISOLATIONオプションまたは SQL_SetStmtAttr() の SQL_ATTR_STMTTXN_ISOLATION オプション UR: SQL_TXN_READ_UNCOMMITTED CS: SQL_TXN_READ_COMMITED RS: SQL_TXN_REPEATABLE_READ RR: SQL_TXN_SERIALIZABLE NC: SQL_TXN_NOCOMMIT CLP( コマンド行プロセッサー ) CHANGE ISOLATION TO [ CS RR RS UR NC ] SQL 文に WITH 指定 (V7.2 新機能 ) 7

ブランク ページです 8

ロックのモード ロックのモード 排他制御を行うために ロックに与えられた性質 ISOLATION( 分離レベル ) とアクセス パスによりロック モードが決まる 大別すると 共用 (Shared) ロックと排他 (Exclusive) ロック 共用 (Shared)) ロック : 照会処理時に取得されるロック 排他 (Exclusive) ロック : 更新処理時に取得されるロック 取得要求されたロック 取得済みのロック排他 (X) 共用 (S) 排他 (X) 共用 (S) 〇 〇 : 取得可能 : 取得不可能 12 のロック モード 照会系のロック :IN(Intent None), IS(Intent Share), NS(Next Key Share), S(Share) 更新系のロック :IX(Intent Exclusive), SIX(Share with Intent Exclusive), U(Update), NX(Next Key Exclusive), NW(Next Key Weak Exclusive), X(Exclusive), W(Weak Excl;usive), Z(Superxclusive) (* 排他性の低い順に列挙 ) 9

解説 : ロックのモードと処理厳密には さらに ISOLATION とアクセス パスによりロックの対象とモードが変化する表スペースにとられるロック :IN,IS,IX,Z モード 対象 このモードで表ロックが取得された時の同一トランザクションからの行ロックこのモードでロックが取得されるケース IN 表 行ロックは取得しない URで照会時の表ロック IS 表 S,NS 行ロック RR,RS,CSで照会時の表ロック NS 行 RS,CSで照会時の行ロック S 行表 行ロックは取得しない RRで照会時の行ロック表単位でロックが取得される場合の 照会時の表ロック IX 表 照会行にS,NS,U 更新行にX 更新時またはFOR UPDATEカーソルでの照会時の表ロック SIX 表 照会行にロックなし更新行にX 行ロック 同一トランザクション内で 既にSを取得している表にIXロック または既にIXを取得している表にSロックの取得要求が発生し U 行表 行ロックは取得しない た場合の表ロック FOR UPDATEカーソルでの照会時の行または表ロック更新時にはXロックに変わる表単位でロックが取得される場合の FOR UPDATEカーソルで照会処理時の表ロック NX 行 カタログ表をUPDATE/DELETEした時に 更新行の次の行をロック (V5+FP7 以降 V6) ユーザー表ををUPDATE/DELETEした時に 更新行の次の行をロック (V5+FP6) NW 行 カタログ表以外の表の索引にINSERTした行の次の行を瞬間的にロック X 行表 行ロックは取得しない 更新時の行ロック表単位でロックが取得される場合の 更新時の表ロック W 行 カタログ表以外の表の索引にINSERTした時の行ロック Z 表 特定の状況下で取得 ( 表のALTER,DROP,REORG, 索引のCREATE,DROP) 10

アクセス パス & 処理内容とロック モードの関係 照会処理時のロック モードは アクセス パスおよび処理内容により決定されます 以下の表は アクセス パスおよび処理内容と 決定されるロック モードとの関係を示しています Read-Onlly: 読み取りのみの照会処理の時 Intent to change: FOR UPDATE 付きのカーソルによる照会処理の時 Change: INSERT/DELETE/UPDATEの際に行われる照会処理の時 (WHERE CURRENT CURSOR OFは指定されていない ) 表スキャンのロック モード 条件節なしの表スキャン ISOLATION LEVEL Read-Only ( 読み取りのみの照会時 ) Intent to change (FOR UPDATE 付きカーソルでの照会時 ) Change ( 更新時 ) RR S( 表 ) U( 表 ) X( 表 ) RS IS( 表 )/NS( 行 ) IX( 表 )/U( 行 ) IX( 表 )/X( 行 ) CS IS( 表 )/NS( 行 ) IX( 表 )/U( 行 ) IX( 表 )/X( 行 ) UR IN( 表 ) IX( 表 )/U( 行 ) IX( 表 )/X( 行 ) 11

解説 : 下記の table/view を事前作成 SQLLIB\MISC\EXPLAIN.DDL を対象データベースに対して実行 VIEW を作成 create view exp_locks as select operator_type,argument_type,substr(argument_value,1,30) as argument_value from explain_argument,explain_operator where explain_argument.operator_id = explain_operator.operator_id and ( argument_type = 'ROWLOCK' OR argument_type = 'TABLOCK' ); テスト用 Table を作成 connect to v7db Database Connection Information Database server = DB2/NT 7.2.0 SQL authorization ID = AZUMA Local database alias = V7DB DROP TABLE TEST_SOURCE CREATE TABLE TEST_SOURCE (ROW_NUMBER SMALLINT NOT NULL, TEST_DATA SMALLINT, DESCRIPTION CHAR(20)) INSERT INTO TEST_SOURCE VALUES (1,1,'this is row1') INSERT INTO TEST_SOURCE VALUES (2,2,'this is row2') INSERT INTO TEST_SOURCE VALUES (3,3,'this is row3') INSERT INTO TEST_SOURCE VALUES (4,4,'this is row4') INSERT INTO TEST_SOURCE VALUES (5,5,'this is row5') INSERT INTO TEST_SOURCE VALUES (6,6,'this is row6') 12

解説 : Read-Only の読み取り (SELECT WITH UR) -- ---------------------------------------------------------------------- -- START OF TESTCASE: Select no predicate -- -- ---------------------------------------------------------------------- set current explain mode explain select * from test_source for fetch only with ur SQL0217W The statement was not executed as only Explain information requests are being processed. SQLSTATE=01604 set current explain mode no select * from exp_locks OPERATOR_TYPE ARGUMENT_TYPE ARGUMENT_VALUE ------------- ------------- ------------------------------ TBSCAN ROWLOCK NONE TBSCAN TABLOCK INTENT NONE 2 record(s) selected. delete from explain_instance set current explain mode explain select * from test_source for fetch only with cs SQL0217W The statement was not executed as only Explain information requests are being processed. SQLSTATE=01604 set current explain mode no 13

解説 : Read-Only の読み取り (SELECT WITH CS,RS,) select * from exp_locks OPERATOR_TYPE ARGUMENT_TYPE ARGUMENT_VALUE ------------- ------------- ------------------------------ TBSCAN ROWLOCK NEXT KEY SHARE TBSCAN TABLOCK INTENT SHARE 2 record(s) selected. delete from explain_instance set current explain mode explain select * from test_source for fetch only with rs SQL0217W The statement was not executed as only Explain information requests are being processed. SQLSTATE=01604 set current explain mode no select * from exp_locks OPERATOR_TYPE ARGUMENT_TYPE ARGUMENT_VALUE ------------- ------------- ------------------------------ TBSCAN ROWLOCK NEXT KEY SHARE TBSCAN TABLOCK INTENT SHARE 2 record(s) selected. delete from explain_instance set current explain mode explain 14

解説 : Read-Only の読み取り (SELECT WITH RR,) select * from test_source for fetch only with rr SQL0217W The statement was not executed as only Explain information requests are being processed. SQLSTATE=01604 set current explain mode no select * from exp_locks OPERATOR_TYPE ARGUMENT_TYPE ARGUMENT_VALUE ------------- ------------- ------------------------------ TBSCAN ROWLOCK NONE TBSCAN TABLOCK SHARE 2 record(s) selected. delete from explain_instance 15

FOR UPDATE 付きカーソルでの照会時 (WITH UR) -- ---------------------------------------------------------------------- -- START OF TESTCASE: Select for Update -- -- ---------------------------------------------------------------------- set current explain mode explain select * from test_source for update of test_data with ur SQL0217W The statement was not executed as only Explain information requests are being processed. SQLSTATE=01604 set current explain mode no select * from exp_locks OPERATOR_TYPE ARGUMENT_TYPE ARGUMENT_VALUE ------------- ------------- ------------------------------ TBSCAN ROWLOCK UPDATE TBSCAN TABLOCK INTENT EXCLUSIVE 2 record(s) selected. delete from explain_instance 16

FOR UPDATE 付きカーソルでの照会時 (WITH CS, RS) set current explain mode explain select * from test_source for update of test_data with cs SQL0217W The statement was not executed as only Explain information requests are being processed. SQLSTATE=01604 set current explain mode no select * from exp_locks OPERATOR_TYPE ARGUMENT_TYPE ARGUMENT_VALUE ------------- ------------- ------------------------------ TBSCAN ROWLOCK UPDATE TBSCAN TABLOCK INTENT EXCLUSIVE 2 record(s) selected. delete from explain_instance set current explain mode explain select * from test_source for update of test_data with rs SQL0217W The statement was not executed as only Explain information requests are being processed. SQLSTATE=01604 set current explain mode no select * from exp_locks OPERATOR_TYPE ARGUMENT_TYPE ARGUMENT_VALUE ------------- ------------- ------------------------------ TBSCAN ROWLOCK UPDATE TBSCAN TABLOCK INTENT EXCLUSIVE 2 record(s) selected. 17

FOR UPDATE 付きカーソルでの照会時 (WITH RR) set current explain mode explain select * from test_source for for update of test_data with rr SQL0217W The statement was not executed as only Explain information requests are being processed. SQLSTATE=01604 set current explain mode no select * from exp_locks OPERATOR_TYPE ARGUMENT_TYPE ARGUMENT_VALUE ------------- ------------- ------------------------------ TBSCAN ROWLOCK NONE TBSCAN TABLOCK UPDATE 2 record(s) selected. delete from explain_instance 18

更新時 (WITH UR) -- ---------------------------------------------------------------------- -- START OF TESTCASE: Update with no Predicate -- -- ---------------------------------------------------------------------- set current explain mode explain update test_source set test_data=test_data+1 with ur SQL0217W The statement was not executed as only Explain information requests are being processed. SQLSTATE=01604 set current explain mode no select * from exp_locks OPERATOR_TYPE ARGUMENT_TYPE ARGUMENT_VALUE ------------- ------------- ------------------------------ TBSCAN ROWLOCK EXCLUSIVE TBSCAN TABLOCK INTENT EXCLUSIVE 2 record(s) selected. delete from explain_instance 19

更新時 (WITH CS,RS) set current explain mode explain update test_source set test_data=test_data+1 with cs SQL0217W The statement was not executed as only Explain information requests are being processed. SQLSTATE=01604 set current explain mode no select * from exp_locks OPERATOR_TYPE ARGUMENT_TYPE ARGUMENT_VALUE ------------- ------------- ------------------------------ TBSCAN ROWLOCK EXCLUSIVE TBSCAN TABLOCK INTENT EXCLUSIVE 2 record(s) selected. delete from explain_instance set current explain mode explain update test_source set test_data=test_data+1 with rs SQL0217W The statement was not executed as only Explain information requests are being processed. SQLSTATE=01604 set current explain mode no select * from exp_locks OPERATOR_TYPE ARGUMENT_TYPE ARGUMENT_VALUE ------------- ------------- ------------------------------ TBSCAN ROWLOCK EXCLUSIVE TBSCAN TABLOCK INTENT EXCLUSIVE 2 record(s) selected. 20

更新時 (WITH RR) set current explain mode explain update test_source set test_data=test_data+1 with rr SQL0217W The statement was not executed as only Explain information requests are being processed. SQLSTATE=01604 set current explain mode no select * from exp_locks OPERATOR_TYPE ARGUMENT_TYPE ARGUMENT_VALUE ------------- ------------- ------------------------------ TBSCAN ROWLOCK NONE TBSCAN TABLOCK EXCLUSIVE 2 record(s) selected. delete from explain_instance 21

ブランク ページです 22

SQL ステートメント Level ISOLATIO 考慮点 SQL ストアードプロシージャーからの使用も可能 使用可能なステートメント例 - SELECT INTO - searched DELETE - INSERT - searched UPDATE - FOR statement - DECLARE CURSOR statement with UR を使用する場合は要注意 Macro PSM からは使用できない SQLCODE -104 が返される 23

解説 : SQL Procedure からの使用の場合の注意点 1 Appl1 UPDATE 1.Appl1 がレコード 1 を UPDATE 2.Appl2 がレコード 1 を UR で読み込む SQL Stored プロシージャーを Call すると Lock-Wait レコード 1 X ロック 3 レコード 2 LOCKTIMEOUT Lock-Wait NS ロック取得要求?? -911 RC=68 2 Appl2 CALL RSET() FOR FETCH ONLY や ORDER BY を明示的に SQL プロシージャーに書かない場合には UR->CS へ自動的に変換されてしまう create procedure rset () RESULT SETS 10 SPECIFIC RSET LANGUAGE SQL READS SQL DATA BEGIN DECLARE c1 CURSOR WITH RETURN TO CALLER FOR SELECT test_data,description FROM TEST_SOURCE with ur; open c1; END$ 24