如何获取HANA中最后执行的SQL语句?
How to get the last executed SQL statement in HANA?
我在一个 SQLScript 过程中,想要 return 这个过程的最后一个 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 ************/
在这种情况下,"last executed SQL" 列应填充 "select 1 as "my_data" from dummy"。是否有任何变量保存最后一条语句(或任何检索查询计划的简单方法)?
无法以编程方式获取 SQL 脚本中最后执行的 SQL 语句。这是因为并非所有语句都会按照它们在源代码中出现的形式和顺序执行。
如果要分析过程的性能,可以运行 PlanViz 针对过程调用。通常,没有 "the performance of a procedure/function" 这样的东西,因为它们总是出现在特定的上下文中。
如果在 SQL 查询中使用,查询转换之类的东西可以从根本上改变某些结果的计算方式。
或许可以查询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;
我相信您可以通过引入新的过滤条件来改进查询。
我在一个 SQLScript 过程中,想要 return 这个过程的最后一个 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 ************/
在这种情况下,"last executed SQL" 列应填充 "select 1 as "my_data" from dummy"。是否有任何变量保存最后一条语句(或任何检索查询计划的简单方法)?
无法以编程方式获取 SQL 脚本中最后执行的 SQL 语句。这是因为并非所有语句都会按照它们在源代码中出现的形式和顺序执行。
如果要分析过程的性能,可以运行 PlanViz 针对过程调用。通常,没有 "the performance of a procedure/function" 这样的东西,因为它们总是出现在特定的上下文中。 如果在 SQL 查询中使用,查询转换之类的东西可以从根本上改变某些结果的计算方式。
或许可以查询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;
我相信您可以通过引入新的过滤条件来改进查询。