microsoft sqlserver express で、どうにもDBが遅くなって試行錯誤したので記録。

3GB程度の容量、約300万レコードのテーブルが存在し、何かと障害が起こっていた。
select count(*) from TBL_A として、レコード数が返ってくるのに4分ぐらいかかっていた。
もちろんインデックスは張っている。

明らかに遅い!とおもったので、基本のエクスポート&インポートをしてみることにした。
参考記事はこれ。
SQL Server Expressの基本:データのインポート/エクスポート

DTSWizard.exe を使って、一時的なデータベースファイルを作成してそこへエクスポート。
※DTSWizard.exe は、sqlserverのエクスポート・インポートのツール。
 場所は、「C:\Program Files\Microsoft SQL Server\90\DTS\Binn\」。
 上記のところに無ければ、下記ページから落としてインストールする。
 Microsoft SQL Server 2005 Express Edition Toolkit Service Pack 2

そして、元のデータベースファイルを削除して、上記の一時的なデータベースファイルからインポートし直した。

その後に select count(*) from TBL_A を実行してみると、エクスポート&インポートをする前は4分かかっていたのが、なんと7秒に。
素晴らしい。