0

通常は実行にほとんど時間がかからないクエリが、突然実行に 2 秒もかかるようになることがあります。(クエリはselect count(*) from calendarsで、数値 10 を返します)。これは、アプリケーションを介してクエリを実行する場合にのみ発生し、データベース サーバーに対して直接クエリを実行する場合には発生しません。アプリケーション サーバー ソフトウェア (Tomcat) を再起動すると、突然パフォーマンスが正常に戻ります。通常、私はネットワークのせいにしますが、アプリケーション サーバーを再起動すると突然動作が大幅に速くなるということは、私にはまったく意味がありません。

私の疑いは接続プールにありますが、あらゆる種類の異なる設定と複数の異なる接続プールを試しましたが、それでも同じ結果が得られます。現在HikariCPを使用しています。

このような問題を引き起こしている原因や、問題を診断する方法を知っている人はいますか?

4

2 に答える 2

2

ストアド プロシージャまたはアドホック クエリを使用していますか? クエリを実行するときに異なる実行を取得する理由として、管理スタジオとアプリケーションでストアド プロシージャを使用する場合は、キャッシュされた実行プランが非効率になる可能性があります。これは、パラメーター スニッフィングのためにそのように生成された可能性があります。ここで詳細を読むことができ、試すことができる解決策がいくつかあります (パラメーターをローカル変数に置き換えるなど)。コンピューター全体を再起動すると (SQL Server も実行されている場合)、再起動後に実行計画が消去されるため、再起動後に最初にクエリが高速になる理由を説明できます。

于 2014-09-16T19:39:06.833 に答える