Hibernate (EhCache 사용)에서 2 차 레벨 캐시를 사용하여 성능 향상을 벤치마킹하고 있지만 성능을 향상시키지 못했습니다. 실제로 질의를 수행하는 시간이 약간 증가합니다.session.createCriteria (...)에 EhCache 사용하기 list()
쿼리는 다음과 같습니다
session.createCriteria(MyEntity.class).list();
엔티티는 다음과 같습니다
@Entity
@Cache(usage = CacheConcurrencyStrategy.NONSTRICT_READ_WRITE)
public class MyEntity {
@Id
@GeneratedValue
private long id;
@Column(length=5000)
private String data;
//---SNIP getters and setters---
}
내있는 hibernate.cfg.xml은 다음과 같습니다
이<!-- all the normal stuff to get it to connect & map the entities plus:-->
<property name="hibernate.cache.region.factory_class">
net.sf.ehcache.hibernate.EhCacheRegionFactory
</property>
MyEntity 테이블은 약 2000 행이 포함되어 있습니다.
캐시에 추가하기 전에 위의 쿼리에서 모든 항목을 나열하는 데 평균 65 밀리 초가 걸렸습니다. 캐시 후에는 평균 74ms가 소요됩니다. 내가 빠진 것이 있습니까? 성능 향상을 위해 수행해야 할 추가 작업이 있습니까?
감사합니다. 나는 쿼리 캐시를 활성화했으며 확실히 차이를 만듭니다. 쿼리는 워밍업 된 후 캐시되지 않은 상태에서 65ms에서 22ms로 진행되었습니다. –
@James : 더 복잡한 쿼리를 사용하면 그 차이가 더욱 두드러집니다. – skaffman