如何在HANA中获取最后执行的SQL语句?

时间:2017-11-16 19:02:50

标签: sap hana

我在SQLScript过程中,并希望从此过程返回最后一个SQL语句,如最后一个rowcount:

/********* Begin Procedure Script ************/ 
BEGIN 
    select 1 as "my_data" from dummy;
    select '::last_SQL' as "last executed sql" from dummy;
    select ::ROWCOUNT as "rowcount" from dummy;
END;
 /********* End Procedure Script ************/

列"最后执行SQL"应填入"选择1作为" my_data"来自假人"在这种情况下。是否有任何变量持有最后一个语句(或任何简单的方法来检索查询计划)?

2 个答案:

答案 0 :(得分:1)

也许你可以查询sys.m_sql_plan_cache系统视图

请检查以下SELECT语句

select
    statement_string, last_execution_timestamp
from SYS.M_SQL_PLAN_CACHE 
where user_name = 'KODYAZ' 
order by last_execution_timestamp desc;

我相信您可以通过引入新的过滤条件来改进查询。

答案 1 :(得分:0)

无法以编程方式获取SQLScript中最后执行的SQL语句。这是因为并非所有语句都会按照源代码中的形式和顺序执行。

如果要分析过程的性能,可以针对过程调用运行PlanViz。一般来说,没有"程序/功能的表现"因为它们总是出现在特定的环境中。 如果在SQL查询中使用,查询转换等内容可以从根本上改变计算某些结果的方式。