内容へ移動
nabezo wiki
ユーザ用ツール
ログイン
サイト用ツール
検索
ツール
文書の表示
以前のリビジョン
バックリンク
最近の変更
メディアマネージャー
サイトマップ
ログイン
>
最近の変更
メディアマネージャー
サイトマップ
トレース:
スナップショット分離
この文書は読取専用です。文書のソースを閲覧することは可能ですが、変更はできません。もし変更したい場合は管理者に連絡してください。
====== トランザクションの分離 ====== http://www.interdb.jp/techinfo/postgresql/p-2-07.html =====データベースの読み取り一貫性を保つため、===== SQLServerでは、以下のようになっている。 http://technet.microsoft.com/ja-jp/sqlserver/gg639075 =====レベル ===== SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED 他のトランザクションでデーター更新中でも読み込みできる. 更新の途中で読み込んでしまう可能性があるので, 例えば半分だけ更新されていて半分は更新されていないデーターを取得してしまうなど 一貫性がないデーターになる場合がある(ダーティ リード). SET TRANSACTION ISOLATION LEVEL READ COMMITTED データー更新か終わるまで待ってから読み込む. 読み込み中に他でデーター更新することは可能. ※SQL Serverの規定値. SET TRANSACTION ISOLATION LEVEL REPEATABLE READ データー更新か終わるまで待ってから読み込む. 読み込み中に他でデーター更新することはできない. 他で行を挿入することは可能. 必要なときだけ使う. SET TRANSACTION ISOLATION LEVEL SERIALIZABLE データー更新か終わるまで待ってから読み込む. 読み込み中に他でデーター更新することはできない. 他で行を挿入することもできない. どうしても必要なときだけ使う. SQL Server 2005以降は以下のSNAPSHOTも使える. READ_COMMITTED_SNAPSHOT ON SELECTステートメント発行時点での正しいデーターを読み込む. (ステートメント レベル) SET TRANSACTION ISOLATION LEVEL SNAPSHOT トランザクション開始時点に存在したデーターを読み込む. (トランザクション レベル) ALLOW_SNAPSHOT_ISOLATION を ON に設定しておく必要がある これらは更新中も読み込みでき一貫性も保たれるが, 行サイズが大きく、更新の多いデータベースの場合は、 tempdb「Version Store」 の利用頻度増大や肥大化の悪影響がある. トランザクションが開始された後にトランザクションの分離レベルをスナップショットに変更することはできません ↑ =====スナップショット分離===== 現在のセッションがスナップショット分離かどうかの判定 select transaction_isolation_level ,* from sys.dm_exec_sessions where session_id = @@SPID; transaction_isolation_levelが2ならread committed,5ならsnapshot =====IISの場合===== IIS+SQLServer の場合、コネクションプーリングが有効なので set transaction isolation level snapshot とした場合、 自分でread committed にもどさないといけない。
スナップショット分離.txt
· 最終更新: 2019/06/30 12:22 by
127.0.0.1
ページ用ツール
文書の表示
以前のリビジョン
バックリンク
文書の先頭へ