背景:达梦数据库使用过程中,某天突然服务宕机,导致各类后端服务无法注册到nacos上,重启之后nacos正常启动,可执行一条两千多条数据量的连表查询时间很长,甚至会报错,经查看日志发现在查询过程中,将服务器的内存直接吃满了,通过free命令查看内存使用情况,发现确实如此
可通过以下方式解决:
1.--收集SYSDBA模式下所有对象的统计信息,包括索引
DBMS_STATS.GATHER_SCHEMA_STATS('用户名/模式名',100,FALSE,'FOR ALL COLUMNS SIZE AUTO');
2.--收集T1表上所有对象信息,包括索引
DBMS_STATS.GATHER_TABLE_STATS('用户名/模式名','表名',NULL,100,FALSE,'FOR ALL COLUMNS SIZE AUTO');
3.清除计划缓存(收集统计信息之后使用)
call sp clear plan cache():