为提高效率,提问时请提供以下信息,问题描述清晰可优先响应。
【DM版本】:
【操作系统】:统信
【CPU】:
【问题描述】*:
SELECT count(0) FROM xyw_wkdata_new.ener_grading_detail ed
LEFT JOIN xyw_wkdata_new.enterprise_info ei ON ed.enterprise_guid = ei.guid
WHERE ed.enterprise_guid = ''
AND (ed.is_delete IS NULL OR ed.is_delete = 0)
AND (ei.is_delete IS NULL OR ei.is_delete = 0)
只要执行这个sql就必然导致达梦崩溃,测试了一下去掉最后一行是正常的,放上去执行达梦就崩了.
dump日志sigterm_handler receive signal 11
进程日志:
Jun 04 14:39:26 iZ7ck01izedz48ivoe4ai0Z systemd[1]: DmServiceDM.service: Main process exited, code=killed, status=4/ILL
Jun 04 14:39:26 iZ7ck01izedz48ivoe4ai0Z systemd[1]: DmServiceDM.service: Failed with result 'signal'.
该sql放在本地测试环境执行是正常的,本地是ubuntu上的
问题已解决,将dm.ini中OPTIMIZER_OR_NBEXP改成13就可以了
可能是旧版本已知缺陷,试试以下方式能否绕过:
SELECT /*+partial_join_evaluation_flag(0)*/ count(0) FROM xyw_wkdata_new.ener_grading_detail ed LEFT JOIN xyw_wkdata_new.enterprise_info ei ON ed.enterprise_guid = ei.guid WHERE ed.enterprise_guid = '' AND (ed.is_delete IS NULL OR ed.is_delete = 0) AND (ei.is_delete IS NULL OR ei.is_delete = 0)
根因定位需要分析core文件