私はダッシュボードビューを持っています。これはデータベース全体のテーブルからの小さなデータセットを必要とします。データベースのクエリ(削除されたサブクエリなど)を最適化しました。今度は〜20のクエリが順番に実行され、データベースから異なるデータセットをフェッチしています。ほとんどのHQLクエリにはGROUP BY
とJOIN
句が含まれています。 Spring RESTインタフェースでは、結果はフロントエンドに返されます。Springデータクエリの実行最適化:JpaRepositoryでのHibernate @Queryメソッドの並列実行
カスタムクエリの実行を最適化するにはどうすればよいですか?私の最初の考えは、データベースクエリを並行して実行することでした。しかし、私はそれをどのように達成するのですか?いくつかの研究をした後、私は、パラレルでメソッドを実行することを可能にする注釈@Async
を見つけました。しかし、これはHibernateのメソッドで動作しますか? JpaRepositoryに@Query
と注釈が付けられたすべてのメソッドに対して常に新しいデータベースセッションが作成されますか?データベースクエリの実行は、結局全体の実行時間に影響しますか?
データベースコールを並行して実行する別の方法は、ダッシュボードコールをいくつかの単一のAjax呼び出しに分割することです(すべての関心事は独自のAjax呼び出しを取得します)。ダッシュボードが開かれるたびに(つまり、日付範囲が変更されるたびに)、別の20個のAjax呼び出しが新しいデータをフェッチするため、私はそれをしたくありませんでした。同じ質問が残っています:SQLクエリを並行して実行することは、データベースの実行時間に影響しますか?
私は現在、データベースにインデックスを追加していません。これは次のもの、私は間違いなくやっています。しかし、私は、クエリを並行して実行することによるパフォーマンスの影響と、これをプログラムでSpringで実現する方法に興味があります。
私のプロジェクトは、当初jHipster(春ブーツ、MariaDB、AngularJSなど)によって生成された
ありがとうございます。残念ながら私はあなたに完全な恩恵を与えるには遅すぎました。 –