Example usage for org.hibernate.stat Statistics getQueryStatistics

List of usage examples for org.hibernate.stat Statistics getQueryStatistics

Introduction

In this page you can find the example usage for org.hibernate.stat Statistics getQueryStatistics.

Prototype

QueryStatistics getQueryStatistics(String queryString);

Source Link

Document

Query statistics from query string (HQL or SQL)

Usage

From source file:com.francetelecom.clara.cloud.scalability.helper.StatisticsHelper.java

License:Apache License

private static void queryStats(Statistics stats, String q) {
    logger.info("Query statistics for " + q);

    QueryStatistics qStats = stats.getQueryStatistics(q);

    logger.info("  Execution ct : " + qStats.getExecutionCount());
    logger.info("  Cache hits : " + qStats.getCacheHitCount());
    logger.info("  Cache puts : " + qStats.getCachePutCount());
    logger.info("  Cache misses : " + qStats.getCacheMissCount());
    logger.info("  Execution row ct : " + qStats.getExecutionRowCount());
    logger.info("  Execution avg millis : " + qStats.getExecutionAvgTime());
    logger.info("  Execution max millis : " + qStats.getExecutionMaxTime());
    logger.info("  Execution min millis : " + qStats.getExecutionMinTime());
}

From source file:com.openkm.servlet.admin.HibernateStatsServlet.java

License:Open Source License

/**
 * Refresh stats/*from   ww  w. j  av a 2s  .c  o m*/
 */
private synchronized void refresh() {
    Statistics statistics = HibernateUtil.getSessionFactory().getStatistics();
    generalStatistics.set(0, statistics.getConnectCount());
    generalStatistics.set(1, statistics.getFlushCount());
    generalStatistics.set(2, statistics.getPrepareStatementCount());
    generalStatistics.set(3, statistics.getCloseStatementCount());
    generalStatistics.set(4, statistics.getSessionCloseCount());
    generalStatistics.set(5, statistics.getSessionOpenCount());
    generalStatistics.set(6, statistics.getTransactionCount());
    generalStatistics.set(7, statistics.getSuccessfulTransactionCount());
    generalStatistics.set(8, statistics.getOptimisticFailureCount());
    queryStatistics.clear();
    String[] names = statistics.getQueries();

    if (names != null && names.length > 0) {
        for (int i = 0; i < names.length; i++) {
            queryStatistics.put(names[i], statistics.getQueryStatistics(names[i]));
        }
    }

    entityStatistics.clear();
    names = statistics.getEntityNames();

    if (names != null && names.length > 0) {
        for (int i = 0; i < names.length; i++) {
            entityStatistics.put(names[i], statistics.getEntityStatistics(names[i]));
        }
    }

    collectionStatistics.clear();
    names = statistics.getCollectionRoleNames();

    if (names != null && names.length > 0) {
        for (int i = 0; i < names.length; i++) {
            collectionStatistics.put(names[i], statistics.getCollectionStatistics(names[i]));
        }
    }

    secondLevelCacheStatistics.clear();
    names = statistics.getSecondLevelCacheRegionNames();

    if (names != null && names.length > 0) {
        for (int i = 0; i < names.length; i++) {
            secondLevelCacheStatistics.put(names[i], statistics.getSecondLevelCacheStatistics(names[i]));
        }
    }
}

From source file:com.thoughtworks.go.server.service.support.HibernateInformationProvider.java

License:Apache License

