2013年7月1日月曜日

SQL Serverのインデックス再作成

SQL Serverのインデックス再作成ですが、データベースに存在するテーブル名を全て指定する必要はありません。

sp_MSForeachtable "dbcc dbreindex('?')"




便利です。
これを実行する際は、他のクライアントとは排他アクセスになるらしい。
メンテナンス時間を作って作業ですね。
しかし、これをやっても余り速くならないような、ごくごく若干のみ速くなるような。
私が扱っているテーブルでは効果が薄いようです。
クラスターキーを設定しているせいかなとも思います。
テーブルの設計が正しいと言うことでしょうか。
しかし桁の違うデータ量、レコード数を扱っているオンラインシステムはどの様な設計をしているのか
そもそも発想が違うのか。単なるハードウェア増強の力任せで、パフォーマンス本当に上がっているのか。
興味あります。