postgres падает от запроса

1. proger2021 11.03.24 15:15 Сейчас в теме
postgres падает при выполнении запроса

ВЫБРАТЬ
	РезультатыОбменаДанными.УзелИнформационнойБазы КАК УзелИнформационнойБазы,
	ВЫБОР
		КОГДА РезультатыОбменаДанными.ТипПроблемы В (ЗНАЧЕНИЕ(Перечисление.ТипыПроблемОбменаДанными.ОшибкаВыполненияКодаОбработчиковПриПолученииДанных))
			ТОГДА НЕОПРЕДЕЛЕНО
		ИНАЧЕ 3
	КОНЕЦ КАК ДействиеПриОбмене,
	КОЛИЧЕСТВО(различные РезультатыОбменаДанными.ПроблемныйОбъект) КАК Количество
ИЗ
	РегистрСведений.РезультатыОбменаДанными КАК РезультатыОбменаДанными

СГРУППИРОВАТЬ ПО
	РезультатыОбменаДанными.УзелИнформационнойБазы,
	ВЫБОР
		КОГДА РезультатыОбменаДанными.ТипПроблемы В (ЗНАЧЕНИЕ(Перечисление.ТипыПроблемОбменаДанными.ОшибкаВыполненияКодаОбработчиковПриПолученииДанных))
			ТОГДА НЕОПРЕДЕЛЕНО
		ИНАЧЕ 3
	КОНЕЦ
Показать


Смысл в запросе не ищите. Я пытался понять изза чего падает и по максимому урезал.
В postgres запрос выглядит вот так

SEL ECT T1._FLD78284_TYPE,
	T1._FLD78284_RTREF,
	T1._FLD78284_RRREF,
	CASE
					WHEN (T1._FLD78283RREF IN ('\\202\\367&n\\360\\213\\206WH<d\\0073\\223\\230\\300'::BYTEA)) THEN '\\001'::BYTEA
					ELSE '\\003'::BYTEA
	END,
	CASE
					WHEN (T1._FLD78283RREF IN ('\\202\\367&n\\360\\213\\206WH<d\\0073\\223\\230\\300'::BYTEA)) THEN CAST(0 AS NUMERIC)
					ELSE CAST(3 AS NUMERIC)
	END, (COUNT(DISTINCT CASE WHEN T1._FLD78286_TYPE = '\\001'::BYTEA THEN '\\001'::BYTEA END) + COUNT(DISTINCT CASE WHEN T1._FLD78286_TYPE = '\\010'::BYTEA THEN T1._FLD78286_RTREF || T1._FLD78286_RRREF END))
FR OM _INFORG78282 T1
WHERE (T1._FLD3035 = CAST(0 AS NUMERIC))
GROUP BY T1._FLD78284_TYPE,
	T1._FLD78284_RTREF,
	T1._FLD78284_RRREF,
	CASE
					WHEN (T1._FLD78283RREF IN ('\\202\\367&n\\360\\213\\206WH<d\\0073\\223\\230\\300'::BYTEA)) THEN '\\001'::BYTEA
					ELSE '\\003'::BYTEA
	END,
	CASE
					WHEN (T1._FLD78283RREF IN ('\\202\\367&n\\360\\213\\206WH<d\\0073\\223\\230\\300'::BYTEA)) THEN CAST(0 AS NUMERIC)
					ELSE CAST(3 AS NUMERIC)
	END
Показать


Изза чего это может быть?
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. starik-2005 3061 11.03.24 15:47 Сейчас в теме
(1)
падает
Молча падает, без отражений падений в логах?
3. proger2021 11.03.24 15:58 Сейчас в теме

2024-03-11 05:35:44.046 EDT [643] СООБЩЕНИЕ:  процесс сервера (PID 507045) был завершён по сигналу 11: Ошибка сегментирования
2024-03-11 05:35:44.046 EDT [643] ПОДРОБНОСТИ:  Завершившийся процесс выполнял действие: SEL ECT
        T1._Fld78284_TYPE,
        T1._Fld78284_RTRef,
        T1._Fld78284_RRRef,
        CASE WHEN (T1._Fld78283RRef IN ('\\202\\367&n\\360\\213\\206WH<d\\0073\\223\\230\\300'::bytea)) THEN '\\001'::bytea ELSE '\\003'::bytea END,
        CASE WHEN (T1._Fld78283RRef IN ('\\202\\367&n\\360\\213\\206WH<d\\0073\\223\\230\\300'::bytea)) THEN CAST(0 AS NUMERIC) ELSE CAST(3 AS NUMERIC) END,
        (COUNT(DISTINCT CASE WHEN T1._Fld78286_TYPE = '\\001'::bytea THEN '\\001'::bytea END) + COUNT(DISTINCT CASE WHEN T1._Fld78286_TYPE = '\\010'::bytea THEN T1._Fld78286_RTRef || T1._Fld78286_RRRef END))
        FR OM _InfoRg78282 T1
        WHERE (T1._Fld3035 = CAST(0 AS NUMERIC))
        GROUP BY T1._Fld78284_TYPE,
        T1._Fld78284_RTRef,
        T1._Fld78284_RRRef,
        CASE WHEN (T1._Fld78283RRef IN ('\\202\\367&n\\360\\213\\206WH<d\\0073\\223\\230\\300'::bytea)) THEN '\\001'::bytea ELSE '\\003'::bytea END,
        CASE WHEN (T1._Fld78283RRef IN ('\\202\\367&n\\360\\213\\206WH<d\\0073\\223\\230\\300'::bytea)) THEN CAST(0 AS NUMERIC) ELSE CAST(3 AS NUMERIC) END