@Override
public Map<String, Object> asJson() {
    LinkedHashMap<String, Object> json = new LinkedHashMap<>();
    Statistics statistics = sessionFactory.getStatistics();
    if (!statistics.isStatisticsEnabled()) {
        return json;
    }/*w w w  .j av  a  2 s. c o m*/
    json.put("EntityDeleteCount", statistics.getEntityDeleteCount());
    json.put("EntityInsertCount", statistics.getEntityInsertCount());
    json.put("EntityLoadCount", statistics.getEntityLoadCount());
    json.put("EntityFetchCount", statistics.getEntityFetchCount());
    json.put("EntityUpdateCount", statistics.getEntityUpdateCount());
    json.put("QueryExecutionCount", statistics.getQueryExecutionCount());
    json.put("QueryExecutionMaxTime", statistics.getQueryExecutionMaxTime());
    json.put("QueryExecutionMaxTimeQueryString", statistics.getQueryExecutionMaxTimeQueryString());
    json.put("QueryCacheHitCount", statistics.getQueryCacheHitCount());
    json.put("QueryCacheMissCount", statistics.getQueryCacheMissCount());
    json.put("QueryCachePutCount", statistics.getQueryCachePutCount());
    json.put("FlushCount", statistics.getFlushCount());
    json.put("ConnectCount", statistics.getConnectCount());
    json.put("SecondLevelCacheHitCount", statistics.getSecondLevelCacheHitCount());
    json.put("SecondLevelCacheMissCount", statistics.getSecondLevelCacheMissCount());
    json.put("SecondLevelCachePutCount", statistics.getSecondLevelCachePutCount());
    json.put("SessionCloseCount", statistics.getSessionCloseCount());
    json.put("SessionOpenCount", statistics.getSessionOpenCount());
    json.put("CollectionLoadCount", statistics.getCollectionLoadCount());
    json.put("CollectionFetchCount", statistics.getCollectionFetchCount());
    json.put("CollectionUpdateCount", statistics.getCollectionUpdateCount());
    json.put("CollectionRemoveCount", statistics.getCollectionRemoveCount());
    json.put("CollectionRecreateCount", statistics.getCollectionRecreateCount());
    json.put("StartTime", statistics.getStartTime());
    json.put("SecondLevelCacheRegionNames", statistics.getSecondLevelCacheRegionNames());
    json.put("SuccessfulTransactionCount", statistics.getSuccessfulTransactionCount());
    json.put("TransactionCount", statistics.getTransactionCount());
    json.put("PrepareStatementCount", statistics.getPrepareStatementCount());
    json.put("CloseStatementCount", statistics.getCloseStatementCount());
    json.put("OptimisticFailureCount", statistics.getOptimisticFailureCount());

    LinkedHashMap<String, Object> queryStats = new LinkedHashMap<>();
    json.put("Queries", queryStats);

    String[] queries = statistics.getQueries();
    for (String query : queries) {
        queryStats.put(query, statistics.getQueryStatistics(query));
    }

    LinkedHashMap<String, Object> entityStatistics = new LinkedHashMap<>();
    json.put("EntityStatistics", entityStatistics);

    String[] entityNames = statistics.getEntityNames();
    for (String entityName : entityNames) {
        entityStatistics.put(entityName, statistics.getEntityStatistics(entityName));
    }

    LinkedHashMap<String, Object> roleStatistics = new LinkedHashMap<>();
    json.put("RoleStatistics", roleStatistics);

    String[] roleNames = statistics.getCollectionRoleNames();
    for (String roleName : roleNames) {
        roleStatistics.put(roleName, statistics.getCollectionStatistics(roleName));
    }

    return json;
}

From source file:net.sf.ehcache.hibernate.management.impl.HibernateStatsImpl.java

License:Apache License

/**
 * {@inheritDoc}//from  ww  w  .j  a  v a2s .  c  o m
 * 
 * @see net.sf.ehcache.hibernate.management.api.HibernateStats#getQueryStats()
 */
public TabularData getQueryStats() {
    List<CompositeData> result = new ArrayList<CompositeData>();
    Statistics statistics = getStatistics();
    for (String query : statistics.getQueries()) {
        QueryStats queryStats = new QueryStats(query, statistics.getQueryStatistics(query));
        result.add(queryStats.toCompositeData());
    }
    TabularData td = QueryStats.newTabularDataInstance();
    td.putAll(result.toArray(new CompositeData[result.size()]));
    return td;
}

From source file:org.bedework.calcore.hibernate.DbStatistics.java

License:Apache License

private static void queryStats(Collection<StatsEntry> c, Statistics dbStats, String q) {
    c.add(new StatsEntry("Query statistics for " + q));

    QueryStatistics qStats = dbStats.getQueryStatistics(q);

    c.add(new StatsEntry("Execution ct", qStats.getExecutionCount()));
    c.add(new StatsEntry("Cache hits", qStats.getCacheHitCount()));
    c.add(new StatsEntry("Cache puts", qStats.getCachePutCount()));
    c.add(new StatsEntry("Cache misses", qStats.getCacheMissCount()));
    c.add(new StatsEntry("Execution row ct", qStats.getExecutionRowCount()));
    c.add(new StatsEntry("Execution avg millis", qStats.getExecutionAvgTime()));
    c.add(new StatsEntry("Execution max millis", qStats.getExecutionMaxTime()));
    c.add(new StatsEntry("Execution min millis", qStats.getExecutionMinTime()));
}

From source file:org.jboss.as.jpa.hibernate4.management.HibernateStatisticsResource.java

License:Open Source License

private boolean hasQuery(PathElement element) {
    boolean result = false;
    final PersistenceUnitService puService = persistenceUnitRegistry.getPersistenceUnitService(puName);
    final Statistics stats = getStatistics();
    if (stats != null && puService != null) {
        final String scopedPUName = puService.getScopedPersistenceUnitName();
        final String unqualifiedQueryName = element.getValue();
        final String queryName = scopedPUName + "." + unqualifiedQueryName;
        result = stats.getQueryStatistics(queryName) != null;
    }// w ww .  j a  va  2  s  .c om
    return result;
}

From source file:org.jboss.as.test.integration.jpa.secondlevelcache.SFSB2LC.java

License:Open Source License

/**
 * Performs 2 query calls, first call put query in the cache and second should hit the cache
 *
 * @param id Employee's id in the query/*from   ww w.j ava2s  .com*/
 */
