2011年2月9日水曜日

SQLServerデータパーティショニング

SQLServer2005以降にはテーブルのパーティショニング機能が搭載されています。

データを物理的に分割し、異なるディスクに配置することにより、パフォーマンスを上げることができます。
また、パーティション毎のインデックス構築、バックアップ等が可能なため、時系列でデータをストアしている場合にも有効な手法となります。

最も効果的な使用方法は、注文・売上データの管理をする際に、年月単位でパーティションを区切ることでしょう。
よく使う直近一年間を12分割し、前年比用に昨年分、それ以前と分けるのが効率がよいでしょう。

どのような利用かにも依りますが、ディスクが用意できるのであれば、5つ程度あればよいでしょう。
可能であればtmpと今月前月等はRAID構成と尚よいです。
osとmaster
temp
今月前月
それ以外の1年間
それ以前


数百万件のデータを扱う場合はデータパーティショニングも重要ですが、
適切なインデックスやテーブル構造の設計ができていなければ意味がありません。


参考
http://www.atmarkit.co.jp/fdb/rensai/sqls05try11/sqls05try11_1.html