SSブログ

SnapShot分離レベルについて [SQL Server]

SQL Server 2005から投入されたSnapShot分離レベルですが、
平たく言えばOracleでいうところの読み取り一貫性を実装する機能です。

Oracleでは読み取り一貫性をUndoセグメント(ロールバックセグメント)
を使って実装していますが、SQL Serverでは同じことをtempdbを
使って実装しています。

ここで疑問が。
OracleはUndo表領域とTemp表領域は別物です。
SQL Serverは二つともtempdbに納めます。

物理配置や可用性を考えるとOracleの実装が正しいでしょう。

SQL Serverではなぜtemp領域とbefore image格納先を
同じところにしてしまったのでしょうか。
限界までバリバリ使うとそこがネックになりそうなものです。

Oracleを使っているとスナップショットが古すぎます、とか
UNDOに負荷がかかると色々出てくるものですが、
そこまでSQLは見込んでいない気がします。

さてこれはネガティブな視点。
ポジティブに見るとOracleの開発者が容易に入り込みやすい、
といったメリットがあるのではないかと思います。
またOracleと同じになるということで読み取りにまつわる
ロック待ちが解消されることでしょう。

2008でもtempdbに格納だったと思うんですが
オプションで別なDBに格納できるようになると嬉しいかも。
2011?あたりで実装されたりして。


nice!(0)  コメント(0)  トラックバック(0) 
共通テーマ:仕事

nice! 0

コメント 0

コメントを書く

お名前:[必須]
URL:[必須]
コメント:
画像認証:
下の画像に表示されている文字を入力してください。

トラックバック 0

知らなかった単語メンテナンス ブログトップ

この広告は前回の更新から一定期間経過したブログに表示されています。更新すると自動で解除されます。