public String queryCacheCheck(String id) {

    // the nextTimestamp from infinispan is "return System.currentTimeMillis()"
    try {
        Thread.sleep(1000);
    } catch (InterruptedException e) {
        e.printStackTrace();
        return e.getMessage();
    }

    EntityManager em = emf.createEntityManager();
    Statistics stats = em.unwrap(Session.class).getSessionFactory().getStatistics();
    stats.clear();

    try {
        String queryString = "from Employee e where e.id > " + id;
        QueryStatistics queryStats = stats.getQueryStatistics(queryString);
        Query query = em.createQuery(queryString);
        query.setHint("org.hibernate.cacheable", true);

        // query - this call should fill the cache
        query.getResultList();
        assertEquals("Expected 1 miss in cache" + generateQueryCacheStats(queryStats), 1,
                queryStats.getCacheMissCount());
        assertEquals("Expected 1 put in cache" + generateQueryCacheStats(queryStats), 1,
                queryStats.getCachePutCount());
        assertEquals("Expected no hits in cache" + generateQueryCacheStats(queryStats), 0,
                queryStats.getCacheHitCount());

        // query - second call should hit cache
        query.getResultList();
        assertEquals("Expected 1 hit in cache" + generateQueryCacheStats(queryStats), 1,
                queryStats.getCacheHitCount());

    } catch (AssertionError e) {
        return e.getMessage();
    } finally {
        em.close();
    }
    return "OK";
}

From source file:org.jboss.as.test.integration.jpa.secondlevelcache.SFSB2LC.java

License:Open Source License

/**
 * Checking if query cache is empty/*from w  ww .jav a  2  s.c  o m*/
 *
 * @param id Employee's id in the query
 */
public String queryCacheCheckIfEmpty(String id) {

    EntityManager em = emf.createEntityManager();
    Statistics stats = em.unwrap(Session.class).getSessionFactory().getStatistics();
    stats.clear();

    try {
        // the nextTimestamp from infinispan is "return System.currentTimeMillis() / 100;"
        Thread.sleep(1000);

        String queryString = "from Employee e where e.id > " + id;
        QueryStatistics queryStats = stats.getQueryStatistics(queryString);
        Query query = em.createQuery(queryString);
        query.setHint("org.hibernate.cacheable", true);

        // query - this call shouldn't hit the cache -> query cache is empty
        query.getResultList();
        assertEquals("Expected 1 miss in cache" + generateQueryCacheStats(queryStats), 1,
                queryStats.getCacheMissCount());
        assertEquals("Expected 1 put in cache" + generateQueryCacheStats(queryStats), 1,
                queryStats.getCachePutCount());
        assertEquals("Expected no hits in cache" + generateQueryCacheStats(queryStats), 0,
                queryStats.getCacheHitCount());

    } catch (AssertionError e) {
        return e.getMessage();
    } catch (InterruptedException e) {
        return e.getMessage();
    } finally {
        em.close();
    }
    return "OK";
}

From source file:org.keycloak.connections.jpa.HibernateStatsReporter.java

License:Apache License

protected void logQueries(StringBuilder builder, String lineSep, Statistics stats) {
    builder.append("Important queries statistics: ").append(lineSep).append(lineSep);
    for (String query : stats.getQueries()) {
        QueryStatistics queryStats = stats.getQueryStatistics(query);

        if (queryStats.getExecutionCount() > LIMIT
                || (queryStats.getExecutionCount() * queryStats.getExecutionAvgTime() > LIMIT)) {
            builder.append(query).append(lineSep).append("executionCount=")
                    .append(queryStats.getExecutionCount()).append(lineSep).append("executionAvgTime=")
                    .append(queryStats.getExecutionAvgTime()).append(" ms").append(lineSep).append(lineSep)
                    .append(lineSep);/*from   w ww.ja va  2  s  .  c o m*/
        }
    }
}

From source file:org.openmrs.api.db.hibernate.HibernateContextDAO.java

License:Mozilla Public License

/**
 * Convenience method to print out the hibernate cache usage stats to the log
 *//*ww w  .  j  a  v  a  2s  .co  m*/
private void showUsageStatistics() {
    if (sessionFactory.getStatistics().isStatisticsEnabled()) {
        log.debug("Getting query statistics: ");
        Statistics stats = sessionFactory.getStatistics();
        for (String query : stats.getQueries()) {
            log.info("QUERY: " + query);
            QueryStatistics qstats = stats.getQueryStatistics(query);
            log.info("Cache Hit Count : " + qstats.getCacheHitCount());
            log.info("Cache Miss Count: " + qstats.getCacheMissCount());
            log.info("Cache Put Count : " + qstats.getCachePutCount());
            log.info("Execution Count : " + qstats.getExecutionCount());
            log.info("Average time    : " + qstats.getExecutionAvgTime());
            log.info("Row Count       : " + qstats.getExecutionRowCount());
        }
    }
}