184 похожих чатов

Привет Подскажите, пожалуйста есть запрос вида select … from distiubted_table inner join (select …

from local_table) // replacing merge tree
any left join (select … from view) // ~100 записей, запрос за 0.001 отрабатывает

запрос этот отрабатывает за 10 секунд

если обернуть верхний запрос во view

create view blabla as селект верхний запрос

то select count() from blabla будет работать уже 30+ секунд

по дебагу глянул, что 2021.03.09 11:34:50.924856 [ 27746 ] {27683dd2-c134-4d4d-a429-19c28d24f620} <Debug> CreatingSetsBlockInputStream: Created. Join with 20244545 entries from 20244545 rows. In 6.572 sec. вот эта штука работает дольше всего.

в чем концепутальная разница 1 и 2 запроса ?

10 ответов

22 просмотра

Какая версия?

Mishanya- Автор вопроса

были некоторые проблемы с перфомансем у view set enable_debug_queries=1; ANALYZE .... и оба запроса

Mishanya- Автор вопроса
Dmitry [Altinity] Titov
были некоторые проблемы с перфомансем у view set ...

второй(который вью) отваливаетсся по памяти DB::Exception: Memory limit (for query) exceeded: would use 6.00 EiB (attempt to allocate chunk of 6917529027638199666 bytes), maximum: 18.63 GiB. в первом Logical error: incorrect table expression. хотя без аналайза все ок в обеих я чекал вообще через трейс левел

У вас есть WITH в этом запросе?

Mishanya- Автор вопроса
Dmitry [Altinity] Titov
У вас есть WITH в этом запросе?

нет хотя есть, который any left join (select … from view) // ~100 записей, запрос за 0.001 отрабатывает но я думаю, что не в нем проблема

Mishanya
нет хотя есть, который any left join (select … fro...

https://github.com/ClickHouse/ClickHouse/issues/12293 Была подобная проблема с allow_push_predicate_when_subquery_contains_with 0/1 Но не похоже что это оно

Mishanya- Автор вопроса
Dmitry [Altinity] Titov
https://github.com/ClickHouse/ClickHouse/issues/12...

там просто with типа with select value from table limit 1 , супер просто

Mishanya
там просто with типа with select value from table ...

Попробуйте тогда все таки выполнить запрос c set allow_push_predicate_when_subquery_contains_with=0; и set allow_push_predicate_when_subquery_contains_with=1;

Mishanya- Автор вопроса
Dmitry [Altinity] Titov
Попробуйте тогда все таки выполнить запрос c set ...

это видимо в более поздних версиях. у меня нет такой настройки

Похожие вопросы

Обсуждают сегодня

Господа, а что сейчас вообще с рынком труда на делфи происходит? Какова ситуация?
Rꙮman Yankꙮvsky
29
А вообще, что может смущать в самой Julia - бы сказал, что нет единого стандартного подхода по многим моментам, поэтому многое выглядит как "хаки" и произвол. Короче говоря, с...
Viktor G.
2
30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Добрый день! Скажите пожалуйста, а какие программы вы бы рекомендовали написать для того, чтобы научиться управлять памятью? Можно написать динамический массив, можно связный ...
Филипп
7
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Ребят в СИ можно реализовать ООП?
Николай
33
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
Карта сайта