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

Sap 如何获取HANA中最后执行的SQL语句?,sap,hana,Sap,Hana,我在一个SQLScript过程中,希望返回此过程中的最后一条SQL语句,如最后一行计数: /********* 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;

我在一个SQLScript过程中,希望返回此过程中的最后一条SQL语句,如最后一行计数:

/********* 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_数据”。是否有保存最后一条语句的变量(或检索查询计划的简单方法)?

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

如果要分析过程的性能,可以针对过程调用运行PlanViz。一般来说,没有“过程/函数的性能”这样的事情,因为它们总是发生在特定的上下文中。
如果在SQL查询中使用,查询转换之类的事情可以从根本上改变某些结果的计算方式

也许您可以查询sys.m\u sql\u plan\u cache系统视图

请检查下面的SELECT语句

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

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

当我在SQL语句中以注释的形式给出唯一标识符来标识“我的”查询时,这种方法非常有效。谢谢我的目的不是监测或分析业绩。Szenario如下:一个部门“A”将向部门“B”提供一些报表,以产生一些产出。与此输出(只是表格中的一些数字)一起,部门“a”希望确定哪个语句生成了书面输出。使用acepted答案,可以轻松地编写带有标识符的语句,查询该语句上次运行的时间,并将其写入表中。好吧,你可以搞定这一点,但所有这些都不是关于安全,而是关于“自我记录”之类的东西。