2011/04/18

access2010 Webデータベース その26 もうひとつのフィールド数制限

** Office365beta(プランP1) 環境 **
Webテーブルには、もうひとつのフィールド数制限がある。
メッセージ内容だとよくわからない
accessテーブルに使用できるフィールドの最大値は255。これに加え、Webテーブルには別の制限がある。これはSharePoint Serverの仕様によるもの。レコードが多くなった場合、パフォーマンスに影響することらしいから、認識したうえで設計をしておいたほうがよいのだろう。

小難しい理屈については、大容量リストの設計とリスト パフォーマンスの最大化の[行の折り返し]を読むとよくわかる。データがSQL Serverのテーブルに格納されるとき、Webテーブルと同じ定義のテーブルが使われるのではなく、予め定義されている行を使って内部テーブルに格納されていて、
列タイプ
1 テーブル行の列数
1 行テキスト
または
選択 および複数行テキスト
64

32
日付と時刻
8
Yes/No
16
数値および通貨
12
集計値 (他の列を基にした計算結果)
8
整数、単一値 の参照 ユーザーまたはグループ 管理されたメタデータ
16
一意識別子
1
その内部テーブル1行について、フィールドタイプ(列タイプ)ごとの最大数がある。いずれかが最大数を超えるとき行が追加され、行数の制限値は6(既定値)になっているようだ。
Webテーブルの最大フィールド数は255。だが、そのうち日付/時刻型フィールドは、48フィールドまでしか持てない。行あたり8列で6行までという制限だから、8*6=48が日付/時刻型の最大フィールド数ということになる。
日付/時刻型が48フィールドあるなんてことは滅多にないのだけど、8以下に抑えておけば行の折り返しが発生せず、レコード数が増えていってもパフォーマンス低下が抑制できるということだろう。

0 件のコメント: