sqlserverで、なんかわからんけどパフォーマンスが落ちたら
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秒に。
素晴らしい。