私はNativeQuery
約1000行をコピーします(いくつかの列を変更して選択および挿入します)。
問題は、(実行の約 1/3) executeUpdate
50 ミリ秒かかることもあれば、(実行の 2/3) 1500 ミリ秒かかることもあります。
リクエスト中に同じクエリが何度も実行されます。通常、これらの実行はすべて低速または高速です。
すべての要求は、同じデータベース状態から開始されました (つまり、まったく同じレコードが選択され、挿入されます)。この時点で、データベースにも Tomcat にも他のユーザーはいませんでした。5 回連続で遅い場合もあれば、5 回連続で速い場合もあり、遅い、速い、遅い、速い場合もあります。
Tomcat と Postgres の両方を再起動しようとしました。再起動後は遅いときもあれば、速いときもあります。System.gc()
リクエストの先頭に追加してみましたが、ランダム性が残っていました。
同じクエリを (dBeaver/JDBC 経由で) 直接実行すると、常に高速です。
私の環境:
- トムキャット 8.5.33
- エクリプスリンク 2.6.4
- PostgreSQL 9.6.11
- Ubuntu 18.04
この状況をデバッグする方法はありますか?