20.6.2. メトリクス


Hibernate は、基本情報から、特定のシナリオのみに該当するような、さらに特化された情報まで、多くのメトリクスを用意しています。すべての使用可能なカウンタは Statistics インターフェースの API に書かれており、3つの分類があります:
  • 一般的な Session の使い方と関係するメトリクス。オープンセッションの数、取得した JDBC 接続など
  • 全体として、要素、コレクション、クエリ、キャッシュに関連するメトリクス(別名はグローバルメトリクスです)。
  • 特定のエンティティ、コレクション、クエリ、キャッシュ領域に関係した詳細のメトリクス。
例として、キャッシュのヒット、ヒットミスや、要素、コレクション、クエリの割合、クエリの実行に必要な平均時間を確認できます。ミリ秒の数値は Java の近似の影響を受けることに注意してください。Hibernate は JVM の精度に制限され、プラットフォームによっては10秒単位でしか正確でないかもしれません。
単純な getter はグローバルメトリクス(すなわち特定のエンティティ、コレクション、キャッシュ領域などに縛られない)にアクセスするために使います。特定のエンティティ、コレクション、キャッシュ領域のメトリクスは、それらの名前や、クエリの HQL、SQL 表現によってアクセスすることが出来ます。さらに詳しい情報は、 StatisticsEntityStatisticsCollectionStatisticsSecondLevelCacheStatisticsQueryStatistics API の javadoc を参照してください。以下のコードは簡単な例です:
Statistics stats = HibernateUtil.sessionFactory.getStatistics();

double queryCacheHitCount  = stats.getQueryCacheHitCount();
double queryCacheMissCount = stats.getQueryCacheMissCount();
double queryCacheHitRatio =
  queryCacheHitCount / (queryCacheHitCount + queryCacheMissCount);

log.info("Query Hit ratio:" + queryCacheHitRatio);

EntityStatistics entityStats =
  stats.getEntityStatistics( Cat.class.getName() );
long changes =
        entityStats.getInsertCount()
        + entityStats.getUpdateCount()
        + entityStats.getDeleteCount();
log.info(Cat.class.getName() + " changed " + changes + "times"  );
すべてのエンティティ、コレクション、クエリ、キャッシュ領域に対して作業を行う場合は、以下のメソッドを利用しそれぞれの名称リストを取得することができます:getQueries()getEntityNames()getCollectionRoleNames()getSecondLevelCacheRegionNames()
Red Hat logoGithubredditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。 最新の更新を見る.

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

Theme

© 2026 Red Hat
トップに戻る