毎年10億行以上をテーブルに挿入するアプリケーションがあります。このテーブルには、いくつか含まれているvarchar
とbigint
だけでなく、列と1つのBLOB列を。
10億行は、追跡目的で保持される履歴データで構成されます。そのため、このテーブルの最大テーブルサイズに関するこのMSDNの記事に従ってこの構造を続行すると、テーブルの容量に制限があるかどうか疑問に思いました。
そのリンクに記載されているデータファイルのサイズは、テーブルデータファイルグループを参照していますか?
毎年10億行以上をテーブルに挿入するアプリケーションがあります。このテーブルには、いくつか含まれているvarchar
とbigint
だけでなく、列と1つのBLOB列を。
10億行は、追跡目的で保持される履歴データで構成されます。そのため、このテーブルの最大テーブルサイズに関するこのMSDNの記事に従ってこの構造を続行すると、テーブルの容量に制限があるかどうか疑問に思いました。
そのリンクに記載されているデータファイルのサイズは、テーブルデータファイルグループを参照していますか?
回答:
SQL Server 2008のテーブルは多数のレコードを処理でき、@ usrが言及するように、それはディスク領域に依存しますが、テーブルに多くの行があり、成長し続ける場合は、パーティションテーブルhttp://technet.microsoftを使用することをお勧めします 。 com / en-us / library / dd578580(v = sql.100).aspx
データベーステーブルのサイズが数百ギガバイト以上に大きくなると、新しいデータのロード、古いデータの削除、インデックスの維持がより困難になる可能性があります
それについての詳細
おそらく、分割ビューが機能します。
分割ビューを使用すると、大きなテーブルのデータを小さなメンバーテーブルに分割できます。データは、いずれかの列のデータ値の範囲に基づいて、メンバーテーブル間で分割されます。各メンバーテーブルのデータ範囲は、パーティション列で指定されたCHECK制約で定義されます。次に、UNION ALLを使用して、すべてのメンバーテーブルの選択を1つの結果セットに結合するビューが定義されます。ビューを参照するSELECTステートメントがパーティション列の検索条件を指定すると、クエリオプティマイザーはCHECK制約定義を使用して、行を含むメンバーテーブルを決定します。
AmmarRが回答で情報を提供したパーティションテーブルとどのように違うのかはわかりません。