W NHibernate Profiler zauważyłem, że kiedy używam chętnego pobierania na skojarzenie, używając "left join fetch" w kwerendzie HQL lub .SetFetchMode() w Kryteriach Zapytanie zapytanie nr dłużej zostaje zbuforowane w pamięci podręcznej zapytań.Hibernate Second-Level Query Cache nie działa Eager Fetching
W rzeczywistości z tego, co widzę, tylko bardzo podstawowe zapytania są buforowane. Jeśli ktokolwiek może mi dać wgląd w to, jakie zapytania są buforowane, a które nie, zaznaczę odpowiedź.
Jeśli to robi jakąś różnicę, używam Memcached .... Czy jest lepszy wybór dla L2 Cache dla gęstego systemu zapytań?
Zauważyłem, że jest to dość trudne - jeśli nie używam sporego obciążenia, mam problem N + 1 (ale używa pamięci podręcznej), jeśli robię spore obciążenie, otrzymuję wszystkie jednostki z bazy danych, ale z bez buforowania.
Wygląda na to, że istnieje dość gruba linia podziału, obie strategie mają poprawę wydajności, ale obie strategie obrabiają wydajność z drugiej strategii.
Jeśli ktokolwiek może dać wgląd w to, gdzie na tej "grubej linii" powinienem mieć optymalną wydajność, lub jak "sprawić, że linia będzie cieńsza" ... Byłbym bardzo trudny i oznaczyć odpowiedź.
Żadna z odpowiedzi nie jest dobra? –
Twoja sugestia brzmi jak dobra, ale jestem teraz na wakacjach i nie miałem okazji tego wypróbować. Poza ręką nie pamiętam, czy moje zapytania mają element select ... może to być przyczyną moich problemów. Odpalę go, a potem wrócę. Dzięki! – reach4thelasers
Zaktualizowałam swoją odpowiedź w powiązanym z nią pytaniu, uważam, że może być całkiem istotna. –