diff --git a/be/src/olap/olap_common.h b/be/src/olap/olap_common.h index 623d2c83e49a9f..a16e96a1a4077a 100644 --- a/be/src/olap/olap_common.h +++ b/be/src/olap/olap_common.h @@ -353,7 +353,8 @@ struct OlapReaderStatistics { int64_t rows_del_by_bitmap = 0; // the number of rows filtered by various column indexes. int64_t rows_conditions_filtered = 0; - int64_t generate_row_ranges_ns = 0; + int64_t generate_row_ranges_by_keys_ns = 0; + int64_t generate_row_ranges_by_column_conditions_ns = 0; int64_t generate_row_ranges_by_bf_ns = 0; int64_t generate_row_ranges_by_zonemap_ns = 0; int64_t generate_row_ranges_by_dict_ns = 0; diff --git a/be/src/olap/rowset/segment_v2/segment_iterator.cpp b/be/src/olap/rowset/segment_v2/segment_iterator.cpp index f1174d3ff26bfa..a8c183f90ef475 100644 --- a/be/src/olap/rowset/segment_v2/segment_iterator.cpp +++ b/be/src/olap/rowset/segment_v2/segment_iterator.cpp @@ -406,6 +406,7 @@ Status SegmentIterator::_lazy_init() { } Status SegmentIterator::_get_row_ranges_by_keys() { + SCOPED_RAW_TIMER(&_opts.stats->generate_row_ranges_by_keys_ns); DorisMetrics::instance()->segment_row_total->increment(num_rows()); // fast path for empty segment or empty key ranges @@ -498,7 +499,7 @@ Status SegmentIterator::_prepare_seek(const StorageReadOptions::KeyRange& key_ra } Status SegmentIterator::_get_row_ranges_by_column_conditions() { - SCOPED_RAW_TIMER(&_opts.stats->generate_row_ranges_ns); + SCOPED_RAW_TIMER(&_opts.stats->generate_row_ranges_by_column_conditions_ns); if (_row_bitmap.isEmpty()) { return Status::OK(); } diff --git a/be/src/pipeline/exec/olap_scan_operator.cpp b/be/src/pipeline/exec/olap_scan_operator.cpp index 37c7664358d927..caf8b46586cca9 100644 --- a/be/src/pipeline/exec/olap_scan_operator.cpp +++ b/be/src/pipeline/exec/olap_scan_operator.cpp @@ -70,7 +70,10 @@ Status OlapScanLocalState::_init_profile() { _block_init_timer = ADD_TIMER(_segment_profile, "BlockInitTime"); _block_init_seek_timer = ADD_TIMER(_segment_profile, "BlockInitSeekTime"); _block_init_seek_counter = ADD_COUNTER(_segment_profile, "BlockInitSeekCount", TUnit::UNIT); - _segment_generate_row_range_timer = ADD_TIMER(_segment_profile, "GenerateRowRangeTime"); + _segment_generate_row_range_by_keys_timer = + ADD_TIMER(_segment_profile, "GenerateRowRangeByKeysTime"); + _segment_generate_row_range_by_column_conditions_timer = + ADD_TIMER(_segment_profile, "GenerateRowRangeByColumnConditionsTime"); _segment_generate_row_range_by_bf_timer = ADD_TIMER(_segment_profile, "GenerateRowRangeByBloomFilterIndexTime"); _collect_iterator_merge_next_timer = ADD_TIMER(_segment_profile, "CollectIteratorMergeTime"); diff --git a/be/src/pipeline/exec/olap_scan_operator.h b/be/src/pipeline/exec/olap_scan_operator.h index 7efe357fe3b90d..439221a81f696a 100644 --- a/be/src/pipeline/exec/olap_scan_operator.h +++ b/be/src/pipeline/exec/olap_scan_operator.h @@ -141,7 +141,8 @@ class OlapScanLocalState final : public ScanLocalState { RuntimeProfile::Counter* _block_init_timer = nullptr; RuntimeProfile::Counter* _block_init_seek_timer = nullptr; RuntimeProfile::Counter* _block_init_seek_counter = nullptr; - RuntimeProfile::Counter* _segment_generate_row_range_timer = nullptr; + RuntimeProfile::Counter* _segment_generate_row_range_by_keys_timer = nullptr; + RuntimeProfile::Counter* _segment_generate_row_range_by_column_conditions_timer = nullptr; RuntimeProfile::Counter* _segment_generate_row_range_by_bf_timer = nullptr; RuntimeProfile::Counter* _collect_iterator_merge_next_timer = nullptr; RuntimeProfile::Counter* _segment_generate_row_range_by_zonemap_timer = nullptr; diff --git a/be/src/vec/exec/scan/new_olap_scanner.cpp b/be/src/vec/exec/scan/new_olap_scanner.cpp index 248d391aaddbd3..48e946d230c944 100644 --- a/be/src/vec/exec/scan/new_olap_scanner.cpp +++ b/be/src/vec/exec/scan/new_olap_scanner.cpp @@ -564,7 +564,10 @@ void NewOlapScanner::_collect_profile_before_close() { COUNTER_UPDATE(local_state->_block_init_timer, stats.block_init_ns); COUNTER_UPDATE(local_state->_block_init_seek_timer, stats.block_init_seek_ns); COUNTER_UPDATE(local_state->_block_init_seek_counter, stats.block_init_seek_num); - COUNTER_UPDATE(local_state->_segment_generate_row_range_timer, stats.generate_row_ranges_ns); + COUNTER_UPDATE(local_state->_segment_generate_row_range_by_keys_timer, + stats.generate_row_ranges_by_keys_ns); + COUNTER_UPDATE(local_state->_segment_generate_row_range_by_column_conditions_timer, + stats.generate_row_ranges_by_column_conditions_ns); COUNTER_UPDATE(local_state->_segment_generate_row_range_by_bf_timer, stats.generate_row_ranges_by_bf_ns); COUNTER_UPDATE(local_state->_collect_iterator_merge_next_timer,