点击此处---> 群内免费提供SAP练习系统(在群公告中)加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)嗨, Linux上的ASE ...
点击此处---> 群内免费提供SAP练习系统(在群公告中)加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)嗨, Linux上的ASE ...
加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)
嗨,
Linux上的ASE 15.7.1。
周末结束时的维护工作(重组,更新统计信息),星期一用户开始工作,并且所有存储过程和触发器都将重新编译并获得新的查询计划。 一个触发器会获得2个不同的查询计划,并且性能会有很大不同。 使用强制索引重新创建触发器,现在只有一个计划,它可以正常工作。
出于好奇,我检查了有多少个存储的proc和触发器具有一个以上的查询计划,并且发现在维护作业运行两天后,有400多个具有两个或多个查询计划且性能差异很大的已编译对象。
ASE如何管理这些不同的计划? 有什么东西可以消除最糟糕的东西吗?
select * from(
select count(*)作为"数字",ExecutionTime/RequestCnt作为" averageTime",DBName,ObjectType,ObjectName来自monCachedProcedures,其中ObjectName不像" *%*"那样按DBName,ObjectType, ObjectName)a
其中数字>按DBName,ObjectType,ObjectName,averageTime的1顺序
number averageTime DBName ObjectType ObjectName
----------- ----------- ----------------- ------------- -------------------------------- ----- -------------------------
9 9 15 MEDUSA_PROD存储过程AvailabilityUnprocessedPoll
9 17 31504 MEDUSA_PROD存储过程AvailabilityUnprocessedPoll
9 19 44073 MEDUSA_PROD存储过程 AvailabilityUnprocessedPoll
9140600 MEDUSA_PROD存储过程AvailabilityUnprocessedPoll
9 334 1 MEDUSA_PROD存储过程AvailabilityUnprocessedPoll
9 2682 32 MEDUSA_PROD存储过程AvailabilityUnprocessedPoll
9 3169 17 MEDUSA_PROD存储过程AvailabilityUnprocessedPoll
9 7048 1 AvailabilityUnprocessedPoll
9 25417 2 MEDUSA_PROD存储过程AvailabilityUnprocessedPoll
我在上面编写了查询,看一下具有9个不同查询计划的存储过程示例,平均执行时间从9毫秒变为25秒,并且速度不是最快的选择。
我知道有dbcc deleteplan,但是它不受支持,我不喜欢在生产中使用它。 还有其他最佳做法吗? 每次维护作业运行时,程序或触发器是否可能开始缓慢运行? dba可以采取什么措施来防止这种情况发生?
几个问号只是为了给您更多有关同一问题的观点。
Massimo,
您是否正在偶然打开带有ddl的sp/trigger中带有索引的#tables? 请看一下这篇KBA文章:
https://launchpad.support.sap.com/#/notes/2224058
致谢
Mehrab
一周热门 更多>