- PR -

SQLServer2005におけるデータベース設計書の作成について

1
投稿者投稿内容
メガネふくろうさん。
会議室デビュー日: 2007/10/07
投稿数: 2
投稿日時: 2007-10-07 19:35
みなさま、始めまして。
みなさまのお知恵を拝借したく投稿いたしました。

ただいま、SQLServer2005を実装したデータベースサーバを構築中です。
ディスクサイジングを実施中で、データベース部分のサイジングのもととなる設計書を作成しておるところなのですが、xml型データの領域(物理バイト数)についてどのように定義していいものかわからず1レコードバイト数が特定できなくて困っております。
xmlをテキストと同様に扱うのであればxmlの実容量を定義すればよいのでしょうか(となると、当該テーブルの1レコードが128KB越してしまいます)。
また、SQLServer2005におけるxml型データはポインタ位置をカラムに格納して、抽出時にポインタで指示されたxmlデータを表示する機能があるから、そんなに大量のレコード領域は必要ないとかいう話も社内であり、ちょっと混乱しています。

そもそも、xml型データを扱う場合のデータベース設計書の定義方法がいままでの物理容量式設計と異なるのかも含めてご教授いただけたらと思います。

もし、本件の内容がこの会議室にそぐわない場合は、該当する会議室をご指示いただけたらと思います。

また、足りない情報等ありましたらお知らせいただければと思います。

よろしくお願い申し上げます。
Anthyhime
ぬし
会議室デビュー日: 2002/09/10
投稿数: 437
投稿日時: 2007-10-08 18:34
http://technet.microsoft.com/ja-jp/library/ms191497.aspx

「XML インスタンスは、BLOB (バイナリ ラージ オブジェクト) として xml 型の列に格納されます。これらの XML インスタンスは大きくなる可能性がありますが、xml データ型インスタンスをバイナリ表記したものを最大 2 GB まで格納できます。インデックスを設定しない場合、クエリを評価するためにこのようなバイナリ ラージ オブジェクトが実行時に細分化されます。この細分化には時間がかかる場合があります。」

ということですので、BLOBの見積もりを使えばよいかと思います。
メガネふくろうさん。
会議室デビュー日: 2007/10/07
投稿数: 2
投稿日時: 2007-10-09 13:28
Anthyhimeさん:

お早い返信ありがとうございます。
なるほど、BLOBの見積もりを採用するですか。

テーブル作成する分には、create table T1(colint int primary key, colxml xml) でいいとは理解していたのですが、実バイトとしては、bigint=8Bytesや、datetime=4Bytesと同じ感じで暗黙のバイト数が存在すると思ってました。
実レコード長を決めるにはもう少し深く掘り下げないといけないんですね。

xmlインスタンスをBLOB化したときの実バイト数を求めてみます。
もし、方向が間違っていたらご指摘ください。

どうも、ありがとうございました。
1

スキルアップ/キャリアアップ(JOB@IT)