我在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"来自假人"在这种情况下。是否有任何变量持有最后一个语句(或任何简单的方法来检索查询计划)?
答案 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查询中使用,查询转换等内容可以从根本上改变计算某些结果的方式。