diff --git a/DBAccess/src/main/java/gr/uoa/di/madgik/statstool/domain/cache/CacheEntry.java b/DBAccess/src/main/java/gr/uoa/di/madgik/statstool/domain/cache/CacheEntry.java index f51cd93..660c708 100644 --- a/DBAccess/src/main/java/gr/uoa/di/madgik/statstool/domain/cache/CacheEntry.java +++ b/DBAccess/src/main/java/gr/uoa/di/madgik/statstool/domain/cache/CacheEntry.java @@ -12,8 +12,8 @@ public class CacheEntry { private Result shadowResult; private Date created = new Date(); private Date updated = new Date(); - private int totalHits = 0; - private int sessionHits = 0; + private int totalHits = 1; + private int sessionHits = 1; private boolean pinned = false; private String profile; diff --git a/DBAccess/src/main/java/gr/uoa/di/madgik/statstool/repositories/StatsDBRepository.java b/DBAccess/src/main/java/gr/uoa/di/madgik/statstool/repositories/StatsDBRepository.java index 46c4d68..8aca813 100644 --- a/DBAccess/src/main/java/gr/uoa/di/madgik/statstool/repositories/StatsDBRepository.java +++ b/DBAccess/src/main/java/gr/uoa/di/madgik/statstool/repositories/StatsDBRepository.java @@ -200,12 +200,19 @@ public void deleteEntry(String key) { public Map stats() { DatasourceContext.setContext(CACHE_DB_NAME); - Map stats = new LinkedHashMap<>(); stats.put("total", jdbcTemplate.queryForObject("select count(*) from cache_entry",new Object[] {}, Integer.class)); stats.put("with_shadow", jdbcTemplate.queryForObject("select count(*) from cache_entry where shadow is not null and shadow != ''",new Object[] {}, Integer.class)); - stats.put("profiles", jdbcTemplate.queryForMap("select profile, count(key) as c from cache_entry where key not in ('SHADOW_STATS_NUMBERS', 'STATS_NUMBERS') order by count(key) desc group by profile")); + stats.put("profiles", jdbcTemplate.query("select profile, count(key) as queries, avg(exectime) as avg_exec_time from cache_entry where key not in ('SHADOW_STATS_NUMBERS', 'STATS_NUMBERS') group by profile order by count(key) desc", (rs, rowNum) -> { + Map map = new LinkedHashMap<>(); + + map.put("profile", rs.getString("profile")); + map.put("queries", rs.getInt("queries")); + map.put("avg_exec_time", rs.getInt("avg_exec_time")); + + return map; + })); stats.put("total.top10", jdbcTemplate.query("select * from cache_entry where key not in ('SHADOW_STATS_NUMBERS', 'STATS_NUMBERS') order by total_hits desc limit 10", (rs, rowNum) -> { CacheEntry entry = null;