ORA-600 [32695] [га sh агрегирование невозможно] - PullRequest
1 голос
/ 03 августа 2020

У меня есть сопоставление, развернутое в производственной среде, но я получаю ошибку ниже на этапе вставки новой строки моего сопоставления:

ORA-00600: код внутренней ошибки, аргументы: [32695 ], [ha sh агрегирование невозможно], [], [], [], [], [], [], [], [], [], []

Такое же сопоставление было в промежуточном режиме, но без ошибок. Что может быть причиной? У меня есть функция MIN в одном из столбцов даты.

1 Ответ

0 голосов
/ 08 августа 2020

Ha sh ошибки агрегирования - это ошибки, которых можно избежать с помощью подсказки, настройки сеанса или изменения параметра.

При отключении функций Oracle постарайтесь повлиять на минимально возможный объем:

  1. Если возможно, добавьте к запросу подсказку /*+ no_use_hash_aggregation */. Если вы не можете напрямую изменить запрос, вы можете добавить подсказку через профиль SQL.
  2. Если запрос постоянно меняется и не имеет ни одного SQL_ID, измените сеанс с помощью alter session set "_gby_hash_aggregation_enabled" = true;.
  3. Если вы не можете изменить настройки сеанса, измените всю систему с помощью alter system set "_gby_hash_aggregation_enabled" = true;. (Вставьте сюда стандартное предупреждение о недокументированных параметрах.)

Ошибки ORA-600 являются ошибками, но обычно c о них не нужно беспокоиться. Первым шагом для ошибок ORA-600 является go для поддержки. oracle .com, найдите «инструмент ora-600», введите значение первого параметра («32695») и просмотрите различные документы. Всегда делайте этот простой шаг перед тем, как создать запрос на обслуживание или позвонить по номеру Oracle, иначе вы можете потерять много времени. И имейте в виду, что часто вам не нужно «исправлять» эти ошибки с помощью патчей, обновлений или других серьезных изменений. Обычно существует простой способ избежать проблемы и потратить на это всего несколько минут.

К счастью, эта специфическая c проблема не только скрыта за платным доступом поддержки Oracle, но есть много других результатов поиска которые рекомендуют отключить агрегацию ha sh. При группировании или объединении данных хеширование обычно выполняется быстрее, чем сортировка (поскольку ha sh может выполняться за одну операцию, а сортировка выполняется в операциях LOG (N)). Oracle используется для всегда сортировки данных для группировки, но в более поздних версиях вместо этого начали использовать хеширование. К сожалению, операции «HA SH GROUP BY» по-прежнему имеют некоторые проблемы, и иногда их необходимо отключить вручную.

...