2011年2月9日水曜日

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

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

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

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

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


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


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

2011年1月17日月曜日

SQLServerのパフォーマンスチューニング

パフォーマンスチューニングはまずは測定することから始めます。

下記クエリでパフォーマンスモニタで調査できる項目が調査できます。
また、通常では見られないような項目もあるようです。

SELECT * FROM sys.dm_os_performance_counters
SELECT * FROM master.sys.sysperfinfo


参考URL

パフォーマンスを満たす物理メモリ量を算出する(3/3) - @IT
http://www.atmarkit.co.jp/fdb/rensai/drk03/drk03_3.html