ENG: | ORA-00600 internal error code arguments 19004 |
Oracle 10.2.0.5 Patch 10 for Windows (то что я сам видел 32-бита). Приложение на Oracle Forms падает с
FRM-40735: post-query триггер вызвал необработанное исключение ora-00600
В alert.log мы видим
ORA-00600: internal error code, arguments: [19004], [], [], [], [], [], [], []
Current SQL statement for this session:
SELECT R.ID RT_ID FROM APP_CLAIMS AC,RT_RIGHTS R WHERE AC.ADD_PAGE = 'Д' AND AC.RT_ID = R.ID AND AC.APP_ID = :b1
©Bobrovsky Dmitry
На My Oracle Support (MOS) нашел статью 138652.1 ORA-600 [19004]. Там заявлено два бага, один из них закрывается еще в 10.2.0.4 Patch 35. А вот второй – оптимизатор падает на corrupt гистограмме правиться только в 11 и 12 версиях. Предлагается удалить эти испорченные гистограммы.
Dmitry Bobrovsky
Конкретно выяснять какая именно гистограмма ломает запрос – это долго, поэтому решил удалить гистограммы на проблемные таблицы и оставить статистику просто на саму таблицу. Для этого изменил процедуру сбора статистик оптимизатора
BEGIN dbms_stats.gather_schema_stats(ownname=>'SYS' , CASCADE=>TRUE); dbms_stats.gather_schema_stats(ownname=>'REG_RT' , CASCADE=>TRUE); dbms_stats.gather_schema_stats(ownname=>'CTXSYS' , CASCADE=>TRUE); -- Удаление статистик (вместе с гистограммами) на проблемные таблицы dbms_stats.DELETE_TABLE_STATS(ownname=>'REG_RT' , tabname=>'APP_RE',cascade_indexes=>FALSE); dbms_stats.DELETE_TABLE_STATS(ownname=>'REG_RT' , tabname=>'APP_APPLICATIONS',cascade_indexes=>FALSE); dbms_stats.DELETE_TABLE_STATS(ownname=>'REG_RT' , tabname=>'RT_RIGHTS',cascade_indexes=>FALSE); -- Сбор статистик только на саму таблицу, без гистограмм execute immediate ('ANALYZE TABLE reg_rt.APP_RE compute statistics FOR table'); execute immediate ('ANALYZE TABLE reg_rt.APP_APPLICATIONS compute statistics FOR table'); execute immediate ('ANALYZE TABLE reg_rt.RT_RIGHTS compute statistics FOR table'); END; /
Запись Как удалить свой блог на blogger.com? впервые появилась Dmitry Bobrovsky Blog