提交 09ce8182 编写于 作者: G Ganlin Zhao

add stats

上级 f7a8393c
......@@ -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;
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册