您好,我是小DAI,专注于数据库管理员相关的技术问答,请问有什么可以帮您?

HTML_PLAN 函数 [字符串]

以 HTML 格式字符串的形式返回查询计划。

语法

HTML_PLAN (  )

注意需要考虑 CIS 函数补偿性能注意事项。

参数

参数说明string-expression生成计划所使用的 SQL 语句。该语句主要是 SELECT 语句,但也可以是 UPDATEDELETE 语句。  如果未向 HTML_PLAN 函数提供参数,则系统会从高速缓存将查询计划返回给您。如果高速缓存中没有查询计划,则会显示以下消息:

No plan available

HTML_PLAN 函数的行为由数据库选项 QUERY_PLAN_TEXT_ACCESS 和 QUERY_PLAN_TEXT_CACHING 控制。如果 QUERY_PLAN_TEXT_ACCESS 为 OFF(缺省值),则系统将显示以下消息:

Plan not available. The database option QUERY_PLAN_TEXT_ACCESS is OFF

如果 QUERY_PLAN_TEXT_ACCESS 为 ON,且该字符串表达式的查询计划可用于服务器所维护的高速缓存中,则会从高速缓存返回查询计划。

借助 SELECTUPDATEDELETEINSERT SELECTSELECT INTO,HTML_PLAN 函数可用于向 Interactive SQL 返回查询计划。

用户可以查看针对 SAP IQ 查询打开的游标的查询计划。要获取最近打开的游标的查询计划,请使用:

SELECT HTML_PLAN ( );

当 QUERY_PLAN_AFTER_RUN 选项为 OFF 时,计划会显示在 OPEN CURSOR 或 CLOSE CURSOR 之后。但如果 QUERY_PLAN_AFTER_RUN 为 ON,则必须先执行 CLOSE CURSOR,然后才能请求计划。

当针对 SAP SQL Anywhere 查询或 OMNI/CIS 分解查询请求 HTML_PLAN 时,系统将返回以下消息:

No plan. HTML_PLAN function is not supported for this type of statement or database.

标准和兼容性

  • SQL - ISO/ANSI SQL 语法的服务商扩充。

  • SAP 数据库产品 - SAP ASE.不支持。

    示例

    以下示例将 SELECT 语句作为字符串参数传递,并返回 HTML 计划以便执行查询。本示例将计划保存在文件 hplan.html 中。

    SELECT HTML_PLAN ('SELECT * FROM Employees');
    

    OUTPUT to 'C:\hplan.html' HEXADECIMAL ASIS QUOTE '';

    子句 OUTPUT TO 对于含有格式设置字符(如制表符或回车符)的文本很有用。设置为 ASIS 时,值按原样写入而不发生任何转义,即使值中包含控制字符也是如此。

    以下示例会返回高速缓存中的 HTML 查询计划(如果可用)。

    SELECT HTML_PLAN ( );