timestamp > (NOW() - toIntervalHour(24))
LIMIT 1000
FORMAT Null
Query id: 5daedcea-02ff-46e3-a867-d47226b6c457
0 rows in set. Elapsed: 0.011 sec.
Received exception from server (version 21.5.5):
Code: 241. DB::Exception: Received from localhost:9000. DB::Exception: Memory limit (for query) exceeded: would use 9.66 GiB (attempt to allocate chunk of 1802147920 bytes), maximum: 9.31 GiB: While executing MergeTreeThread.
Где можно посмотреть в чем дело?
колонка message просто большая и КХ кушает память потому что все в блоках по 65к строк * число потоков попробуйте дописать в конец запроса settings max_block_size=512
Если демона перегрузить, то работает...
это ничего не доказывает. Мой совет помогает? Воспроизводимый пример есть?
Нет, не помогает. SELECT message FROM syslog WHERE timestamp > NOW() - INTERVAL 24 HOUR LIMIT 1000 FORMAT Null settings max_block_size=512; SELECT message FROM syslog WHERE timestamp > (NOW() - toIntervalHour(24)) LIMIT 1000 SETTINGS max_block_size = 512 FORMAT Null SETTINGS max_block_size = 512 Query id: 09f8f009-af77-48ab-94c6-436960867c01 0 rows in set. Elapsed: 0.009 sec. Received exception from server (version 21.5.5): Code: 241. DB::Exception: Received from localhost:9000. DB::Exception: Memory limit (for query) exceeded: would use 9.61 GiB (attempt to allocate chunk of 1870401930 bytes), maximum: 9.31 GiB: While executing MergeTreeThread.
"Пример" передать не могу, база очень большая... Происходит прямо сейчас...
а если перед запросом set max_block_size=512, max_threads=4; SELECT message FROM syslog WHERE timestamp > NOW() - INTERVAL 24 HOUR LIMIT 1000 FORMAT Null settings max_block_size=512;
Работает даже если оставить только `set max_threads=4;`
Работает до тех пор пока не вставить сортировку. SELECT message FROM syslog WHERE timestamp > (NOW() - toIntervalDay(30)) ORDER BY timestamp ASC, hostname ASC LIMIT 1000 SETTINGS max_threads=1, max_memory_usage=0 FORMAT Null Влияет ли размер PARTITION BY toYYYYMMDD(timestamp)?
Обсуждают сегодня