sql >> データベース >  >> RDS >> Sqlserver

Hibernate Query はシステム内での実行は遅いが、直接実行すると高速になる

    問題の説明から、パラメータ スニッフィングが発生しているようです。基本的に、SQL Server は、渡されたパラメーター値の古いセットに基づいてクエリ プランを作成し、現在実行中のクエリに対して有効な実行プランを作成しません。

    通常、この問題を解決するには、パラメーター値をローカル変数に渡し、それらをクエリで使用するか、OPTION (RECOMPILE) を使用します。ただし、Hibernate を使用しているため、私の通常の解決策は選択肢ではありません。私の理解では、最善の選択肢は、Hibernate を使用して、prepareStatement() または createSQLQuery() を使用してネイティブ SQL クエリを実行することですが、残念ながら、Hibernate を使用する利点の一部が失われます。



    1. SELECT*FROM複数のテーブル。 MySQL

    2. PDOで準備されたクエリをいつ使用するか。 mysql_real_escapeエラー

    3. MYSQLのFIELDによる順序

    4. 行データをMS-SQLの列にグループ化して合計しますか?