用于优化数据库查询的方法和系统技术方案

技术编号:7384710 阅读:300 留言:0更新日期:2011-06-01 12:09
本发明专利技术涉及用于优化数据库查询的方法和系统。本发明专利技术的实施例涉及用于优化被配置为用于接收查询的数据库事务的方法、计算机程序产品和系统。查询规定提供给查询的一组谓词和查询为真要满足的谓词的最少数量。使用查询对存储于计算机可读存储介质中的仓库执行操作。呈现满足最少数量的谓词的一组结果。

【技术实现步骤摘要】

本专利技术涉及查询优化,更特别地,涉及使用查询优化从数据仓库检索数据的子集。
技术介绍
数据仓库,特别是数据库,是计算化的信息存储和检索系统。数据库查询指的是用于检索存储于数据库中的数据的一组命令或语句。查询可来自用户、应用程序或远程系统。 查询可规定从中检索数据的数据库中的诸如表或栏的特定位置、如何结合来自多个表的栏和特定的数据记录包含于查询结果组中必须满足的条件。一般为关系数据库的当前的结构化数据处理以由查询语言规定的精确格式构成的查询。例如,许多关系数据库支持广泛使用的结构化查询语言(Structured Query Language (SQL))。许多诸如生命科学的依赖于数据库的学科需要越来越复杂的数据库和数据库查询。运行大的或复杂的查询一般使用多个资源并且已成为研究和关注的主题。
技术实现思路
本专利技术的实施例是针对用于优化数据库事务的方法、系统和计算机程序产品。因此,本专利技术的实施例接收查询。所述查询规定一组谓词,在该组谓词中,该查询为真(to be true)必须满足的最少数量。使用对存储于计算机可读存储介质中的仓库的查询来执行操作。呈现满足所述最少数量的谓词的一组结果。针对包含计算机可读存储介质的计算机程序产品的实施例包含用于优化数据库事务的计算机可用代码。实施例包含用于接收查询的计算机可用代码。该查询规定提供给该查询的一组谓词和查询为真要满足的该组谓词中的谓词的最少数量。实施例还包括用于使用所述查询对存储于计算机可读存储介质中的仓库执行操作的计算机可用代码。实施例还包括用于呈现满足所述最少数量的谓词的一组结果的计算机可用代码。针对用于优化数据库事务的数据处理系统的实施例包括包含存储介质的存储装置,其中,存储装置存储计算机可用程序代码、处理器,其中,处理器执行所述计算机可用程序代码。实施例的计算机可用程序代码包含用于接收查询的计算机可用代码,其中,该查询规定提供给该查询的一组谓词和查询为真要满足的该组谓词中的谓词的最少数量;用于使用该查询对存储于计算机可读存储介质中的仓库执行操作的计算机可用代码;和用于呈现满足所述最少数量的谓词的一组结果的计算机可用代码。附图说明以下,参照下面的示意图仅以例子的方式来描述本专利技术的实施例,其中图1示出从数据仓库检索数据的子集的方法的流程图的示例性实施例;图2示出用于从关系数据库检索数据的子集的流程图的示例性实施例;和图3表示用于从数据仓库检索数据的子集的计算机系统的示意图的示例性实施例。具体实施例方式以下,参照根据本专利技术的实施例的方法、设备(系统)和计算机程序产品的流程图和/或框图描述本专利技术的各方面。可以理解,可通过计算机程序指令实现流程图和/或框图的每一个框以及流程图和/或框图的框的组合。这些计算机程序指令可被提供给通用计算机、专用计算机或其它的可编程数据处理设备的处理器,以制造机器,使得通过计算机的处理器或其它的可编程数据处理设备执行的指令产生用于实现在流程图和/或框图(一个或多个框)中规定的功能/动作的装置。本专利技术的实施例是针对用于优化用于从数据仓库检索数据的子集的数据库查询的方法、系统和计算机程序产品。图1表示用于从数据仓库检索数据的子集的流程图100的示例性实施例。步骤Iio表示接收查询。一旦接收到查询,接着,在步骤120中,分析查询以从查询确定查询中的谓词的总数和执行操作所需要的谓词的最少数量。当这些被确定完时,在步骤130中,识别使该查询运行所针对的数据源。在步骤140中,对数据源执行查询。 在步骤150中,基于对数据源运行的查询,检索满足查询的数据子集并将其呈现给用户。接收查询包含接收一组谓词和表示该组谓词中需要为真的谓词的最少数量的预定的阈值。在一个实施例中,有利地,该组谓词中的各谓词优选表示为逐位谓词模式以生成一组逐位谓词模式。如果需要,通过以在这里作为参考并入的相关申请中描述的实施例的方式使用该组逐位谓词模式和多个逻辑运算符生成第二查询。所述多个逻辑运算符包含布尔运算符。根据实施例的生成第二查询的步骤使用谓词的预定的阈值。使用查询从数据仓库检索数据的子集。生成第二查询还包含使用第一查询从该组逐位谓词模式识别一组有效的逐位模式并且使用所述多个逻辑运算符分析该组有效的逐位模式以生成逻辑逐位表达式;并且接着将逻辑逐位表达式因式分解。分析和因式分解优选使用布尔特性。然后,产生因式分解后的逻辑逐位表达式到该组谓词中的相应的谓词的映射,以生成逻辑谓词表达式。通过使用逻辑谓词表达式修改第一查询来生成第二查询。在一个实施例中,诸如在关系数据库或面向对象的数据库中,数据仓库是结构化数据,并且,第一查询和第二查询均是结构化查询语言(SQL)查询。优选地,根据实施例的查询包含“ATLEAST”语句和表示在该组谓词中的那些需要为真的谓词的最少数量的谓词的预定的阈值。在示例性模式中,以下给出从数据仓库检索数据的子集的示例。数据库查询优化器尝试减少谓词的数量以优化查询性能。但是,有时 SQL查询具有通过OR条件结合的大量的谓词,这使得减少谓词的数量变得困难。以下描述业务决定基于满足一组最少的先决条件的示例性实施例对于年度奖金分配,设定准则使得满足5个条件(即谓词)中的至少3个的雇员有资格领取奖金。示例性谓词如下1. 1 或 2+ 的表现等级(felting)2.管理者推荐(Manager_Recom)3.业务单位利润 > 3% (BU_profit)4.工资低于其级别的平均工资5.在组织中被雇用多于两年(Current_dt_Join_dt)假定雇员数据被存储于数据库中,则需要写入查询以得到满足先决条件的雇员记录。这是存储于数据库中的数据的子集。一般地,使用SQL中的“AND”和“OR”语句的典型的组合书写从匹配于5个条件中的至少3个的表选择行的查询。假定所有的数据在雇员表中是可得到的,那么典型的查询可以如下select * from employee where((Rating in (1, 2+)) and (Manager_Recom 二’ V ) and (BU—prof it > 3)) OR((Rating in (1,2+)) and(Manager_Recom = ‘ X 丨)and (Salary < (select Avg (Salary)from employee))) OR((Rating in (1, 2+)) and (Manager_Recom = ' V ) and (Current_dt-Join_Dt > 2years)) OR((Rating in (1, 2+)) and (BU_prof it > 3) and (Salary < (select Avg(Salary) from employee))) OR((Rating in(1,2+))and(BU_profit > 3)and(Current_dt-Join_Dt > 2years)) OR((Rating in (1,2+)) and (Salary < (select Avg (Salary) from employee)) and(Current—dt-Join—Dt > 2years))本文档来自技高网...

【技术保护点】

【技术特征摘要】
2010.11.19 US 12/950,1561.一种用于优化数据库事务的计算机实现的方法,包括接收查询,该查询规定(i)提供给该查询的一组谓词和(ii)该查询为真要满足的该组谓词中的谓词的最少数量;使用所述查询对存储于计算机可读存储介质中的仓库来执行操作;以及呈现满足最少数量的谓词的一组结果。2.如利要求1所述的计算机实现的方法,其中,该查询被构造为ATLEAST(N、PUP2、 P3、...H(),其中,Pl 1 是被提供给该查询的该组谓词,并且,N是该查询为真要满足的谓词的所述最少数量。3.如利要求2所述的计算机实现的方法,其中,所述一组谓词中的谓词Pl Hi各自表示为逐位谓词模式,以形成一组逐位谓词模式,并且,通过使用该组逐位谓词模式生成逻辑表达式来优化该查询。4.如利要求1所述的计算机实现的方法,其中,所述谓词的最少数量是使该查询运行的预定的阈值。5.如利要求1所述的计算机实现的方法,其中,该仓库包含结构化数据。6.如利要求1所述的计算机实现的方法,其中,该查询采取结构化查询语言(SQL)的形式。7.一种用于优化数据库事务的数据处理系统,所述数据处理系统包括包含存...

【专利技术属性】
技术研发人员:V·M·库尔卡尼S·辛格
申请(专利权)人:国际商业机器公司
类型:发明
国别省市:

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

1
相关领域技术