メモリ所容量(参考)

テーブルのメモリ所容量(参考値)を図1のグラフに示します。ESPERiCにはREALテーブル(値を保持するテーブル)とJOINテーブル(ビューテーブル)の2種類がありますが、ここではメモリを多く消費するREALテーブルを取り上げています。

測定に使用したデータは下記のもので、データ行数は 100万行、500万行、1,000万行、5,000万行、1億行です。
・整数:4項目
・文字列:4項目(英数字のみ、平均54文字)
・日付:2項目
各項目共 カーディナリティは100(全てユニークな値)です。

図1 REALテーブルのメモリ所容量

REALテーブルのメモリ所容量に影響する要因は データ行数、テーブルの項目数、項目のデータ型(整数、浮動小数、文字列、日付・時間)の他に次のものがあります。
・カーディナリティが小さくなればメモリ所容量は少なくなる。
・文字列項目に日本語がある場合、メモリ所容量は文字数の3倍(バイト)になる。

ここで示したREALテーブルのメモリ所容量は静的なもので、このテーブルをどの様に操作するかによってメモリ所容量は増加します。例えば、テーブル・項目を複製すればテーブル・項目の所要メモリ量は2倍になり、ジョイン・ユニオンは横方向(項目)・縦方向(行数)に広がりテーブルの所要メモリ量が増加します。検索やソートはサブセットが作成され、その分のメモリ所容量が増えます。また、プログラムをロードするメモリ領域や作業メモリ領域も必要で その容量も加算されます。
実際にどれだけのメモリを消費するかは 実行時にリソースモニター等で調べることができます。

ページ上部へ戻る