diff --git a/source/libs/executor/src/projectoperator.c b/source/libs/executor/src/projectoperator.c index 86c49e0fc82b76a595480e61b53167aab4b81f18..811bcbe0b52ff4d624f5dbbea5c8ab625a822f3c 100644 --- a/source/libs/executor/src/projectoperator.c +++ b/source/libs/executor/src/projectoperator.c @@ -247,6 +247,9 @@ SSDataBlock* doProjectOperation(SOperatorInfo* pOperator) { return doGenerateSourceData(pOperator); } + int64_t st0 = taosGetTimestampUs(); + int64_t st1 = 0, st2 = 0; + while (1) { while (1) { blockDataCleanup(pRes); @@ -258,6 +261,7 @@ SSDataBlock* doProjectOperation(SOperatorInfo* pOperator) { setOperatorCompleted(pOperator); break; } + st1 = taosGetTimestampUs(); // if (pTaskInfo->execModel == OPTR_EXEC_MODEL_QUEUE) { // qDebug("set status recv"); // pOperator->status = OP_EXEC_RECV; @@ -299,6 +303,8 @@ SSDataBlock* doProjectOperation(SOperatorInfo* pOperator) { continue; } + st2 = taosGetTimestampUs(); + break; } @@ -344,6 +350,10 @@ SSDataBlock* doProjectOperation(SOperatorInfo* pOperator) { pOperator->cost.openCost = (taosGetTimestampUs() - st) / 1000.0; } + if (p->info.rows > 0) { + qError("doProjection, open:%" PRId64 "us, project:%" PRId64 "us, rows:%" PRId64,st1-st0,st2-st1,p->info.rows); + } + return (p->info.rows > 0) ? p : NULL; } diff --git a/source/libs/executor/src/timewindowoperator.c b/source/libs/executor/src/timewindowoperator.c index 1a1fb6208d7a187f207c73c8fd5e53e8750bd52d..e115090be72aba342df166f1144e573102722d4c 100644 --- a/source/libs/executor/src/timewindowoperator.c +++ b/source/libs/executor/src/timewindowoperator.c @@ -1275,15 +1275,20 @@ static SSDataBlock* doBuildIntervalResult(SOperatorInfo* pOperator) { return NULL; } + int64_t st0 = taosGetTimestampUs(); SSDataBlock* pBlock = pInfo->binfo.pRes; pTaskInfo->code = pOperator->fpSet._openFn(pOperator); if (pTaskInfo->code != TSDB_CODE_SUCCESS) { return NULL; } + int64_t st1 = taosGetTimestampUs(); + int64_t st2 = 0, st3 = 0; while (1) { doBuildResultDatablock(pOperator, &pInfo->binfo, &pInfo->groupResInfo, pInfo->aggSup.pResultBuf); + st2 = taosGetTimestampUs(); doFilter(pBlock, pOperator->exprSupp.pFilterInfo, NULL); + st3 = taosGetTimestampUs(); bool hasRemain = hasRemainResults(&pInfo->groupResInfo); if (!hasRemain) { @@ -1292,6 +1297,7 @@ static SSDataBlock* doBuildIntervalResult(SOperatorInfo* pOperator) { } if (pBlock->info.rows > 0) { + qError("interval open:%" PRId64 "us, build:%" PRId64 "us, filter:%" PRId64 "us, rows:%" PRId64, st1-st0,st2-st1,st3-st2,pBlock->info.rows); break; } }