EXPLAIN PLAN [SET STATEMENT_NAME = FOR
语法元素描述SET STATEMENT_NAME = FOR SQL PLAN CACHE ENTRY
EXPLAIN PLAN 提供有关给定过程的编译计划的信息。编译计划结果保存在名为 EXPLAIN_CALL_PLANS 的表中。
EXPLAIN PLAN 通过使用给定的 SQLScript 引擎计划结构生成计划信息。它会遍历计划结构并记录与当前 SQLScript 引擎运算符对应的每个信息。
如果在过程内部调用另一个过程,EXPLAIN PLAN 将在调用运算符(调用程序)下插入调用过程 (callee) 的结果,尽管实际调用的过程是不位于调用运算符下的子计划。
另一种情况是 else 运算符。 EXPLAIN PLAN 生成虚拟 else 运算符来表示条件运算符中的替代运算符。
CREATE PROCEDURE proc_p1(a int) as
begin
declare i int default 0;
create table tab1 (attr1 int);
if a > 0 then
select 5 from dummy;
else
select 10 from dummy;
end if;
while i < 10 do
insert into tab1 values (1);
i := i + 1;
end while;
drop table tab1;
end;
EXPLAIN PLAN SET STATEMENT_NAME = 'test' FOR CALL proc_p1(1);可以通过从表 EXPLAIN_CALL_PLANS 中进行选择来检索结果。
SELECT * FROM EXPLAIN_CALL_PLANS WHERE STATEMENT_NAME = 'test';Select 查询的 EXPLAIN PLAN 通过 HDB 客户端删除其临时表,但在 EXPLAIN PLAN FOR 调用的情况下,尚不支持。要删除表中的行,请从 EXPLAIN_CALL_PLANS 表中执行删除查询。
备注客户端集成尚不可用。您需要使用上述 SQL 语句检索计划信息。