Class SlowQueryReport.QueryStats
java.lang.Object
org.apache.tomcat.jdbc.pool.interceptor.SlowQueryReport.QueryStats
- Enclosing class:
SlowQueryReport
Holds timing and invocation statistics for a single SQL query.
-
Constructor Summary
ConstructorsConstructorDescriptionQueryStats(String query) Creates a new QueryStats instance for the given SQL query. -
Method Summary
Modifier and TypeMethodDescriptionvoidadd(long invocationTime, long now) Records a successful query invocation, updating min/max/total timing statistics.booleanvoidfailure(long invocationTime, long now) Records a failed query invocation, updating timing statistics and failure count.Returns the query statistics as JMX CompositeData.static String[]Returns the descriptions of the fields in the composite data representation.static String[]Returns the names of the fields in the composite data representation.static OpenType<?>[]Returns the JMX OpenType of each field in the composite data representation.longReturns the timestamp when the longest query execution occurred.longReturns the longest time this query took to execute.longReturns the timestamp when the shortest query execution occurred.longReturns the shortest time this query took to execute.intReturns the total number of times this query has been invoked.getQuery()Returns the SQL query string for these statistics.longReturns the total time spent executing this query across all invocations.inthashCode()booleanReturns whether this query is the one eviction would take before the given one, that is, whether it was last invoked or prepared earlier.voidprepare(long invocationTime) Records the time taken to prepare this query.toString()
-
Constructor Details
-
QueryStats
Creates a new QueryStats instance for the given SQL query.- Parameters:
query- the SQL query string
-
-
Method Details
-
getFieldNames
Returns the names of the fields in the composite data representation.- Returns:
- the field names
-
getFieldDescriptions
Returns the descriptions of the fields in the composite data representation.- Returns:
- the field descriptions
-
getFieldTypes
Returns the JMX OpenType of each field in the composite data representation.- Returns:
- the field types
-
toString
-
getCompositeData
Returns the query statistics as JMX CompositeData.- Parameters:
type- the composite type definition- Returns:
- the composite data representation of this query's statistics
- Throws:
OpenDataException- if the data cannot be converted
-
prepare
public void prepare(long invocationTime) Records the time taken to prepare this query. Preparation counts as activity on the entry, so the last invocation time that orders the statistics for eviction is updated as well: a statement that is prepared but never executed must age like any other query instead of occupying a statistics slot for ever.- Parameters:
invocationTime- the time in milliseconds to prepare the query
-
add
public void add(long invocationTime, long now) Records a successful query invocation, updating min/max/total timing statistics.- Parameters:
invocationTime- the time in milliseconds the query tooknow- the current timestamp in milliseconds
-
failure
public void failure(long invocationTime, long now) Records a failed query invocation, updating timing statistics and failure count.- Parameters:
invocationTime- the time in milliseconds the query took before failingnow- the current timestamp in milliseconds
-
getQuery
Returns the SQL query string for these statistics.- Returns:
- the SQL query string
-
getNrOfInvocations
public int getNrOfInvocations()Returns the total number of times this query has been invoked.- Returns:
- the number of invocations
-
getMaxInvocationTime
public long getMaxInvocationTime()Returns the longest time this query took to execute. Until an execution has been booked the value isLong.MIN_VALUE; the published views report0in that state.- Returns:
- the maximum invocation time in milliseconds, or
Long.MIN_VALUEwhile no execution has been booked
-
getMaxInvocationDate
public long getMaxInvocationDate()Returns the timestamp when the longest query execution occurred. Until an execution has been booked the value is0, because no date has been recorded.- Returns:
- the timestamp in milliseconds of the maximum invocation, or
0while no execution has been booked
-
getMinInvocationTime
public long getMinInvocationTime()Returns the shortest time this query took to execute. Until an execution has been booked the value isLong.MAX_VALUE; the published views report0in that state.- Returns:
- the minimum invocation time in milliseconds, or
Long.MAX_VALUEwhile no execution has been booked
-
getMinInvocationDate
public long getMinInvocationDate()Returns the timestamp when the shortest query execution occurred. Until an execution has been booked the value is0, because no date has been recorded.- Returns:
- the timestamp in milliseconds of the minimum invocation, or
0while no execution has been booked
-
getTotalInvocationTime
public long getTotalInvocationTime()Returns the total time spent executing this query across all invocations.- Returns:
- the total invocation time in milliseconds
-
hashCode
-
equals
-
isOlderThan
Returns whether this query is the one eviction would take before the given one, that is, whether it was last invoked or prepared earlier. An entry that has never been invoked or prepared is the newest of all by that order rather than the oldest, and answersfalsehere, because the comparison is the very one the eviction of the statistics map makes.- Parameters:
other- the other query statistics to compare against- Returns:
trueif this query's last invocation is older
-