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_;
 };