通常のアプローチと比較して、テーブルのパーティショニングを使用することはどのくらい有利ですか?
プロセスの有用性を統計的に強調できるサンプルケースまたは詳細な比較分析のようなものはありますか (これは強すぎる言葉であることは承知していますが、いくつかの数字で示されていると非常に役立ちます)。
通常のアプローチと比較して、テーブルのパーティショニングを使用することはどのくらい有利ですか?
プロセスの有用性を統計的に強調できるサンプルケースまたは詳細な比較分析のようなものはありますか (これは強すぎる言葉であることは承知していますが、いくつかの数字で示されていると非常に役立ちます)。
パーティショニングは非常に強力であり、実際にはテーブルデータをいくつかの小さなテーブルに分割し、ビューを使用してそれらを統合します。
たとえば、「ipnumbers」はテーブル「ipnumbers_1」、「ipnumbers_2」、および「ipnumbers_3」に分割できます。最初のテーブルには制約が含まれているため、0.0.0.0〜50.0.0.0の範囲のipnumberのみが格納され、2番目のテーブルは50.0.0.1から100.0.0.0などの範囲のみを格納できる制約が含まれています。次に、パーティション化されたテーブルを1つに統合するビューを追加できます。
SELECT * FROM ipnumbers_1
UNION ALL
SELECT * FROM ipnumbers_2
UNION ALL
SELECT * FROM ipnumbers_3
ここで、ビューに特定のipnumberを照会すると、次のようになります。
SELECT * FROM ipnumberview WHERE ipno=60.0.0.1
.. SQL Serverクエリオプティマイザは、テーブル'ipnumbers_2'のみをチェックする必要があることを認識しているため、速度が大幅に向上します。
また、スキーマにバインドされたビューを挿入したり(データを正しい宛先テーブルに自動的に配置したり)、テーブルを別のサーバーに配置したり(セットアップは少し難しいですが)、ビューにインデックスを追加したりすることもできます。
楽しむ!