★★★:よくある

データベースを作成したい!」ではデータベースの作り方と、DATファイルとCRXファイルについてご紹介しました。

今回はデータベースの設定にあるDATメモリサイズとCRXメモリサイズの適切な設定値についてご紹介します。

[復習] DATファイルとCRXファイル

まずは復習になりますが、Dr.Sumにデータを投入すると「DAT」と「CRX」という拡張子のファイルに分けて格納されます。

CRXファイルとDATファイル

CRXは辞書のようなイメージで値の実態が格納されます。同じデータは一度しか格納されず、重複したデータはDATから複数回参照されます。
DATファイルは各データの位置情報がテーブルのように格納されます。値は直接保持せず、表示や集計する時はCRXファイルの値を参照します。

メモリの設定はこの「DATファイル」と「CRXファイル」に対してそれぞれ行ないます。

「DAT」ファイル、「CRX」ファイルのサイズを元にメモリの値を設定

最も処理速度が早いのはメモリにファイルサイズの合計分を全てロードしてしまうことなので以下の設定値になります。
サーバのメモリ容量に余裕があったり、データ量が少ない場合はこの設定でOKかと思います。

DAT メモリサイズ = DAT ファイル合計サイズ
CRX メモリサイズ = CRX ファイル合計サイズ

エクスプローラーでデータベースのフォルダを開き、拡張子の種類でソートすると簡単に合計サイズを確認できますね。

DAT CRX確認方法

ただメモリに全てロードできることは稀なケースで、実際にはデータの一部をロードするのが現実的ですね。
例えば5年分の売上のデータがあり、よく見るのは直近1年分なのでここだけメモリにロードしておこうといった使い方になると思います。
この場合は以下の設定値になります。

DAT メモリサイズ = DAT ファイル合計サイズ * 1/5
CRX メモリサイズ = CRX ファイル合計サイズ * 1/5

共有メモリヒット率を元に調整する方法

こちらは運用を開始してから調整する方法です。
データベースを右クリック[データファイル情報]から[共有メモリヒット率]を確認することができます。

データファイル情報

利用回数と要求回数が概ね等しい場合、Dr.Sumが管理する共有メモリ領域からほぼすべて読み込みできています。

これがもし利用回数よりも要求回数の方が著しく大きい場合、共有メモリのサイズが小さい可能性がありますので、メモリ割当の増加を検討してください。

データベースを作成する際、動作が遅いかもと感じたら思い出してくださいね!