add stats
This commit is contained in:
parent
f7a8393c47
commit
09ce818223
|
@ -153,6 +153,11 @@ typedef struct SqlFunctionCtx {
|
|||
SSerializeDataHandle saveHandle;
|
||||
int32_t exprIdx;
|
||||
char udfName[TSDB_FUNC_NAME_LEN];
|
||||
int64_t smaHits;
|
||||
int64_t smaNoHits;
|
||||
int64_t smaNoHitsRows;
|
||||
int64_t sdHits;
|
||||
int64_t sdHitsRows;
|
||||
} SqlFunctionCtx;
|
||||
|
||||
typedef struct tExprNode {
|
||||
|
|
|
@ -231,7 +231,14 @@ typedef struct SOperatorInfo {
|
|||
int64_t downstreamTime;
|
||||
int64_t funcInitTime;
|
||||
int64_t funcExecTime;
|
||||
int64_t funcExecCalled;
|
||||
int64_t totalNumOfRows;
|
||||
int64_t funcFinTime;
|
||||
int64_t smaHits;
|
||||
int64_t smaNoHits;
|
||||
int64_t smaNoHitsRows;
|
||||
int64_t sdHits;
|
||||
int64_t sdHitsRows;
|
||||
} SOperatorInfo;
|
||||
|
||||
typedef enum {
|
||||
|
|
|
@ -1543,6 +1543,11 @@ SqlFunctionCtx* createSqlFunctionCtx(SExprInfo* pExprInfo, int32_t numOfOutput,
|
|||
pCtx->numOfParams = pExpr->base.numOfParams;
|
||||
pCtx->param = pFunct->pParam;
|
||||
pCtx->saveHandle.currentPage = -1;
|
||||
pCtx->smaHits = 0;
|
||||
pCtx->smaNoHits = 0;
|
||||
pCtx->smaNoHitsRows = 0;
|
||||
pCtx->sdHits = 0;
|
||||
pCtx->sdHitsRows = 0;
|
||||
}
|
||||
|
||||
for (int32_t i = 1; i < numOfOutput; ++i) {
|
||||
|
|
|
@ -519,7 +519,14 @@ static int32_t doAggregateImpl(SOperatorInfo* pOperator, SqlFunctionCtx* pCtx) {
|
|||
|
||||
int64_t st = taosGetTimestampUs();
|
||||
int32_t code = pCtx[k].fpSet.process(&pCtx[k]);
|
||||
pOperator->funcExecCalled += 1;
|
||||
pOperator->totalNumOfRows += pCtx->input.numOfRows;
|
||||
pOperator->funcExecTime += taosGetTimestampUs() - st;
|
||||
pOperator->smaHits = pCtx->smaHits;
|
||||
pOperator->smaNoHits = pCtx->smaNoHits;
|
||||
pOperator->smaNoHitsRows = pCtx->smaNoHitsRows;
|
||||
pOperator->sdHits = pCtx->sdHits;
|
||||
pOperator->sdHitsRows = pCtx->sdHitsRows;
|
||||
if (code != TSDB_CODE_SUCCESS) {
|
||||
qError("%s aggregate function error happens, code: %s", GET_TASKID(pOperator->pTaskInfo), tstrerror(code));
|
||||
return code;
|
||||
|
@ -1707,8 +1714,10 @@ void destroyOperatorInfo(SOperatorInfo* pOperator) {
|
|||
double init = (double)pOperator->funcInitTime / 1000000;
|
||||
double exec = (double)pOperator->funcExecTime / 1000000;
|
||||
double fin = (double)pOperator->funcFinTime / 1000000;
|
||||
qError("operator: %s, downstream time:%lf, init time:%lf, exec time:%lf, fin time:%lf",
|
||||
pOperator->name, downstream, init, exec, fin);
|
||||
qError("operator: %s, downstream time:%lf, init time:%lf, exec time:%lf, exec called:%ld, fin time:%lf, total rows:%ld",
|
||||
pOperator->name, downstream, init, exec, pOperator->funcExecCalled, fin, pOperator->totalNumOfRows);
|
||||
qError("operator: %s, sma hits:%ld, sma nohits:%ld, sma nohits rows:%ld, second stage hits:%ld, second stage hits rows:%ld",
|
||||
pOperator->name, pOperator->smaHits, pOperator->smaNoHits, pOperator->smaNoHitsRows, pOperator->sdHits, pOperator->sdHitsRows);
|
||||
}
|
||||
|
||||
if (pOperator->fpSet.closeFn != NULL) {
|
||||
|
@ -1930,7 +1939,14 @@ SOperatorInfo* createAggregateOperatorInfo(SOperatorInfo* downstream, SAggPhysiN
|
|||
pOperator->downstreamTime = 0;
|
||||
pOperator->funcInitTime = 0;
|
||||
pOperator->funcExecTime = 0;
|
||||
pOperator->funcExecCalled = 0;
|
||||
pOperator->funcFinTime = 0;
|
||||
pOperator->totalNumOfRows = 0;
|
||||
pOperator->smaHits = 0;
|
||||
pOperator->smaNoHits = 0;
|
||||
pOperator->smaNoHitsRows = 0;
|
||||
pOperator->sdHits = 0;
|
||||
pOperator->sdHitsRows= 0;
|
||||
|
||||
if (downstream->operatorType == QUERY_NODE_PHYSICAL_PLAN_TABLE_SCAN) {
|
||||
STableScanInfo* pTableScanInfo = downstream->info;
|
||||
|
|
|
@ -1614,6 +1614,7 @@ int32_t percentileFunction(SqlFunctionCtx* pCtx) {
|
|||
}
|
||||
|
||||
pInfo->numOfElems += (pInput->numOfRows - pAgg->numOfNull);
|
||||
pCtx->smaHits += 1;
|
||||
} else {
|
||||
// check the valid data one by one
|
||||
int32_t start = pInput->startRowIndex;
|
||||
|
@ -1636,6 +1637,8 @@ int32_t percentileFunction(SqlFunctionCtx* pCtx) {
|
|||
|
||||
pInfo->numOfElems += 1;
|
||||
}
|
||||
pCtx->smaNoHits += 1;
|
||||
pCtx->smaNoHitsRows += pInput->numOfRows;
|
||||
}
|
||||
} else {
|
||||
// the second stage, calculate the true percentile value
|
||||
|
@ -1655,6 +1658,8 @@ int32_t percentileFunction(SqlFunctionCtx* pCtx) {
|
|||
}
|
||||
|
||||
SET_VAL(pResInfo, numOfElems, 1);
|
||||
pCtx->sdHits += 1;
|
||||
pCtx->sdHitsRows += pInput->numOfRows;
|
||||
}
|
||||
|
||||
return TSDB_CODE_SUCCESS;
|
||||
|
|
Loading…
Reference in New Issue