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

Коллеги, есть какой-то алгоритм работы с настройками памяти? Постоянно падает запрос

для заполнения мат.вью с агрегациями такого вида:

INSERT INTO fr_core.core_f_sale_rest_day_mv
SELECT
day_id,
art_id,
argMaxState(art_code, updated_dt) AS art_code,
argMaxState(art_name, updated_dt) AS art_name,
whs_id,
argMaxState(whs_code, updated_dt) AS whs_code,
argMaxState(whs_name, updated_dt) AS whs_name,
argMaxState(whs_reload, updated_dt) AS whs_reload,
argMaxState(sale_qnty, updated_dt) AS sale_qnty,
argMaxState(sale_cp, updated_dt) AS sale_cp,
argMaxState(rest_qnty, updated_dt) AS rest_qnty,
argMaxState(rest_cp, updated_dt) AS rest_cp,
argMaxState(created_dt, updated_dt) AS created_dt,
maxState(updated_dt) AS max_updated_dt
FROM fr_core.core_f_sale_rest_day_rlc
GROUP BY day_id, whs_id, art_id

Сама идея использования взята отсюда (с 23й минуты): https://www.youtube.com/watch?v=j15dvPGzhyE

6 ответов

25 просмотров

Есть настройка которая group by делает с использованием хранилища

Поиграйте с настройками: settings max_bytes_before_external_group_by = 2000000000, max_memory_usage = 35000000000, max_threads = 8, aggregation_memory_efficient_merge_threads = 1 2000000000 - не потреблять больше 2 гигов на этапе сбора 35000000000 - макс. объем допустимой памяти для итогового сбора (35 гигов) max_threads - количество потоков aggregation_memory_efficient_merge_threads - 1 - из документации - "It sets number of threads to do merging of intermediate results. Zero value means - automatically determine number of threads by number of CPU cores. To efficiently merge intermediate data, it is split by 256 buckets (partitions), and all data for each bucket is merged at one step."

та просто через null таблицу, не надо никаких groupby в insert

Владислав-Lazycat Автор вопроса
Алексей Фирсов
Поиграйте с настройками: settings max_bytes_befor...

спасибо. сейчас буду пробовать. у CH столько настроек, что нужен отдельный гайд по ним

Владислав-Lazycat Автор вопроса
Алексей Фирсов
Вам @ den_crane предложил еще более крутой вариант...

я и его попробую. тестирую что-как. Спасибо

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

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

Господа, а что сейчас вообще с рынком труда на делфи происходит? Какова ситуация?
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
Карта сайта