Oracle11g新機能(1Z0-050)の試験に向けて勉強を開始したkです。
ここで書くのも何なのですが、勉強していて気になった点がありました。
11gにはLOBの新ストレージ・フォーマットであるSecureFilesというのがあるのですが、
そこの説明で「表作成時の非重複(ストレージ共有)」というのがあります。
具体的には、
表作成時に"DEDUPLICATE"オプションを使用すると、「LOB列内の2つ以上の行の同一LOBデータ間で、すべて同じデータ・ブロックが共有されるように指定できる」とあります。
重複除外によって「データベースは同一の内容のSecureFileを単一のコピーに結合し、記憶域を削減して記憶域管理を簡素化する」というのは理解できるのですが、そのLOBの列を更新すると共有していたそれぞれの列の向き先(ポインタ?)はどうなるんだろう?と思いました。
マニュアル等を調べてみましたが、それらしい答えが見つかりませんでした。。。
常識でいくと「ある行で更新されたら、全ての行の向き先の値も変わる」と思うのですが、それってどうなんでしょうね?
"読み取り専用のテーブルでデータ格納のみであり、LOBの領域削減のための機能です"と言われれば、そっか、って話なんですけどね。
自分で環境作って試してみるしかないかな?
参考URL
:Oracle Database SecureFilesおよびラージ・オブジェクト開発者ガイド
:SecureFilesによるパフォーマンスの向上、ストレージの最大化、およびセキュリティの強化 - Oracle by Example
:Oracle by Exampleシリーズ: Oracle Database 11g