用于重写查询的方法和系统技术方案

技术编号:10902508 阅读:266 留言:0更新日期:2015-01-14 12:46
提供一种用于重写查询的计算机实现的方法、计算机程序产品和系统。接收包括查询谓词的查询。确定所述查询谓词包括具有关联的谓词映射器的一个列。使用提供从所述一个列到另一个列的映射的所述谓词映射器,针对所述查询谓词生成等效谓词。评估具有所述等效谓词的所述查询的成本。响应于确定所述查询的所述成本是最优的,重写所述查询以便使用所述等效谓词替换所述查询谓词。

【技术实现步骤摘要】
【国外来华专利技术】使用谓词映射器优化查询
本专利技术的各实施例涉及使用谓词映射器优化查询。各实施例通过获得从生成列(generated column)到基列的逆映射而优化某些查询。
技术介绍
关系数据库管理系统(RDBMS)软件可以使用结构化查询语言(SQL)接口。RDBMS使用关系技术在关系数据库中存储和检索数据。关系数据库被组织成表,这些表包括数据行和列。行可以称为元组或记录或行。数据库通常具有多个表,并且每个表通常具有多个记录和多个列。 可以使用索引访问数据库中的表。索引是到表中的记录的引用(例如,指针)的有序集合。索引用于使用键(即,记录的一个字段或属性,其对应于列)访问表中的每个记录。术语“键”还可以称为“索引键”。如果没有索引,则查找记录需要扫描(例如,线性地)整个表。索引提供一种访问表中的数据的备用技术。在构建表之后,用户可以创建针对表的索引。索引基于表的一个或多个列。 查询可以被描述为基于特定条件的对数据库中的信息的请求。查询通常包括一个或多个谓词。谓词可以被描述为表达或暗示比较运算(例如,A = 3)的搜索条件的元素。 关系数据库表中的生成列用于存储预计算值。查询优化器使用生成列替换查询中与生成列的表达式等效的表达式。但是,具有数种情况,其中生成列用于存储用户友好格式的底层数据,并且直接在应用查询中使用。例如,生成列可以是整数基列的O填充字符串表示。尽管整数比较快于字符串比较,但将针对O填充字符串表示执行字符串比较。
技术实现思路
提供一种用于重写查询的计算机实现的方法、计算机程序产品和系统。接收包括查询谓词的查询。确定所述查询谓词包括具有关联的谓词映射器的一个列。使用提供从所述一个列到另一个列的映射的所述谓词映射器,针对所述查询谓词生成等效谓词。评估具有所述等效谓词的所述查询的成本。响应于确定所述查询的所述成本是最优的,重写所述查询以便使用所述等效谓词替换所述查询谓词。 【附图说明】 现在将仅通过实例的方式参考附图描述本专利技术的优选实施例,这些附图是: 图1以框图示出根据某些实施例的计算环境; 图2以流程图示出根据某些实施例的用于经由自动检测创建谓词映射器的操作,图2包括图2A和2B ; 图3以流程图示出根据某些实施例的用于查询转换的操作,图3包括图3A和3B ; 图4示出根据某些实施例的谓词映射器的使用; 图5不出根据某些实施例的实例用户标识(UID); 图6示出根据某些实施例的针对主UID表发出的实例选择语句; 图7示出根据某些实施例的输入查询和优化后的查询; 图8示出根据某些实施例的访问计划比较; 图9以框图示出根据某些实施例的可以使用的计算机体系架构。 【具体实施方式】 出于示例目的给出了对本专利技术的不同实施例的描述,但所述描述并非旨在是穷举的或是限于所公开的实施例。在不偏离所述实施例的范围的情况下,对于所属
的普通技术人员来说许多修改和变化都将是显而易见的。在此使用的术语的选择,旨在最好地解释实施例的原理、实际应用或对市场中的技术的技术改进,或者使所属
的其它普通技术人员能理解在此所公开的实施例。 从第一方面看,本专利技术提供一种用于重写查询的方法,包括:通过计算机的处理器接收包括查询谓词的查询;确定所述查询谓词包括具有关联的谓词映射器的一个列;使用提供从所述一个列到另一个列的映射的所述谓词映射器,针对所述查询谓词生成等效谓词;评估具有所述等效谓词的所述查询的成本;以及响应于确定所述查询的所述成本是最优的,重写所述查询以便使用所述等效谓词替换所述查询谓词。 优选地,本专利技术提供一种方法,其中所述列包括生成列。 优选地,本专利技术提供一种方法,还包括:在规则库中查找定义所述生成列的函数的反函数;以及使用所述反函数创建所述谓词映射器。 优选地,本专利技术提供一种方法,还包括:确定定义所述生成列的函数可逆;使用数学方程式查找所述函数的反函数;以及使用所述反函数创建所述谓词映射器。 优选地,本专利技术提供一种方法,其中确定所述函数可逆进一步包括:确定所述函数是一对一的。 优选地,本专利技术提供一种方法,其中所述谓词映射器包括模式对象(schemaobject),并且定义两个或更多列之间的关系。 优选地,本专利技术提供一种方法,其中由用户创建所述谓词映射器。 优选地,本专利技术提供一种方法,其中由数据库引擎创建所述谓词映射器。 从另一方面看,本专利技术提供一种用于重写查询的计算机程序产品,计算机程序产品包括:计算机可读存储介质,其中包含计算机可读程序代码,其中当由计算机的处理器执行时,所述计算机可读程序代码被配置为执行以下操作:接收包括查询谓词的查询;确定所述查询谓词包括具有关联的谓词映射器的一个列;使用提供从所述一个列到另一个列的映射的所述谓词映射器,针对所述查询谓词生成等效谓词;评估具有所述等效谓词的所述查询的成本;以及响应于确定所述查询的所述成本是最优的,重写所述查询以便使用所述等效谓词替换所述查询谓词。 优选地,本专利技术提供一种计算机程序产品,其中所述一个列包括生成列。 优选地,本专利技术提供一种计算机程序产品,其中当由所述计算机的所述处理器执行时,所述计算机可读程序代码被配置为执行以下操作:在规则库中查找定义所述生成列的函数的反函数;以及使用所述反函数创建所述谓词映射器。 优选地,本专利技术提供一种计算机程序产品,其中当由所述计算机的所述处理器执行时,所述计算机可读程序代码被配置为执行以下操作:确定定义所述生成列的函数可逆;使用数学方程式查找所述函数的反函数;以及使用所述反函数创建所述谓词映射器。 优选地,本专利技术提供一种计算机程序产品,其中当由所述计算机的所述处理器执行时,用于确定所述函数可逆的计算机可读程序代码被配置为执行以下操作:确定所述函数是一对一的。 优选地,本专利技术提供一种计算机程序产品,其中所述谓词映射器包括模式对象,并且定义两个或更多列之间的关系。 优选地,本专利技术提供一种计算机程序产品,其中由用户创建所述谓词映射器。 优选地,本专利技术提供一种计算机程序产品,其中由数据库引擎创建所述谓词映射器。 从另一方面看,本专利技术提供一种用于重写查询的计算机系统,包括:处理器;以及耦合到所述处理器的存储设备,其中所述存储设备具有存储在其上的程序,并且其中所述处理器被配置为执行程序的指令以便执行操作,其中操作包括:接收包括查询谓词的查询;确定所述查询谓词包括具有关联的谓词映射器的一个列;使用提供从所述一个列到另一个列的映射的所述谓词映射器,针对所述查询谓词生成等效谓词;评估具有所述等效谓词的所述查询的成本;以及响应于确定所述查询的所述成本是最优的,重写所述查询以便使用所述等效谓词替换所述查询谓词。 优选地,本专利技术提供一种计算机系统,其中所述一个列包括生成列。 优选地,本专利技术提供一种计算机系统,其中所述操作还包括:在规则库中查找定义所述生成列的函数的反函数;以及使用所述反函数创建所述谓词映射器。 优选地,本专利技术提供一种计算机系统,其中所述操作还包括:确定定义所述生成列的函数可逆;使用数学方程式查找所述函数的反函数;以及使用所述反函数创建所述谓词映射器。 优选地,本专利技术提供一种计算机系统,其中用于确定所述函数可逆的本文档来自技高网
...
<a href="http://www.xjishu.com/zhuanli/55/201380023462.html" title="用于重写查询的方法和系统原文来自X技术">用于重写查询的方法和系统</a>

