3

Hibernate を使用して MsSQL 2005 サーバーと通信する Java アプリケーションがあります。ドライバーはnet.sourceforge.jtds 1.2.4.

物事は機能していますが、パフォーマンスはひどいものです。応答時間はテーブル内のエントリ数に比例するため、渡されたクエリにインデックスが使用されていないと思われます。


私は、同じドライバー (jtds) を使用し、Hibernate を使用しない小さなテスト アプリケーションを作成しました。パフォーマンスの低下を再現できました (またはそう信じています)。プリペアド ステートメントを使用すると、Hibernate を使用した場合と同じようにパフォーマンスが低下しますが (応答時間は ~1 秒)、使用しない場合はパフォーマンスが向上します (~10 ミリ秒)。

Hibernate executeSqlインターフェイスの代わりにメソッドを使用して同じ優れたパフォーマンスを得ることができCriteriaますが、コードをモジュールのままにしておき、結果がエンティティ クラスに変換されないため、これを避けたいと考えています。

クエリを作成し、結果をエンティティ クラス オブジェクトに変換するバックエンドに依存しない方法を使用しながら、Hibernate で良好なパフォーマンスを得る方法はありますか?

4

1 に答える 1

2

Microsoft のプロプライエタリ ドライバーを試しましたか? ここからダウンロードできます。サポートされている構成の概要をここに示します。パフォーマンスが向上する可能性があります。

SO に関する関連記事も参考になるかもしれません: How to configure hibernate config file for sql server

于 2011-12-07T10:23:14.563 に答える