| buildLeafOrScanJob(StatementContext, PlanFragment, List, ListMultimap) |   | 23% |   | 21% | 7 | 8 | 10 | 17 | 0 | 1 |
| buildFragmentLineage(FragmentIdMapping) |   | 54% |   | 50% | 4 | 6 | 9 | 22 | 0 | 1 |
| buildScanOlapTableJob(StatementContext, PlanFragment, List, ListMultimap, ScanWorkerSelector) |  | 0% |  | 0% | 3 | 3 | 7 | 7 | 1 | 1 |
| findInputJobs(UnassignedJobBuilder.FragmentLineage, PlanFragmentId, FragmentIdMapping) |   | 33% |   | 33% | 3 | 4 | 7 | 12 | 0 | 1 |
| buildScanRemoteTableJob(StatementContext, PlanFragment, List, ListMultimap, ScanWorkerSelector) |  | 0% |  | 0% | 3 | 3 | 6 | 6 | 1 | 1 |
| buildJob(StatementContext, PlanFragment, ListMultimap, boolean) |   | 54% |   | 50% | 7 | 8 | 4 | 11 | 0 | 1 |
| buildShuffleJob(StatementContext, PlanFragment, ListMultimap) |  | 0% |  | 0% | 2 | 2 | 3 | 3 | 1 | 1 |
| shouldAssignByBucket(PlanFragment) |  | 0% |  | 0% | 3 | 3 | 5 | 5 | 1 | 1 |
| olapScanNodeNum(List) |   | 52% |   | 25% | 2 | 3 | 3 | 6 | 0 | 1 |
| buildScanRecursiveCteJob(StatementContext, PlanFragment, RecursiveCteScanNode, ListMultimap, ScanWorkerSelector) |  | 0% | | n/a | 1 | 1 | 1 | 1 | 1 | 1 |
| buildSpecifyInstancesJob(StatementContext, PlanFragment, List, ListMultimap) |  | 0% | | n/a | 1 | 1 | 1 | 1 | 1 | 1 |
| buildScanMetadataJob(StatementContext, PlanFragment, SchemaScanNode, ScanWorkerSelector) |  | 0% | | n/a | 1 | 1 | 1 | 1 | 1 | 1 |
| buildJobs(ScanWorkerSelector, StatementContext, FragmentIdMapping) |   | 98% |   | 75% | 1 | 3 | 0 | 14 | 0 | 1 |
| collectScanNodesInThisFragment(PlanFragment) |  | 100% | | n/a | 0 | 1 | 0 | 1 | 0 | 1 |
| collectExchangeNodesInThisFragment(PlanFragment) |  | 100% | | n/a | 0 | 1 | 0 | 3 | 0 | 1 |
| UnassignedJobBuilder(ScanWorkerSelector) |  | 100% | | n/a | 0 | 1 | 0 | 3 | 0 | 1 |
| buildQueryConstantJob(StatementContext, PlanFragment) |  | 100% | | n/a | 0 | 1 | 0 | 1 | 0 | 1 |
| isLeafFragment(PlanFragment) |  | 100% | | n/a | 0 | 1 | 0 | 1 | 0 | 1 |