MS-Accessで作成されたプログラムが、急に処理速度が遅くなった(以前と比較して10倍程遅い)と連絡がありました。
他のPCでも発生しているらしいので、データベース環境に問題ありと判断しました。
まずは現状調査
調査を行い整理してみると、
1:今まで30秒前後の処理が5分以上かかるようになった
2:処理は、ひとつのテーブルに約3000行の追加処理
3:この追加した約3000行の削除処理も遅くなった
4:テーブルはSQLServerへAccessからリンク
5:現状のテーブルは20万件超え(定期的に削除しているので30万件を超える事は無さそう)
もう少し事象を深く掘り下げる為、Management Studioから上記3の処理を行うと数秒で終了しました。
SQLServer単体の処理速度は遅くなっておらず、Accessとの接続で何らかの異常が発生している事が判明しました。
対処
まずは該当テーブルの、統計情報の更新を行います。
UPDATE STATISTICS テーブル名(全テーブル一括で行う場合は【sp_updatestats】)
直後に該当テーブルのリンクを、一旦削除して再リンクします。
確認すると無事に元通りの速さに戻ったようです!
まとめ
統計情報の更新または、再リンクのどちらか不明ですが解決できました。
同事象が将来的に再発生しそうなので、記録として残しておきます。
コメント