re-set queryStat startTimestamp to just before executeQuery, to avoid including time spent aquiring db connection

This commit is contained in:
2024-08-01 15:12:59 -05:00
parent a11d584c8a
commit 3eae3a5758
3 changed files with 27 additions and 0 deletions

View File

@ -25,6 +25,7 @@ package com.kingsrook.qqq.backend.module.rdbms.actions;
import java.io.Serializable;
import java.sql.Connection;
import java.sql.ResultSet;
import java.time.Instant;
import java.util.ArrayList;
import java.util.List;
import java.util.concurrent.TimeUnit;
@ -116,6 +117,14 @@ public class RDBMSAggregateAction extends AbstractRDBMSAction implements Aggrega
actionTimeoutHelper = new ActionTimeoutHelper(aggregateInput.getTimeoutSeconds(), TimeUnit.SECONDS, new StatementTimeoutCanceller(statement, sql));
actionTimeoutHelper.start();
///////////////////////////////////////////////////////////////////////////////////////////////////
// to avoid counting time spent acquiring a connection, re-set the queryStat startTimestamp here //
///////////////////////////////////////////////////////////////////////////////////////////////////
if(queryStat != null)
{
queryStat.setStartTimestamp(Instant.now());
}
QueryManager.executeStatement(statement, sql, ((ResultSet resultSet) ->
{
/////////////////////////////////////////////////////////////////////////

View File

@ -25,6 +25,7 @@ package com.kingsrook.qqq.backend.module.rdbms.actions;
import java.io.Serializable;
import java.sql.Connection;
import java.sql.ResultSet;
import java.time.Instant;
import java.util.ArrayList;
import java.util.List;
import java.util.concurrent.TimeUnit;
@ -96,6 +97,14 @@ public class RDBMSCountAction extends AbstractRDBMSAction implements CountInterf
actionTimeoutHelper = new ActionTimeoutHelper(countInput.getTimeoutSeconds(), TimeUnit.SECONDS, new StatementTimeoutCanceller(statement, sql));
actionTimeoutHelper.start();
///////////////////////////////////////////////////////////////////////////////////////////////////
// to avoid counting time spent acquiring a connection, re-set the queryStat startTimestamp here //
///////////////////////////////////////////////////////////////////////////////////////////////////
if(queryStat != null)
{
queryStat.setStartTimestamp(Instant.now());
}
QueryManager.executeStatement(statement, sql, ((ResultSet resultSet) ->
{
/////////////////////////////////////////////////////////////////////////

View File

@ -28,6 +28,7 @@ import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.ResultSetMetaData;
import java.sql.SQLException;
import java.time.Instant;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.LinkedHashMap;
@ -165,6 +166,14 @@ public class RDBMSQueryAction extends AbstractRDBMSAction implements QueryInterf
actionTimeoutHelper = new ActionTimeoutHelper(queryInput.getTimeoutSeconds(), TimeUnit.SECONDS, new StatementTimeoutCanceller(statement, sql));
actionTimeoutHelper.start();
///////////////////////////////////////////////////////////////////////////////////////////////////
// to avoid counting time spent acquiring a connection, re-set the queryStat startTimestamp here //
///////////////////////////////////////////////////////////////////////////////////////////////////
if(queryStat != null)
{
queryStat.setStartTimestamp(Instant.now());
}
//////////////////////////////////////////////
// execute the query - iterate over results //
//////////////////////////////////////////////