2011-11-03 1 views
25

Sono nuovo nell'area della cache di ibernazione.Dove e come verificare che la cache di ibernazione funzioni davvero

  1. Qual è il modo più semplice per verificare che la cache funzioni davvero?
  2. Hibernate gnerate le stesse istruzioni SQL quando è attiva la cache?
  3. Dovrebbe essere una qualsiasi cartella/file nel filesystem con dati memorizzati (cache di secondo livello)?
  4. Come verificare la quantità di cache attualmente utilizzata?

saluti, Marcin

risposta

16
  1. È possibile attivare Hibernate statistics generation essere impostando hibernate.generate_statistics proprietà true. Quindi è possibile monitorare il numero di hit/miss cache tramite SessionFactory.getStatistics().

    Inoltre, quando la registrazione SQL è abilitata è possibile analizzare il comportamento della cache per presenza o assenza di particolari query SQL.

  2. Dipende da molti fattori. Vedi 21.2. The Second Level Cache e 21.4. The Query Cache

  3. Dipende dal provider di cache e dalla sua configurazione. Ad esempio, EhCache può essere configurato per l'overflow su disco.

  4. SessionFactory.getStatistics().getSecondLevelCacheStatistics() fornisce queste informazioni.

+2

+1. Il provider di cache fornisce spesso anche bean JMX a cui è possibile chiedere le proprie statistiche –

4

Ho trovato nice tool che vizuliaze hibernate l'utilizzo (anche cache). In aggiunta a questi articles (here is part one) c'è una spiegazione abbastanza buona di come funziona la cache di ibernazione (vedere anche i collegamenti correlati). C'è anche un bell'esempio con le fasi di analisi.

Comunque grazie per le risposte.