2017-01-10 13 views
1

今日、私は新しいプロジェクトのためにDBサイズを予測するためにビジネスからの新しい要件を得ました。SQL ServerでDBサイズを予測する

事前にDBサイズを予測する方法はありますか?

エクセルからDBにデータをインポートする製品があります。最大サイズは、500カラムと15000ローのようなものです。

したがって、予測式を作成して、除外されたDBサイズを検索する必要があります。たとえば、クライアントがDATA 500列と15000行をアップロードした場合、例外サイズは500 * 1500になりますが、正確なサイズではありません。

+0

我々はDBを予測する必要があるように、我々は、SQL Expressのエディションを使用していますソフトウェアをクライアントにインストールする前のサイズ – nirav

+4

本当に予定していますか? 1つのテーブルに500の列を持っていますか?スキーマを最初に適切に計画する(正規化)と、いくらかのスペースを節約できます。 – alroc

+0

Excelファイルをアップロード中に列の制限がありません。データをアップロードした後、データを列から行に変換するためです。 – nirav

答えて

5

列数では不十分です。データ型とデータ長を知る必要があります。

この情報を使用すると、最悪の場合のシナリオを列に必要な最大記憶域を合計して計算できます。たとえば、NVARCHAR(20)には、長さが20文字の文字列を格納する場合、40 bytesが必要です。

これに行数を掛けます(これは以前の情報に基づいて推測された推測です)。

これはおおよその増加です。ここで

は一例です:

あなたはこれらの列があります。

  • ID INT
  • 名前NVARCHAR(64)
  • 説明NVARCHAR(256)

あなたの行サイズが4バイト+です128バイト+ 512バイト= 644バイト /行。

これは最悪の場合のシナリオですが、実際には平均値はそれ以下です。

オーバーヘッドがあり、インデックス、ログファイル、バックアップスペースなどを考慮する必要がありますが、ストレージスペースが必要です。あなたが言及したので

が、これはSQL Server Expressインスタンスになることは、DBサイズのハードリミットを持っている(多かれ少なかれデータとインデックスのサイズの合計):

  • のMicrosoft SQL Server 2008 Expressの:4ギガバイト
  • のMicrosoft SQL Server 2008 R2 Expressの場合:10ギガバイト
  • のMicrosoft SQL Server 2012の:10ギガバイト
  • のMicrosoft SQL Server 2014のExpressの場合:10ギガバイト

資源:

+0

...バックアップスペース、必要なアーカイブ容量、インデックスの再作成、tempdbの増加量(トラフィックとクエリの量に基づいて)を考慮してください。 –

+0

ええ、@MK_は正しいです、上記の計算は、より多くのスペースが必要なものは、生の記憶スペース、ログファイル、バックアップ、インデックスだけです。 – Pred

+0

@MK_これらは確かに* server *の容量計画で考慮する必要がある要因ですが、インデックススペースの他にSQL Server Express Editionの10GBサイズ制限にはカウントされません。 – alroc

関連する問題