You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@trafodion.apache.org by se...@apache.org on 2017/07/18 18:06:56 UTC
[3/4] incubator-trafodion git commit: [TRAFODION-2420] RMS
enhancements
[TRAFODION-2420] RMS enhancements
Added four new counters to provide information about multiple executes
of a prepared statement.
No. of times executed
Min. Execute Time
Max. Execute Time
Avg. Execute Time
Project: http://git-wip-us.apache.org/repos/asf/incubator-trafodion/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-trafodion/commit/419c843a
Tree: http://git-wip-us.apache.org/repos/asf/incubator-trafodion/tree/419c843a
Diff: http://git-wip-us.apache.org/repos/asf/incubator-trafodion/diff/419c843a
Branch: refs/heads/master
Commit: 419c843aeb71b9912112067251b5574f1d6b05da
Parents: a3e19b4
Author: selvaganesang <se...@esgyn.com>
Authored: Mon Jul 17 05:13:32 2017 +0000
Committer: selvaganesang <se...@esgyn.com>
Committed: Mon Jul 17 05:13:32 2017 +0000
----------------------------------------------------------------------
core/sql/cli/sqlcli.h | 4 +
core/sql/executor/ExExeUtilGetStats.cpp | 36 +-
core/sql/executor/ExStats.cpp | 17 +
core/sql/executor/ExStats.h | 4 +-
core/sql/regress/core/EXPECTEDRTS | 1820 +++++++++++++++-----------
core/sql/regress/core/FILTERRTS | 1 +
6 files changed, 1103 insertions(+), 779 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-trafodion/blob/419c843a/core/sql/cli/sqlcli.h
----------------------------------------------------------------------
diff --git a/core/sql/cli/sqlcli.h b/core/sql/cli/sqlcli.h
index 19d2f1b..b0e68aa 100644
--- a/core/sql/cli/sqlcli.h
+++ b/core/sql/cli/sqlcli.h
@@ -1068,6 +1068,10 @@ enum SQLSTATS_ITEM_ID {
SQLSTATS_RECLAIM_SPACE_COUNT = 201,
SQLSTATS_SUBQUERY_TYPE = 202,
SQLSTATS_PARENT_QUERY_SYSTEM = 203,
+ SQLSTATS_EXECUTE_COUNT = 204,
+ SQLSTATS_EXECUTE_TIME_MIN = 205,
+ SQLSTATS_EXECUTE_TIME_MAX = 206,
+ SQLSTATS_EXECUTE_TIME_AVG = 207,
/* The following 3 enums are moved from operator level stats
to here, however, the enum values are not changed to provide
backward compatibility */
http://git-wip-us.apache.org/repos/asf/incubator-trafodion/blob/419c843a/core/sql/executor/ExExeUtilGetStats.cpp
----------------------------------------------------------------------
diff --git a/core/sql/executor/ExExeUtilGetStats.cpp b/core/sql/executor/ExExeUtilGetStats.cpp
index aee22dc..847985e 100644
--- a/core/sql/executor/ExExeUtilGetStats.cpp
+++ b/core/sql/executor/ExExeUtilGetStats.cpp
@@ -1781,6 +1781,7 @@ short ExExeUtilGetRTSStatisticsTcb::work()
Lng32 intSize = 0;
Lng32 valSize = 0;
char timestampVal[50];
+ Lng32 microSecs;
// if no parent request, return
if (qparent_.down->isEmpty())
@@ -1979,7 +1980,7 @@ short ExExeUtilGetRTSStatisticsTcb::work()
{
if (masterStatsItems_ == NULL)
{
- maxMasterStatsItems_ = 32;
+ maxMasterStatsItems_ = 36;
masterStatsItems_ = new (getGlobals()->getDefaultHeap())
SQLSTATS_ITEM[maxMasterStatsItems_];
initSqlStatsItems(masterStatsItems_, maxMasterStatsItems_, FALSE);
@@ -2015,7 +2016,11 @@ short ExExeUtilGetRTSStatisticsTcb::work()
masterStatsItems_[29].statsItem_id = SQLSTATS_RECLAIM_SPACE_COUNT;
masterStatsItems_[30].statsItem_id = SQLSTATS_CANCEL_TIME_ID;
masterStatsItems_[31].statsItem_id = SQLSTATS_SUSPEND_TIME_ID;
- // maxMasterStatsItems_ is set to 32
+ masterStatsItems_[32].statsItem_id = SQLSTATS_EXECUTE_COUNT;
+ masterStatsItems_[33].statsItem_id = SQLSTATS_EXECUTE_TIME_MIN;
+ masterStatsItems_[34].statsItem_id = SQLSTATS_EXECUTE_TIME_MAX;
+ masterStatsItems_[35].statsItem_id = SQLSTATS_EXECUTE_TIME_AVG;
+ // maxMasterStatsItems_ is set to 36
masterStatsItems_[0].str_value = new (getGlobals()->getDefaultHeap())
char[ComSqlId::MAX_QUERY_ID_LEN+1];
masterStatsItems_[0].str_max_len = ComSqlId::MAX_QUERY_ID_LEN;
@@ -2304,6 +2309,33 @@ short ExExeUtilGetRTSStatisticsTcb::work()
str_sprintf(statsBuf_, "%25s%-d", "No. of times reclaimed",
(Lng32)masterStatsItems_[i].int64_value);
break;
+ case SQLSTATS_EXECUTE_COUNT:
+ str_sprintf(Int64Val, "%Ld", masterStatsItems_[i].int64_value);
+ intSize = str_len(Int64Val);
+ AddCommas(Int64Val,intSize);
+ str_sprintf(statsBuf_, "%25s%s", "No. of times executed", Int64Val);
+ break;
+ case SQLSTATS_EXECUTE_TIME_MIN:
+ microSecs = masterStatsItems_[i].int64_value % 1000000L;
+ str_sprintf(Int64Val, "%Ld", masterStatsItems_[i].int64_value/1000000);
+ intSize = str_len(Int64Val);
+ AddCommas(Int64Val,intSize);
+ str_sprintf(statsBuf_, "%25s%0s.%06d secs", "Min. Execute Time", Int64Val,microSecs);
+ break;
+ case SQLSTATS_EXECUTE_TIME_MAX:
+ microSecs = masterStatsItems_[i].int64_value % 1000000L;
+ str_sprintf(Int64Val, "%Ld", masterStatsItems_[i].int64_value/1000000);
+ intSize = str_len(Int64Val);
+ AddCommas(Int64Val,intSize);
+ str_sprintf(statsBuf_, "%25s%0s.%06d secs", "Max. Execute Time", Int64Val,microSecs);
+ break;
+ case SQLSTATS_EXECUTE_TIME_AVG:
+ microSecs = masterStatsItems_[i].int64_value % 1000000L;
+ str_sprintf(Int64Val, "%Ld", masterStatsItems_[i].int64_value/1000000);
+ intSize = str_len(Int64Val);
+ AddCommas(Int64Val,intSize);
+ str_sprintf(statsBuf_, "%25s%0s.%06d secs", "Avg. Execute Time", Int64Val,microSecs);
+ break;
default:
statsBuf_[0] = '\0';
break;
http://git-wip-us.apache.org/repos/asf/incubator-trafodion/blob/419c843a/core/sql/executor/ExStats.cpp
----------------------------------------------------------------------
diff --git a/core/sql/executor/ExStats.cpp b/core/sql/executor/ExStats.cpp
index e97e5ef..6aa02e0 100644
--- a/core/sql/executor/ExStats.cpp
+++ b/core/sql/executor/ExStats.cpp
@@ -8881,6 +8881,7 @@ void ExMasterStats::getVariableStatsInfo(char * dataBuffer,
"exePriority: %d transId: %Ld suspended: %s lastSuspendTime: %Ld "
"LastErrorBeforeAQR: %d AQRNumRetries: %d DelayBeforeAQR: %d reclaimSpaceCnt: %d "
"blockedInSQL: %d blockedInClient: %d lastActivity: %d "
+ "exeCount: %Ld, exeTimeMin: %Ld exeTimeMax: %Ld exeTimeAvg: %Ld "
"sqlSrcLen: %d sqlSrc: \"%s\"",
statType(),
((queryId_ != NULL) ? queryId_ : "NULL"),
@@ -8919,6 +8920,10 @@ void ExMasterStats::getVariableStatsInfo(char * dataBuffer,
timeSinceBlocking(0),
timeSinceUnblocking(0),
lastActivity_,
+ exeTimes_.entryCnt(),
+ exeTimes_.min(),
+ exeTimes_.max(),
+ exeTimes_.mean(),
originalSqlTextLen_,
((sourceStr_ != NULL) ? sourceStr_ : ""));
}
@@ -9263,6 +9268,18 @@ Lng32 ExMasterStats::getStatsItem(SQLSTATS_ITEM* sqlStats_item)
case SQLSTATS_RECLAIM_SPACE_COUNT:
sqlStats_item->int64_value = reclaimSpaceCount_;
break;
+ case SQLSTATS_EXECUTE_COUNT:
+ sqlStats_item->int64_value = exeTimes_.entryCnt();
+ break;
+ case SQLSTATS_EXECUTE_TIME_MIN:
+ sqlStats_item->int64_value = exeTimes_.min();
+ break;
+ case SQLSTATS_EXECUTE_TIME_MAX:
+ sqlStats_item->int64_value = exeTimes_.max();
+ break;
+ case SQLSTATS_EXECUTE_TIME_AVG:
+ sqlStats_item->int64_value = exeTimes_.mean();
+ break;
default:
sqlStats_item->error_code = -EXE_STAT_NOT_FOUND;
break;
http://git-wip-us.apache.org/repos/asf/incubator-trafodion/blob/419c843a/core/sql/executor/ExStats.h
----------------------------------------------------------------------
diff --git a/core/sql/executor/ExStats.h b/core/sql/executor/ExStats.h
index c437750..f2128f7 100644
--- a/core/sql/executor/ExStats.h
+++ b/core/sql/executor/ExStats.h
@@ -188,7 +188,7 @@ protected:
// a generic counter used in ExOperStats (and deerived classes).
// ExStatsCounter provides cnt, min, max, avg, sum, and var
//////////////////////////////////////////////////////////////////
-class ExStatsCounter : public ExStatsBase {
+class ExStatsCounter {
public:
NA_EIDPROC
ExStatsCounter();
@@ -3622,6 +3622,7 @@ NA_EIDPROC
void setExeEndTime(Int64 exeEndTime)
{
exeEndTime_ = exeEndTime;
+ exeTimes_.addEntry(exeEndTime_-exeStartTime_);
}
NA_EIDPROC
@@ -3964,6 +3965,7 @@ private:
Int32 numObjUIDs_;
Int64 *objUIDs_;
Int64 preallocdObjUIDs_[PreAllocatedObjUIDs];
+ ExStatsCounter exeTimes_;
};