【データベース】SQLServerをAccessでリンクしたテーブルの処理速度が急に遅くなった事象を対処

Access

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】)

直後に該当テーブルのリンクを、一旦削除して再リンクします。

確認すると無事に元通りの速さに戻ったようです!

まとめ

統計情報の更新または、再リンクのどちらか不明ですが解決できました。
同事象が将来的に再発生しそうなので、記録として残しておきます。

コメント