本文主要是介绍HANA recompile sql plan cache,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
SAP系统月结当天,S4系统报错 “DBSQL_SQL_INTERNAL_DB_ERROR" .
查ST22得以下错误
Database error number: SQL CODE :2048
Database error text: " SQL message: column store error: [2617] executor: plan operation execution failed with an exeception"
以及
Database error number: SQL CODE :2048
Database error text: "SQL message: column store error: search table error: [9] Memory allocation failed"
在网上查到以下处理方法,提示清除SQL语句的内存限制。
https://blog.csdn.net/weixin_41725521/article/details/84137499?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522160687357619724839551289%2522%252C%2522scm%2522%253A%252220140713.130102334.pc%255Fall.%2522%257D&request_id=160687357619724839551289&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~all~first_rank_v2~rank_v28-1-84137499.pc_search_result_cache&utm_term=SQL%20CODE%202048&spm=1018.2118.3001.4449
同时在数据库系统中找到了内存的DUMP文件,为单个SQL语句使用内存超过了200GB,导致了DUMP。(曾经因单个SQL语句耗尽所有内存而导致系统崩溃,故设置了200G的限制)
将SQL限制大小从200GB改为300GB后,此报错消失。
之后,顾问反应系统事务CON2变的缓慢。
用STAD查询顾问运行的记录,顾问帐号运行了CON2十分钟(之后强制中断了事务),时间都消耗在Processing time,判断为应用端问题,但是检查了相关的点,都没有找到异常。
后用户继续反应速度慢。再次查询用户的运行记录,用户的运行记录则都消耗在了DB上。
检查DB状态,内存在修改限制后,最大使用量有了较大的提升,CPU负载偶尔达到70%,SAP系统内其它操作速度正常。
判断为单个事务的问题。
在studio检查EXPENSIVE 语句,查询到多条COSS的语句,运行时长都超过了500秒。
通过statement_hash查询host_sql_plan_cache,发现在此SQL在内存限制调整后的执行时间,由原来的100多秒增加至500多秒。
判断为物理环境变更后,SQL的执行计划没有做相应的自动更新。
处理方法为手动重新编译此执行计划:
alter system recompile sql plan cache entry '<PLAN ID>'
可以在m_sql_plan_cache中的有效性中观察到变更。
重新编译后,用户回馈CON2的速度变正常。
查询plan历史表,平均时间由之前的500+秒,下降至8秒左右。
这篇关于HANA recompile sql plan cache的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!