【技术保护点】
一种用于重写查询的方法,包括:通过计算机的处理器接收包括查询谓词的查询;确定所述查询谓词包括具有关联的谓词映射器的一个列;使用提供从所述一个列到另一个列的映射的所述谓词映射器,针对所述查询谓词生成等效谓词;评估具有所述等效谓词的所述查询的成本;以及响应于确定所述查询的所述成本是最优的,重写所述查询以便使用所述等效谓词替换所述查询谓词。

【技术特征摘要】
【国外来华专利技术】2012.05.07 US 13/465,7691.一种用于重写查询的方法,包括: 通过计算机的处理器接收包括查询谓词的查询; 确定所述查询谓词包括具有关联的谓词映射器的一个列; 使用提供从所述一个列到另一个列的映射的所述谓词映射器,针对所述查询谓词生成等效谓词; 评估具有所述等效谓词的所述查询的成本;以及 响应于确定所述查询的所述成本是最优的,重写所述查询以便使用所述等效谓词替换所述查询谓词。2.根据权利要求1的方法,其中所述列包括生成列。3.根据权利要求2的方法,还包括: 在规则库中查找定义所述生成列的函数的反函数;以及 使用所述反函数创建所述谓词映射器。4.根据权利要求2的方法,还包括: 确定定义所述生成列的函数可逆; 使用数学方程式查找所述函数的反函数;以及 使用所述反函数创建所述谓词映射器。5.根据权利要求4的方法,其中确定所述函数可逆进一步包括: 确定所述函数是一对一的。6.根据权利要求1的方法,其中所述谓词映射器包括模式对象,并且定义两个或更多列之间的关系。7.根据权利要求1的方法,其中由用户创建所述谓词映射器。8.根据权利要求1的方法,其中由数据库引擎创建所述谓词映射器。9.一种用于重写查询的计算机程序产品,所述计算机程序产品包括: 计算机可读存储介质,其中包含计算机可读程序代码,其中当由计算机的处理器执行时,所述计算机可读程序代码被配置为执行以下操作: 接收包括查询谓词的查询; 确定所述查询谓词包括具有关联的谓词映射器的一个列; 使用提供从所述一个列到另一个列的映射的所述谓词映射器,针对所述查询谓词生成等效谓词; 评估具有所述等效谓词的所述查询的成本;以及 响应于确定所述查询的所述成本是最优的,重写所述查询以便使用所述等效谓词替换所述查询谓词。10.根据权利要求9的计算机程序产品,其中所述一个列包括生成列。11.根据权利要求10的计算机程序产品,其中当由所述计算机的所述处理器执行时,所述计算机可读程序代码被配置为执行以下操作: 在规则库中查找定义所述生成列的函数的反函数;以及 使用所述反函数创建所述谓词映射器。12.根据权利要求10...

【专利技术属性】
技术研发人员:S·辛格R·苏玛
申请(专利权)人:国际商业机器公司
类型:发明
国别省市:美国;US

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1