OBERをトコトン極める

データベース設計はサイズ予測が肝心

  • 2018.01.15
  • 株式会社システムインテグレータ
データベース設計はサイズ予測が肝心

テーブル作成ばかりがデータベース設計じゃない

こんにちは、皆さん頑張って設計していますか?

ここまでSI Object Browser ER(以下OBER)を使用し、エンティティとリレーションシップを駆使して効率よくデータベース設計する方法をいろいろとご紹介してきました。しかし、データベース設計にはテーブルなどオブジェクトばかりでなく、もう一つ考えなければならないことがあります。それは、データサイズです。

システムが稼働したら、日々大量のデータが投入されますが、それを格納する領域についておろそかにしていると、後で大変苦労をすることになります。

dbsize1.png

数年後にストレージが・・・

Oracleなどデータベースには、データを格納する領域があります。作成時にサイズを設定するのですが、だんだんデータが増えていくと、この領域を圧迫します。そのうち足りなくなってしまいますが、領域を手動で拡張したり、自動拡張設定もできたりと、それほど気にすることはありません。

ただし、データベースがインストールされている物理的なストレージはそう簡単にはいきません。万が一ハードディスクの容量が足りなくなってしまった場合、その拡張作業はとても手間がかかります。データ退避やストレージの追加、場合によっては新しくデータベースを立て直すなど、コストもそれなりに発生することでしょう。

近年ではCloud環境の利用も増え、昔ほどストレージの拡張は難しくなくなりましたが、データベース設計時点で将来のデータ量を予測し、ストレージサイズを確保することはとても重要になります。

テーブル設計と合わせてデータサイズを予測

テーブル設計が終わったら、その段階でデータサイズを見積もっておくのが理想です。
大まかにいえばレコード長、初期データ量、年間増加予定データ量などを駆使して計算するのですが・・・
ちょっと面倒ですね。そんな時はOBERの「データサイズの見積」機能を使いましょう。

「データサイズの見積」を使ってデータベースのサイズを設計

「データサイズの見積」機能は、その名の通りデータベースのサイズを予測してくれる機能です。
下図赤枠の、初期件数、年間件数(年間に投入されるデータ件数の予測値)を入力し、見積ボタンを押すだけで、五年先までのデータサイズを予測することができます。Oracleを例に、実際に見積もってみましょう。

メニューバー「ツール」 → 「データサイズの見積」 と選択していきます。

画面を開くと、モデルに配置されているエンティティと、その実データ長が表示されています。ここに、初期件数、年間件数を入力しましょう。

dbsize2.png

初期件数と年間件数を入力

 
今回はブロックサイズ、PCTFREE、INITRANSの値はデフォルト値を使用します。可変長データ比率は40%としました。可変長データ比率とは、nvarchar2などの可変長データ型にどの程度データが入っているかの想定値です。後は見積ボタンを押すだけです。

dbsize3.png

1年ごとに5年先まで表示


あっという間に1年ごとに5年先までのデータ予測値を見積もることができました。見積もり対象が既存データベースの場合、「DBから初期件数を取得する」ボタンを押せば、テーブルごとに現在のデータ件数をセットすることも可能です。また、結果はEXCELに出力することもできます。

dbsize4.png

結果をEXCELに出力

まとめ データサイズ見積もりは余裕をもって

データベース設計は初期段階でデータサイズ見積もりまで行なったほうが、のちのち面倒なことにならずに済みます。また、拡張が比較的簡単なCloud環境であっても初年度のサイズや拡張スケジュールの目安が立てやすくなります。

また、見積もりは常に余裕をもって行うことが重要です。今回の例では5年後に約600MBになると予測されましたが、見積もりギリギリのストレージサイズにして、結果、容量不足に陥ってしまっては意味がありませんので、計算結果の10~20%の余裕を見る、あるいは年間件数を少し多めにみておくなどすると安心です。なにごとも余裕を持ってよりよいデータベースライフを送りましょう。

SI Object Browser ER ガイドブック

SI Object Browser 製品カタログ