我在Swing應用程序中使用Hibernate 3.3。我想檢索執行的交易中的一些統計信息,並將這些信息提供給我的觀點。例如:獲取休眠事務狀態
- 執行時間
- 行數觸及
- 類型的交易(更新,刪除,創建,選擇等)
我有幾個輔助類。我正在考慮使用諸如executionTime,noRows,transactionStatus等公共字段並將它們填充到finalize()方法中。
Hibernate是否提供了訪問這種數據的方法?
我在Swing應用程序中使用Hibernate 3.3。我想檢索執行的交易中的一些統計信息,並將這些信息提供給我的觀點。例如:獲取休眠事務狀態
我有幾個輔助類。我正在考慮使用諸如executionTime,noRows,transactionStatus等公共字段並將它們填充到finalize()方法中。
Hibernate是否提供了訪問這種數據的方法?
是的,Hibernate提供實時統計。從Hibernate的書用例:
Statistics stats = HibernateUtil.getSessionFactory().getStatistics();
stats.setStatisticsEnabled(true);
...
stats.getSessionOpenCount();
stats.logSummary();
EntityStatistics itemStats = stats.getEntityStatistics("auction.model.Item");
itemStats.getFetchCount();
的統計數據接口Statistics
全球信息,EntityStatistics
關於特定實體,CollectionStatistics
特定集合的作用,QueryStatistics
用於SQL和HQL查詢的信息,並SecondLevelCacheStatistics
詳細運行有關可選二級數據高速緩存中特定區域的信息。一個簡便的方法是logSummary()
,它通過一次調用將完整的摘要打印到控制檯。如果要通過配置啓用統計信息收集,而不是編程方式,請將hibernate.generate_statistics
配置屬性設置爲true。有關各種統計信息檢索方法的更多信息,請參閱API文檔。
如果您正在應用程序服務器中運行,還可以配置JMX以提供統計信息。
謝謝,但我似乎無法找到獲取總交易執行時間的方法。 – matiasf 2010-02-14 13:32:41