From e835ec0b5633835862a16d7bdeca3e900e13f3c6 Mon Sep 17 00:00:00 2001 From: Ivan Babrou Date: Fri, 24 Jul 2020 15:45:35 -0700 Subject: [PATCH] Show marks before applying skipping indices This change makes skipping index efficiency more obvious, changing this: ``` Selected 30 parts by date, 30 parts by key, 592 marks to read from 541 ranges ``` Into this: ``` Selected 30 parts by date, 30 parts by key, 48324 marks by primary key, 592 marks to read from 541 ranges ``` --- src/Storages/MergeTree/MergeTreeDataSelectExecutor.cpp | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/Storages/MergeTree/MergeTreeDataSelectExecutor.cpp b/src/Storages/MergeTree/MergeTreeDataSelectExecutor.cpp index 306bcd9000a..929859b7e89 100644 --- a/src/Storages/MergeTree/MergeTreeDataSelectExecutor.cpp +++ b/src/Storages/MergeTree/MergeTreeDataSelectExecutor.cpp @@ -570,6 +570,7 @@ Pipes MergeTreeDataSelectExecutor::readFromParts( } /// Let's find what range to read from each part. + size_t sum_marks_pk = 0; size_t sum_marks = 0; size_t sum_ranges = 0; for (auto & part : parts) @@ -589,6 +590,9 @@ Pipes MergeTreeDataSelectExecutor::readFromParts( } } + if (!ranges.ranges.empty()) + sum_marks_pk += ranges.getMarksCount(); + for (const auto & index_and_condition : useful_indices) ranges.ranges = filterMarksUsingIndex( index_and_condition.first, index_and_condition.second, part, ranges.ranges, settings, reader_settings); @@ -602,7 +606,7 @@ Pipes MergeTreeDataSelectExecutor::readFromParts( } } - LOG_DEBUG(log, "Selected {} parts by date, {} parts by key, {} marks to read from {} ranges", parts.size(), parts_with_ranges.size(), sum_marks, sum_ranges); + LOG_DEBUG(log, "Selected {} parts by date, {} parts by key, {} marks by primary key, {} marks to read from {} ranges", parts.size(), parts_with_ranges.size(), sum_marks_pk, sum_marks, sum_ranges); if (parts_with_ranges.empty()) return {};