スロークエリ 【slow query】
概要
スロークエリ(slow query)とは、データベース管理システム(DBMS)に対する問い合わせ(クエリ)のうち、一定の基準に照らして遅い、時間がかかっているもの。システム性能の制約となるボトルネックとなっている可能性が高い箇所とみなされる。リレーショナルデータベース(RDB)では、アプリケーション側からDBMSに対してSQLと呼ばれる言語で記述されたクエリを発行し、データの照会や更新などの依頼を行う仕組みになっている。アプリケーションから発行され処理されたクエリのうち、実行時間が一定の基準を超える遅いクエリのことをスロークエリという。
実行時間はシステムの種類や構成、性能などに依存するため一律の基準があるわけではなく、管理者がDBMSの設定などで「1秒以上」といった基準値を指定することが多い。DBMSによってはMySQLのスロークエリログにように基準値を超えるスロークエリの実行を検知して記録する機能がある場合もある。
クエリに時間がかかる原因は様々だが、巨大なテーブルを毎回フルスキャンするなどデータベースの設計やクエリの記述に問題がある場合、システムの性能に対して過大な処理要求が生じストレージ装置などの処理が飽和状態になって遅延している場合などがよく見られる。
(2021.1.24更新)