2024-03-11 05:35:44.046 EDT [643] СООБЩЕНИЕ:  завершение всех остальных активных серверных процессов
2024-03-11 05:35:44.060 EDT [643] СООБЩЕНИЕ:  все серверные процессы завершены... переинициализация
2024-03-11 05:35:44.555 EDT [643] СООБЩЕНИЕ:  Start CFS version 0.54 supported compression algorithms pglz,zlib,lz4,zstd encryption disabled GC enabled
2024-03-11 05:35:44.597 EDT [507049] ВАЖНО:  система баз данных в режиме восстановления
2024-03-11 05:35:44.604 EDT [507050] ВАЖНО:  система баз данных в режиме восстановления
2024-03-11 05:35:44.610 EDT [507051] ВАЖНО:  система баз данных в режиме восстановления
2024-03-11 05:35:44.917 EDT [643] СООБЩЕНИЕ:  Start CFS version 0.54 supported compression algorithms pglz,zlib,lz4,zstd encryption disabled GC enabled
2024-03-11 05:35:44.958 EDT [507052] СООБЩЕНИЕ:  работа системы БД была прервана; последний момент работы: 2024-03-11 05:35:42 EDT
2024-03-11 05:35:49.617 EDT [507096] ВАЖНО:  система баз данных в режиме восстановления
2024-03-11 05:35:50.223 EDT [507052] СООБЩЕНИЕ:  система БД была остановлена нештатно; производится автоматическое восстановление
2024-03-11 05:35:50.497 EDT [507052] СООБЩЕНИЕ:  запись REDO начинается со смещения 5/A390718
2024-03-11 05:35:50.497 EDT [507052] СООБЩЕНИЕ:  Start 1 background garbage collection workers for CFS
2024-03-11 05:35:50.497 EDT [507052] КОНТЕКСТ:  запись REDO в WAL в позиции 5/A390718 для Heap/INPLACE: off: 18; blkref #0: rel 1664/0/1260, blk 0 FPW
2024-03-11 05:35:50.498 EDT [507052] СООБЩЕНИЕ:  неверная длина записи в позиции 5/A391260: ожидалось минимум 28, получено 0
2024-03-11 05:35:50.498 EDT [507052] СООБЩЕНИЕ:  записи REDO обработаны до смещения 5/A391210, нагрузка системы: CPU: пользов.: 0.00 с, система: 0.00 с, прошло: 0.00 с
2024-03-11 05:35:50.912 EDT [507053] СООБЩЕНИЕ:  начата контрольная точка: end-of-recovery immediate wait
2024-03-11 05:35:50.937 EDT [507053] СООБЩЕНИЕ:  контрольная точка завершена: записано буферов: 4 (0.0%); добавлено файлов WAL 0, удалено: 0, переработано: 0; запись=0.019 сек., синхр.=0.002 сек., всего=0.027 сек.; синхронизировано_файлов=3, самая_долгая_синхр.=0.001 сек., средняя=0.001 сек.; расстояние=2 kB, ожидалось=2 kB; lsn=5/A391260, lsn redo=5/A391260
2024-03-11 05:35:50.959 EDT [643] СООБЩЕНИЕ:  система БД готова принимать подключения
Показать
4. starik-2005 3061 11.03.24 16:01 Сейчас в теме
Ошибка сегментирования - это внутренняя ошибка кода СУБД. Фактически это попытка обратиться к невыделенной памяти. Ну и PID 500к+ - это значит, что сервер лет сто не перезагружали. Стоит, полагаю, перезагрузить.
5. proger2021 11.03.24 16:12 Сейчас в теме
Перезагрузка не помогла. Всё точно так же.
6. starik-2005 3061 11.03.24 16:18 Сейчас в теме
(5)
ерезагрузка не помогла. Всё точно так ж
Апнуть версию постгреса на последнюю актуальную.
7. uriah 18 11.03.24 16:22 Сейчас в теме
А этот запрос в локальной версии работает?
8. proger2021 11.03.24 16:32 Сейчас в теме
(7) В файловом варианте? Да, работает.
9. uriah 18 11.03.24 16:51 Сейчас в теме
10. Said-We 11.03.24 17:59 Сейчас в теме
(1) Выбрать первые 1, с разными условиями, что бы записи разные попадали.
Если отработает, то надо сами данные смотреть.
По самому запросу - если в одну колонку помещать Неопределенно и числа порождает лишние группировки и поля. Собственно это видно.
Разные типы в одну колонку, без острой надобности лучше не помещать.

ПроблемныйОбъект - тоже составной тип?
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот