Hibernate を使用して MsSQL 2005 サーバーと通信する Java アプリケーションがあります。ドライバーはnet.sourceforge.jtds 1.2.4.
物事は機能していますが、パフォーマンスはひどいものです。応答時間はテーブル内のエントリ数に比例するため、渡されたクエリにインデックスが使用されていないと思われます。
私は、同じドライバー (jtds) を使用し、Hibernate を使用しない小さなテスト アプリケーションを作成しました。パフォーマンスの低下を再現できました (またはそう信じています)。プリペアド ステートメントを使用すると、Hibernate を使用した場合と同じようにパフォーマンスが低下しますが (応答時間は ~1 秒)、使用しない場合はパフォーマンスが向上します (~10 ミリ秒)。
Hibernate executeSql
インターフェイスの代わりにメソッドを使用して同じ優れたパフォーマンスを得ることができCriteria
ますが、コードをモジュールのままにしておき、結果がエンティティ クラスに変換されないため、これを避けたいと考えています。
クエリを作成し、結果をエンティティ クラス オブジェクトに変換するバックエンドに依存しない方法を使用しながら、Hibernate で良好なパフォーマンスを得る方法はありますか?