对 pureXML 应用程序应用 DB2 优化准则
2010-03-22 00:00:00 来源:WEB开发网SECURITY 表的内部编号为 Q2;对于 ORDER,其编号为 Q3。初始查询中的 XMLEXISTS 谓词被转换为一个复杂表达式,可以通过编号 Q1 引用。准则将首先对 SECURITY 表应用 xmlexists 谓词,随后是与 ORDER 表的 hash 连接,如清单 6 所示:
清单 6. 根据名称或标识符引用表
<?xml version="1.0" encoding="UTF-8"?>
<OPTPROFILE VERSION="9.7.0.0">
<STMTPROFILE ID="Identifying the exposed name of a table">
<STMTKEY SCHEMA="TPOX">
SELECT *
FROM order, security
WHERE order.security_id = security.security_id
AND XMLEXISTS('$SDOC/Security/Symbol[.="IBM"]')
</STMTKEY>
<OPTGUIDELINES>
<HSJOIN>
<NLJOIN FIRST='TRUE'>
<ACCESS TABLE='SECURITY'/>
<ACCESS TABID='Q1'/>
</NLJOIN>
<ACCESS TABID='Q3' />
</HSJOIN>
</OPTGUIDELINES>
</STMTPROFILE>
</OPTPROFILE>
清单 6 表明准则中可能同时包含了表名和表标识符。表名通过 XML 属性 TABLE 指定,而表标识符通过 XML 属性 TABID 指定。
创建 OPT_PROFILE 表
优化概要文件必须被存储在 SYSTOOLS.OPT_PROFILE 表中。
可以使用两种方法创建该表:
DB2 提供了一个由系统定义的存储过程,称为 SYSINSTALLOBJECTS,它可以创建或删除 OPT_PROFILE 表:
更多精彩
赞助商链接