Domanda

Come funziona query funziona caching e come si migliora le prestazioni in NHibernate?

È stato utile?

Soluzione

Quando una query viene memorizzata nella cache, NHibernate memorizza nella cache gli ID delle entità risultanti dalla query.

Molto importante, non memorizza nella cache i soggetti stessi - solo loro ID. Questo significa che quasi certamente desidera garantire che tali entità sono anche impostati per essere cachable nella cache di secondo livello. In caso contrario, NHiberate otterrà gli ID delle entità dalla cache delle query, ma poi essere costretto ad andare al database per ottenere le entità reale. Questo potrebbe essere più costoso che andare alla banca dati, in primo luogo!

anche importante: le query vengono memorizzate nella cache in base ai loro valori esatti SQL e dei parametri. Le differenze in uno di questi significheranno che il database sarà colpito. Così si probabilmente solo desidera memorizzare nella cache le query che hanno poco varianza nei loro ingressi.

Altri suggerimenti

Quando si attiva la cache il NHibernate memorizzerà interrogazione risultati da qualche parte dentro quando si esegue query. Quando si tenta di eseguire la query con i parametri come prima otterrà i risultati dalla cache, non dal database, e, naturalmente, è molto più veloce! ma attenzione che altre applicazioni possono modificare database in fondo! Ma NHibernate può aggiornare le cache.

Con l'utilizzo NHibernate non ha bisogno di accedere al negozio dei dati l'accesso che cosa è nella cache.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top