元素 | 描述 | 限制 | 语法 |
---|---|---|---|
comments | 用于记录伪指令的文本 | 必须出现在注释符号之间 | 字符串 |
下面的表列出了每一个说明方式伪指令的作用。
EXPLAIN 伪指令主要用于测试和调试查询计划。在 SET EXPLAIN ON 已经有效的情况下,它是多余的。在视图定义或子查询中使用是不合法的。
SELECT {+EXPLAIN} c.customer_num, c.lname, o.order_date FROM customer c, orders o WHERE c.customer_num = o.customer_num;
如果远程表是查询的一部分,AVOID_EXECUTE 伪指令防止在本地或远程位置执行查询。这个伪指令不会防止对查询中的不变函数求值。
SELECT {+EXPLAIN, AVOID_EXECUTE} c.customer_num, c.lname, o.order_date FROM customer c, orders o WHERE c.customer_num = o.customer_num;
不执行查询,必须同时使用 EXPLAIN 和 AVOID_EXECUTE 伪指令来查看优化程序的查询计划(在说明输出文件中)。用来分隔这两个伪指令的逗号(, )是可选的。
如果在指定 AVOID_EXECUTE 伪指令时省略 EXPLAIN 伪指令,不会报错,但是查询计划不会写到说明输出文件,并且不执行 DML 语句。
然而,在 INSERT 语句的 SELECT 语句中,它们是合法的。