2011-06-22 8 views

答えて

0

私はGoogleが有用なキーワードをさまざまに組み合わせていますが、私は正しい方向に向けるためにいくつかの有用なリンクを思いつきました。プロダクション環境に「正しい」プロパティの単一の、定義的なリストはありません。人々は自分の経験に基づいて物事を推薦しますが、あなたは物事を試して常識を使って、あなたにとって何が最善のものかを理解する必要があります。

Hibernate Documentation of Available Configurable Properties

Sample persistence.xml file for MySql

私が今まで意識的にPRODのコンフィグために変更することを忘れないように持っていた唯一のプロパティは、Hibernateが直接自動的にDDL文を実行して、DBのスキーマを変更することができますhibernate.hbm2ddl.autoプロパティです。テストDBの場合、テストSessionFactoryが必要なテーブルを作成したり、既存のスキーマを変更して可能な最新のスキーマの変更に合わせるように、「create-drop」という値を使用することがよくあります。 prodで、あなたはHibernateにあなたのスキーマを混乱させたくありません。データ保全性が保証されていないため、Hibernateの人でも、本番環境ではこの機能を使用しないよう警告します。 prodに使用すべき値は "validate"です。これは、接続しているDBがHibernateエンティティがマップする正しいスキーマを持っているかどうかを単純に検証し、不一致があればSessionFactoryをロードできません。

2

これは、キャッシュサイズ、フェッチ深度(外部結合の場合)、フェッチバッチサイズなど、さまざまなものを設定できます。

あなたはおそらく、(show_sql => false、format_sql => falseに設定、use_sql_comments => falseに設定された)show_sql =をログに記録したくないでしょう。

しかし、本当にそれは依存しているため、測定する必要があります。

接続プールを使用して正しく構成することも重要です。 もう一度:常識と対策を使用してください。

うまくいけば、これらのリンクは有用であることを証明する:

http://docs.jboss.org/hibernate/core/3.3/reference/en/html/session-configuration.html

http://docs.jboss.org/hibernate/core/3.3/reference/en/html/performance.html

重要なポイントは、モデルの権利を取得することです。大規模な結合を行う多くのSQLリクエストが生成されると、パフォーマンスが問題になります。したがって、パフォーマンスが重要な場合は、正規化または実際にエンティティ・リレーションシップ・モデリングであまりにも多くの正規化をしないことにいくつか考えなければなりません。

また、コレクションとそのモデル化/処理方法は、パフォーマンス面で大きな役割を果たします。

キャッシングに関する限り、ユースケースによっては、2次キャッシュ(Ehcacheなど)を適切に設定すると、パフォーマンスを大幅に向上させることができます。それはまた、次のことを意味します。キャッシュできるものとキャッシュされないもの、キャッシュの長さ、キャッシュの大きさを考えます。だから、実際には、reallly依存します:)

関連する問題