一部のSQLServer AnalysisServices用のSQLデータウェアハウスのセットアップを開始する準備ができました。スライスしてダイスするデータは、私が管理していないオフサイトデータベースに存在するため、定期的なジョブを設定して、新しいエントリを取得し、自分のバージョンのに挿入することを考えています。テーブル。
データベースのスペース要件を計画するのに役立つ優れたツールがあるかどうか疑問に思っています。私が興味を持っているテーブルは、わずか5か月で、すでに450万件近くのレコードを取得しており、来年のこの時点までに、月に300万から400万件のレコードを生成できると予測しています。
私が探しているのは、テーブル定義をフィードして、10億行に必要なディスク容量を教えてくれるものだと思います。
ありがとう。
編集
さて、Excelを使用して、varchar(1000)がすべての単一レコードで最大で使用されるという最悪のシナリオを使用して、レコードあたり理論的に1098バイトを考え出しました。
1か月あたり400万レコードで、1年あたり4800万レコードであり、最悪の場合、1年あたり50ギガのディスク容量が必要です。これをvarchar(255)にドロップすると、年間16ギガではなく、varchar(50)では年間約6.5ギグになります。
私よりも優れたDBAを持っている人がいて、私が拠点から離れているかどうかを教えてください。
編集#2
ここで要求されているのは、テーブルの定義です。
Type Size
int 4
int 4
int 4
datetime 8
Decimal(19,5) 9
int 4
int 4
varchar(1000) 1000
int 4
int 4
smalldatetime 4
int 4
int 4
int 4
int 4
decimal(9,2) 5
smallint 2
datetime 8
decimal(18,2) 9
bit 1
int 4
int 4
すべてのフィールドが最大で使用されている場合、合計1098バイト。
これを行うツールを私は知りません。ただし、少し面倒ですが、行の列タイプに基づいて自分で計算することができます。 _create table
_スクリプトを出力してスクリプトにフィードすると、PowerShellを作成して支援できる可能性があります。
たぶん、すべてのint
を検索してカウンターに追加し、各データ型で同じスクリプトを実行すると、簡単な乗算を実行して、約テーブルサイズ。すべてのvarchar(50)
およびchar(10)
データ型のサイズを取得するのはおそらくやや難しいでしょうが、ここでも、PowerShellの魔法が少し役立つ可能性があります。
更新
私もあなたと同じ結論に達しました。最悪の場合、レコードあたり1098バイトです。あなたはあなたのデータを知っていますが、あなたの編集に基づいて、あなたのデータが多くのレコードでvarchar(1000)
より少なくなる可能性が高いようです。これにより、この場合、すべてのレコードでスペースを節約できるため、最良の場合、レコードあたり98バイトになります。もし私があなたなら、この情報を使ってあなたがすでに持っているデータをチェックし、このvarchar(1000)
フィールドの平均の長さのベースラインを考え出し、その平均を使ってニースの中央値を計算します。