• 締切済み

データベースの初期サイズ

基本的なことなのですが、データベースの初期サイズはだいたいどのくらい確保すればいいものなのでしょうか。 フィールドごとにデータ型のバイト数×レコード数で計算していけばいいのでしょうが、例えば導入後月1000レコードずつ増えていくと想定される場合、どのくらいのレコード数を目処にすればいいのでしょうか。 その際、トランザクションログのサイズはどのくらいとればいいのでしょうか。 あまりサイズが小さすぎると自動拡張を有効にしていた場合、それにより負荷がかかってしまうと聞いたのですが・・。

みんなの回答

  • kokegon
  • ベストアンサー率78% (22/28)
回答No.2

どれぐらいの領域を確保すべきかというのは、一概には言えないですね。ハードウェアの構成なども絡んできます。 基本的には確保できるだけ確保してください。 ただし、システムDB や tempdb の分のサイズも残してください。システムDB は約 60MB temdb はシステムの発行する SQL 次第です。大規模なソートを行う場合は多めに残してください。 次に OS と同じパーティションに保存する場合(推奨しません)は ページファイルの最大サイズの分も残してあげてください。 推奨としては、データファイル専用ディスクに配置してできるだけ領域確保する。もし足りなくなったらディスクを追加してそこにも領域を確保する。こんな感じにすれば間違いないと思います。

  • kokegon
  • ベストアンサー率78% (22/28)
回答No.1

一番ベストな方法は、事前にデータのサイジングをきっちり行ったうえでそれをもとに領域確保することです。 ただし、万が一その領域がいっぱいになってしまったら SQL Server はストップしてしまいます。よって保険的な意味あいで自動拡張をしておくとよいと思います。 また、拡張の単位を % で設定しておくと最後のほうには一気に大量の領域を確保することになるのでサイズ指定のほうがよいと思われます。 テーブルのサイズは厳密に計るのは至難の業です ざっくりとしたテーブルのサイズの計算方法ですが 1レコードを 8KB で計算すれば少なく見積もることはない思います。インデックスはテーブルサイズの 30% って感じです。この計算方法はあくまで目安でお願いします。 トランザクションログのサイズはシステムの処理の内容に非常に依存するので実測に基づいて調整するのがよいと思います。 サイズに関して正直なところキリが無いので下手に悩むより拡張性のあるシステム構成にするのがよいと思います。

kim_chi
質問者

お礼

回答ありがとうございます。 となると、例えば1月に1000レコード追加されるテーブルが1個だけ存在するとした場合、どのくらいの期間の分、サイズを確保しておけばよろしいでしょうか。 それとも、あまり細かく気にしなくていい部分なのでしょうか。自動拡張が繰り返されると余計な負荷になってしまうと聞き、悩んでいるのですが。

関連するQ&A