Устранение ошибки при выполнении запроса Exception Memory limit (total) exceeded
Статья создана
Обновлена 16 августа 2024 г.
Описание проблемы
При выполнении запроса в ClickHouse® возникает ошибка:
DB::Exception: Memory limit (total) exceeded: would use XX.XX GiB (attempt to allocate chunk of XXXXXXXX bytes), maximum: XX.X GiB. (MEMORY_LIMIT_EXCEEDED), Stack trace (when copying this message, always include the lines below)
Решение
Такая ошибка говорит о том, что запрос к базе превышает установленный для пользователя лимит оперативной памяти. Увеличить его можно в Консоли управленияmax_memory_usage
.
Важно
Лимит max_memory_usage
не должен превышать параметр max_server_memory_usage
.
Если в кластере включено управление пользователями через SQL, то можно задать этот параметр:
- Для сессии, через
set max_memory_usage
; - Для всех пользователей по умолчанию, создав один профиль настроек
.
Если проблема осталась
Если вышеописанные действия не помогли решить проблему, создайте запрос в техническую поддержку
- Идентификатор кластера Yandex Managed Service for ClickHouse®.
- Код запроса к базе.
- Полный текст сообщения об ошибке.