背景:達夢數據庫使用過程中,某天突然服務宕機,導致各類后端服務無法注冊到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():