发明名称 XPath查询优化方法及系统
摘要 本发明公开了一种XPath查询优化方法及系统。方法包括,用层次编码对XML文档的结构概要信息进行统计,用值-编码直方图和RPST对值概要信息进行统计,以及利用以上统计信息对XPath路径表达式进行查询优化的优化算法。查询优化算法包括,S101-S102:初始化数据结构和处理单步路径;S103:判断是否存在未估算路径;S104:判断路径类型;S105-S109:在长路径所有可能的连接中估算出代价最小的连接,用相应数据更新代价矩阵和结果集矩阵;S110-S114:估算出谓词路径中代价最小的排列顺序,用相应数据更新代价矩阵和结果集矩阵,并按最优排列重排谓词;S115:重构查询计划。本发明提供的XPath查询优化方法及系统能有效地对XPath查询语句进行优化,大大提高了XPath查询语句的执行效率。
申请公布号 CN102929996A 申请公布日期 2013.02.13
申请号 CN201210411505.8 申请日期 2012.10.24
申请人 华南理工大学 发明人 李东;梁晓翀
分类号 G06F17/30(2006.01)I 主分类号 G06F17/30(2006.01)I
代理机构 广州市华学知识产权代理有限公司 44245 代理人 蔡茂略
主权项 一种XPath查询优化方法,其特征在于,包括下述步骤:S101、初始化代价估算矩阵;S102、处理单步路径;S103、判断是否存在未估算路径,如果是,则进入步骤S104;如果否,则进入步骤S115;S104、判断路径类型,若判断得到当前路径为长路径,则进入步骤105,若是谓词路径,则进入步骤110;S105、判断是否存在下一种可能的连接;对于长度大于1的长路径来说,任意的路径Stepi/…/Stepj,都能将其看成由两个子路径Stepi/…/Stepk和Stepk+1/…/Stepj连接而成,其中i<=k<j,因此该路径共有j‑i种连接,k初始为i,每循环一次加1,至j‑1结束,若i<=k<j时下一步进入步骤S106,估算该路径在当前连接下消耗的代价;当k=j时表示已遍历完该路径所有可能的连接情况,进入步骤S109估算该路径的结果集和结果集规模;S106、利用文档统计信息估算长路径代价;S107、判断是否最优连接;即判断上一步骤计算所得的长路径执行代价是否小于已记录于代价估算矩阵中的最小执行代价cost,若为真则进入步骤108,记录当前连接的信息,否则无需记录任何信息,返回步骤S105;S108、用最优连接和代价更新代价估算矩阵;进入步骤S108则表示当前路径在k处的分割为代价最小的连接方式,因此在代价估算矩阵中更新最小执行代价cost和最优连接分割点splitIndex,其中splitIndex=k;S109、利用文档统计信息估算结果集,更新结果集矩阵;S110、判断是否存在下一种可能的排列;S111、利用文档统计信息估算谓词路径代价;S112、判断是否最优排列;判断步骤S111计算所得的谓词路径执行代价是否小于已记录于代价估算矩阵中的最小执行代价cost,若为真则进入步骤S113,记录当前谓词排列顺序的信息,否则无需记录任何信息,返回步骤S110;S113、更新代价矩阵和结果集矩阵,记录最优排列;进入步骤S108则表示当前谓词排列顺序为目前代价最小的排列方式,因此在代价估算矩阵中更新最小执行代价cost,并记录下当前的谓词排列顺序,以便后面的步骤按此顺序重 新排列谓词;S114:按步骤S113记录的谓词排列顺序来重新排列谓词;S115:重构查询计划。
地址 510640 广东省广州市天河区五山路381号