CN102479255A - 用于优化数据库查询的方法和系统 - Google Patents

用于优化数据库查询的方法和系统 Download PDF

Info

Publication number
CN102479255A
CN102479255A CN2011103610392A CN201110361039A CN102479255A CN 102479255 A CN102479255 A CN 102479255A CN 2011103610392 A CN2011103610392 A CN 2011103610392A CN 201110361039 A CN201110361039 A CN 201110361039A CN 102479255 A CN102479255 A CN 102479255A
Authority
CN
China
Prior art keywords
predicate
inquiry
group
computer
minimum number
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN2011103610392A
Other languages
English (en)
Other versions
CN102479255B (zh
Inventor
V·M·库尔卡尼
S·辛格
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Publication of CN102479255A publication Critical patent/CN102479255A/zh
Application granted granted Critical
Publication of CN102479255B publication Critical patent/CN102479255B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/242Query formulation
    • G06F16/2433Query languages
    • G06F16/2448Query languages for particular applications; for extensibility, e.g. user defined types
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2453Query optimisation
    • G06F16/24534Query rewriting; Transformation
    • G06F16/24547Optimisations to support specific applications; Extensibility of optimisers

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Computational Linguistics (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明涉及用于优化数据库查询的方法和系统。本发明的实施例涉及用于优化被配置为用于接收查询的数据库事务的方法、计算机程序产品和系统。查询规定提供给查询的一组谓词和查询为真要满足的谓词的最少数量。使用查询对存储于计算机可读存储介质中的仓库执行操作。呈现满足最少数量的谓词的一组结果。

Description

用于优化数据库查询的方法和系统
技术领域
本发明涉及查询优化,更特别地,涉及使用查询优化从数据仓库检索数据的子集。
背景技术
数据仓库,特别是数据库,是计算化的信息存储和检索系统。数据库查询指的是用于检索存储于数据库中的数据的一组命令或语句。查询可来自用户、应用程序或远程系统。查询可规定从中检索数据的数据库中的诸如表或栏的特定位置、如何结合来自多个表的栏和特定的数据记录包含于查询结果组中必须满足的条件。一般为关系数据库的当前的结构化数据处理以由查询语言规定的精确格式构成的查询。例如,许多关系数据库支持广泛使用的结构化查询语言(StructuredQuery Language(SQL))。
许多诸如生命科学的依赖于数据库的学科需要越来越复杂的数据库和数据库查询。运行大的或复杂的查询一般使用多个资源并且已成为研究和关注的主题。
发明内容
本发明的实施例是针对用于优化数据库事务的方法、系统和计算机程序产品。因此,本发明的实施例接收查询。所述查询规定一组谓词,在该组谓词中,该查询为真(to be true)必须满足的最少数量。使用对存储于计算机可读存储介质中的仓库的查询来执行操作。呈现满足所述最少数量的谓词的一组结果。
针对包含计算机可读存储介质的计算机程序产品的实施例包含用于优化数据库事务的计算机可用代码。实施例包含用于接收查询的计算机可用代码。该查询规定提供给该查询的一组谓词和查询为真要满足的该组谓词中的谓词的最少数量。实施例还包括用于使用所述查询对存储于计算机可读存储介质中的仓库执行操作的计算机可用代码。实施例还包括用于呈现满足所述最少数量的谓词的一组结果的计算机可用代码。
针对用于优化数据库事务的数据处理系统的实施例包括:包含存储介质的存储装置,其中,存储装置存储计算机可用程序代码、处理器,其中,处理器执行所述计算机可用程序代码。实施例的计算机可用程序代码包含:用于接收查询的计算机可用代码,其中,该查询规定提供给该查询的一组谓词和查询为真要满足的该组谓词中的谓词的最少数量;用于使用该查询对存储于计算机可读存储介质中的仓库执行操作的计算机可用代码;和用于呈现满足所述最少数量的谓词的一组结果的计算机可用代码。
附图说明
以下,参照下面的示意图仅以例子的方式来描述本发明的实施例,其中:
图1示出从数据仓库检索数据的子集的方法的流程图的示例性实施例;
图2示出用于从关系数据库检索数据的子集的流程图的示例性实施例;和
图3表示用于从数据仓库检索数据的子集的计算机系统的示意图的示例性实施例。
具体实施方式
以下,参照根据本发明的实施例的方法、设备(系统)和计算机程序产品的流程图和/或框图描述本发明的各方面。可以理解,可通过计算机程序指令实现流程图和/或框图的每一个框以及流程图和/或框图的框的组合。这些计算机程序指令可被提供给通用计算机、专用计算机或其它的可编程数据处理设备的处理器,以制造机器,使得通过计算机的处理器或其它的可编程数据处理设备执行的指令产生用于实现在流程图和/或框图(一个或多个框)中规定的功能/动作的装置。
本发明的实施例是针对用于优化用于从数据仓库检索数据的子集的数据库查询的方法、系统和计算机程序产品。图1表示用于从数据仓库检索数据的子集的流程图100的示例性实施例。步骤110表示接收查询。一旦接收到查询,接着,在步骤120中,分析查询以从查询确定查询中的谓词的总数和执行操作所需要的谓词的最少数量。当这些被确定完时,在步骤130中,识别使该查询运行所针对的数据源。在步骤140中,对数据源执行查询。在步骤150中,基于对数据源运行的查询,检索满足查询的数据子集并将其呈现给用户。
接收查询包含接收一组谓词和表示该组谓词中需要为真的谓词的最少数量的预定的阈值。在一个实施例中,有利地,该组谓词中的各谓词优选表示为逐位谓词模式以生成一组逐位谓词模式。如果需要,通过以在这里作为参考并入的相关申请中描述的实施例的方式使用该组逐位谓词模式和多个逻辑运算符生成第二查询。所述多个逻辑运算符包含布尔运算符。
根据实施例的生成第二查询的步骤使用谓词的预定的阈值。使用查询从数据仓库检索数据的子集。生成第二查询还包含:使用第一查询从该组逐位谓词模式识别一组有效的逐位模式并且使用所述多个逻辑运算符分析该组有效的逐位模式以生成逻辑逐位表达式;并且接着将逻辑逐位表达式因式分解。分析和因式分解优选使用布尔特性。然后,产生因式分解后的逻辑逐位表达式到该组谓词中的相应的谓词的映射,以生成逻辑谓词表达式。通过使用逻辑谓词表达式修改第一查询来生成第二查询。在一个实施例中,诸如在关系数据库或面向对象的数据库中,数据仓库是结构化数据,并且,第一查询和第二查询均是结构化查询语言(SQL)查询。
优选地,根据实施例的查询包含“ATLEAST”语句和表示在该组谓词中的那些需要为真的谓词的最少数量的谓词的预定的阈值。在示例性模式中,以下给出从数据仓库检索数据的子集的示例。数据库查询优化器尝试减少谓词的数量以优化查询性能。但是,有时SQL查询具有通过OR条件结合的大量的谓词,这使得减少谓词的数量变得困难。
以下描述业务决定基于满足一组最少的先决条件的示例性实施例:
对于年度奖金分配,设定准则使得满足5个条件(即谓词)中的至少3个的雇员有资格领取奖金。示例性谓词如下:
1.1或2+的表现等级(Rating)
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=′Y′)and(BU_profit>3))OR
((Rating in(1,2+))and(Manager_Recom=′Y′)and(Salary<(select Avg(Salary)from employee)))OR
((Rating in(1,2+))and(Manager_Recom=′Y′)and(Current_dt-Join_Dt>2years))OR
((Rating in(1,2+))and(BU_profit>3)and(Salary<(selectAvg(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)fromemployee))and(Current_dt-Join_Dt>2years))OR
((Manager_Recom=′Y′)and(BU_profit>3)and(Salary<(selectAvg(Salary)from employee)))OR
((Manager_Recom=′Y′)and(BU_profit>3)and(Current_dt-Join_Dt>2years))OR
((Manager_Recom=′Y′)and(Salary<(select Avg(Sslary)fromemployee))and(Current_dt-Join_Dt>2years))OR
((BU_profit>3)and(Salary<(select Avg(Salary)from employee))and(Current_dt-Join_Dt>2years))
从以上的查询可以注意到,查询包含大量的OR语句和许多的谓词,并且,在常规的SQL中,没有简易的方式来书写这种查询和减少这种查询中的谓词的数量。这种查询书写和处理是耗时的,并且使用大量的计算资源来执行。
本发明的实施例在优化器的内部使用针对谓词的位表示,并且有助于减少SQL中的谓词的数量。压缩谓词有助于减少执行查询的处理循环,由此提高查询性能。示例性实施例使用很好研究的布尔特性:联合特性:(a|b)|c=a|(b|c)
(a&b)&c=a&(b&c)
分布特性:a|(b&c)=(a|b)&(a|c)
a&(b|c)=(a&b)|(a&c)
应当注意,逻辑“AND”被表达为“&”或“*”,并且,逻辑“OR”表达为“|”或“+”。2个表达式之间没有任何运算符被假定为“AND”,例如,01(0+1)等同于0&1&(0|1),即,0*1*(0+1)。
在实施例中,关于以上的例子并且关于如何形成逐位谓词模式,应理解以下的方面:各逻辑谓词由一组位表示。这里,这样的一组位被称为“逐位谓词模式”。各组可具有相同数量的位。各逐位谓词模式仅具有一个位ON。各逐位谓词模式唯一地表示逻辑谓词中的单个相应的逻辑谓词。对于各逐位谓词模式,为ON的一个位表明特定的逐位谓词模式表示逻辑谓词中的哪一个。
作为使用很好研究的布尔代数的例子,使A、B、C、D和E表示5个逻辑表达式/谓词。一次取3的排列将导致5P3=10种可能的排列。
A,B,C;A,B,D;A,B,E;A,C,D;A,C,E;A,D,E;B,C,D;B,C,E;B,D,E;C,D,E
使用逻辑“AND”和“OR”运算符在表达式中表示所有的排列:
(C&D&E)|(B&D&E)|(B&C&E)|(B&C&D)|
(A&D&E)|(A&C&E)|(A&C&D)|
(A&B&C)|(A&B&D)|(A&B&E)
这里,“&”表示逻辑“AND”运算符,并且,“|”表示逻辑“OR”运算符。
使用布尔代数的分布特性,表达式可被表示为:
(C&D&E)|(B&(D&E|C&E|C&D))|
(A&(D&E|C&E|C&D))|
(A&B&(C|D|E))
可进一步应用分布特性将表达式表示为:
(C&D&E)|(B|A)&(D&E|C&E|C&D))|(A&B&(C|D|E))
该表达式是可使用在这里作为参考并入的相关公开中描述的位表示获得的期望的结果。
本发明的示例性实施例扩展当前的SQL以对于这种查询支持新的语句“ATLEAST”。ATLEAST语句的句式可以如下:
ATLEAST(N,predicate 1,predicate 2,predicate 3,.....predicateK)
这里,K是谓词的总数,并且,N是要满足的谓词的最少数量。与具有大量OR语句的查询相比,以上表示的这种查询还使得书写查询更加简单并且更加可读。在示例性模式中,可以修改数据库优化器,以支持SQL句式中的“ATLEAST”语句。以上的一组谓词的第一查询可被书写如下:
select*from employee where ATLEAST(3,Rating in(1,2+),Manager_Recom=′Y′,BU_profit>3,Salary<(select Avg(Salary)fromemployee ),Current_dt-Join_Dt>2years)
重要的是,这里注意到,具有多个“OR”语句的查询与具有“ATLEAST”语句的第一查询具有相同的效果;但是,“OR”语句已在数据库技术中得到支持,而“ATLEAST”是本发明的一个实施例。
根据本发明的一个实施例,数据库优化器将改写第一查询并且优化查询以生成第二查询如下:
select*from employee where
(BU_profit>3and Salary<(select Avg(Salary)from employee)andCurrent_dt-Join_Dt>2years)OR
((Rating in(1,2+)or Manager_Recom=′Y′)AND
((Salary<(select Avg(Salary)from employee)andCurrent_dt-Join_Dt>2years)Or(BU_profit>3 andCurrent_dt-Join_Dt>2years)
Or(BU_profit>3 and Salary<(select Avg(Salary)fromemployee))))
OR(Rating in(1,2+)and Manager_Recom=′Y′and(BU_profit>3or Salary<(select Avg(Salary)from employee)or Current_dt-Join_Dt>2years))
以下的例子给出以位格式表示多个谓词的实施例的更详细的解释。查询被接收,并且,示例性第一查询如下:
select*from table where ATLEAST(3,a=10,b=20,c=30,d=30,e=50)
在另一示例性实施例中,如果仅在SQL查询中存在2个谓词A和B,其中的一个对于SQL检索有效的子集需要为真,那么常规的SQL查询将为:
select*from Table1where A OR B。
根据示例性“ATLEAST”表示的该常规的SQL查询可被改写为:
select*from Table1 where ATLEAST(1,A,B)
当谓词的数量大时,本发明的实施例将产生更好的表现。
图2表示用于从关系数据库检索数据的子集的总体方法的流程图200的示例性实施例。应当注意,除了图2属于作为关系数据库的数据仓库以外,流程图200与图1的流程图100类似。在步骤210中,查询被明确地示为ATLEAST(N、P1、P2...PK),这里,K是谓词的总数,并且,N是要满足的谓词的最少数量。在步骤220中,检查是否查询符合已设计的新格式并且如果格式为OK,那么对相关的仓库230运行查询并且在步骤240中输出结果。
图3是可用于实现本发明的各种实施例的示例性计算机系统300的框图。在一些实施例中,计算机系统300可被用于执行在图1或图2或两个图中描述的步骤。计算机系统300包含处理器303。应当理解,虽然图3示出单个处理器,但是本领域技术人员将会理解,可以根据需要包含多于一个的处理器。处理器303与通信基础结构302(例如,通信总线、跨接杆(cross-over bar)或网络)连接,这里通信基础结构303被配置为便于示例性计算机系统300的各种元件之间的通信。关于本示例性计算机系统描述各种软件实施例。在读完本说明书之后,本领域普通技术人员显然会理解如何使用其它的计算机系统和/或计算机结构实现本发明。
示例性计算机系统300可包含被配置为从通信基础结构302(或从未示出的帧缓冲器)转发用于在显示单元310上显示的图形、文本和其它数据的显示接口308。计算机系统300还包含可以为随机存取存储器(RAM)的主存储器306,并且还可包含次存储器312。次存储器312可包含例如硬盘驱动器314和/或表示软盘驱动器、磁带驱动器、光盘驱动器等的可移动存储驱动器316。可移动存储驱动器316以本领域普通技术人员公知的方式从可移动存储单元318读取和/或向可移动存储单元318写入。可移动存储单元318表示例如由可移动存储驱动器316读取和写入的软盘、磁带、光盘等。可以理解,可移动存储单元318包含在其中存储计算机软件和/或数据的计算机可用存储介质。
在示例性实施例中,次存储器312可包含用于允许将计算机程序或其它的指令加载到计算机系统中的其它类似的装置。这种装置可包含例如可移动存储单元322和接口320。它们的例子可包含程序盒子和盒子接口(诸如在视频游戏装置中所找到的)、可移动的存储芯片(诸如EPROM或PROM)及其相关的插口,以及其它可移动存储单元322和允许从可移动存储单元322向计算机系统300传送软件和数据的接口320。
计算机系统300还可包含通信接口324。通信接口324允许在计算机系统和外部装置之间传送软件和数据。通信接口324的例子可包含调制解调器、网络接口(诸如以太网卡)、通信端口、PCMCIA插槽和卡等。并且,本发明的各方面可采取在其上体现(实施)有计算机可读程序代码的一个或更多个计算机可读介质中体现的计算机程序产品的形式。
图中的流程图和框图示出根据本发明的各种实施例的系统、方法和计算机程序产品的可能的实现的基础结构、功能和操作。在这一点上,流程图或框图中的各块(框)可表示包含用于实现规定的逻辑功能的一个或更多个可执行指令的模块、段或代码的一部分。还应注意,在一些替代性实现方式中,在块中注明的功能可以以图示中标明的次序以外的次序发生。例如,根据所包含的功能,依次表示的两个块可能实际基本上被同时实现,或者,块有时可以以相反的次序执行。还应注意,可通过执行特定的功能或动作的专用的基于硬件的系统或专用硬件和计算机指令的组合来实现框图和/或流程图的各块以及框图和/或流程图中的块的组合。
如本领域技术人员可以理解的,本发明的多个方面可体现为系统、方法或计算机程序产品。因此,本发明的多个方面可采取完全硬件实施例、完全软件实施例(包含固件、常驻软件、微代码等)或组合软件和这里均可统称为“电路”、“模块”或“系统”的硬件的实施例的形式。并且,本发明的多个方面可采取在其上体现有计算机可读程序代码的一个或更多个计算机可读介质中体现的计算机程序产品的形式。
这些计算机程序指令还可存储在计算机可读介质中,这些计算机程序指令可引导计算机、其它可编程数据处理设备或其它的装置以特定的方式起作用,使得存储于计算机可读介质中的指令产生包含实现在流程图和/或框图(一个或多个框)中规定的功能/动作的指令的制造物品。
计算机程序指令还可被加载到计算机、其它可编程数据处理设备或其它装置上,以导致在计算机、其它可编程设备或其它装置上执行一系列的操作步骤,以产生计算机实现的过程,使得在计算机或其它的可编程设备上执行的指令提供用于实现在流程图和/或框图(一个或多个框)中规定的功能/动作的过程。
可以利用一个或更多个计算机可读介质的任意组合。计算机可读介质可以是计算机可读信号介质或计算机可读存储介质。计算机可读存储介质可以为例如但不限于电子、磁、光、电磁、红外或半导体系统、设备或装置或以上的任意适当的组合。计算机可读存储介质的更特定的例子(非详尽的列表)包含以下的方面:具有一个或更多个导线的电气连接部、便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或闪存存储器)、光纤、便携式光盘只读存储器(CD-ROM)、光存储装置、磁存储装置或以上的任意适当的组合。在本文件的上下文中,计算机可读存储介质可以为可包含或存储由指令执行系统、设备或装置使用或与其结合使用的程序的任何可触知介质。
计算机可读信号介质可包含具有在其中例如以基带或载波的一部分体现的计算机可读程序代码的传播的数据信号。这种传播的信号可采取各种形式中的任意一种,包括但不限于电磁、光或它们的任意的组合。这些传播的信号通过通信路径(即,信道)326提供给通信接口323。计算机可读信号介质可以是任何计算机可读介质,其不是计算机可读存储介质但可通信、传播或传送由指令执行系统、设备或装置使用或与其结合使用的程序。
可使用包含但不限于无线、有线、光纤电缆、RF等或以上的任意适当的组合的任何适当的介质传送在计算机可读介质上体现的程序代码。
可以一个或更多个编程语言的任意组合书写用于实施本发明的各方面的操作的计算机程序代码,该语言包括诸如Java、Smalltalk或C++等的面向对象的编程语言和诸如“C”编程语言或类似的编程语言的常规的程序编辑语言。程序代码可如下执行:作为独立的软件封装,完全地在用户的计算机上、部分地在用户的计算机上、部分地在用户的计算机上并且部分地在远程计算机上或者完全在远程计算机或服务器上执行。在后一种情形中,远程计算机可通过包含局域网络(LAN)或广域网络(WAN)的任意类型的网络与用户的计算机连接,或者,可与外部计算机进行连接(例如,通过使用因特网服务提供商的因特网)。
本发明的各种实施例的优点包含开发检索数据仓库的查询的简化。其它的实施例中的一些的其它的优点包含开发不易出错的查询。本发明的一些实施例的一些其它的优点包含诸如但不限于中央处理单元(CPU)的计算资源的最佳使用。虽然本发明解释了本发明的一些特定实施例的各种优点,但是本领域技术人员根据本发明的教导可以理解,本发明的优点不限于以上提到的优点。
这里使用的术语仅出于描述特定实施例的目的并不意于限制本发明。如这里所使用的,除非本文另外明确规定,否则单数形式“一个”、“一种”和“该”意于包含复数形式。还应理解,在本说明书中使用的术语“包含”和/或“包括”规定陈述的特征、整数、步骤、操作、元件和/或部件的存在,但不排除一个或更多个其它的特征、整数、步骤、操作、元件、部件和/或它们的组的存在或添加。
虽然已详细地描述了本发明的示例性实施例,但应理解,在不背离由所附的权利要求限定的本发明的精神和范围的情况下,可以对其进行各种变化、替代和改变。可以以各特定应用期望的任何组合实现对于本发明的示例性实施例描述的变化。因此,这里描述的对于特定的应用具有特定的优点的特定的限制和/或实施例改进不需要被用于所有的应用。并且,不需要在包含关于本发明的示例性实施例描述的一个或更多个概念的方法、系统和/或设备中实现所有的限制。
这里使用的术语仅出于描述特定实施例的目的,并不意于限制本发明。如这里所使用的,除非本文另外明确规定,单数形式“一个”、“一种”和“该”意于包含复数形式。还应理解,在本说明书中使用的术语“包含”和/或“包括”规定陈述的特征、整数、步骤、操作、元件和/或部件的存在,但不排除一个或更多个其它的特征、整数、步骤、操作、元件、部件和/或它们的组的存在或添加。

Claims (12)

1.一种用于优化数据库事务的计算机实现的方法,包括:
接收查询,该查询规定:(i)提供给该查询的一组谓词和(ii)该查询为真要满足的该组谓词中的谓词的最少数量;
使用所述查询对存储于计算机可读存储介质中的仓库来执行操作;以及
呈现满足最少数量的谓词的一组结果。
2.如利要求1所述的计算机实现的方法,其中,该查询被构造为ATLEAST(N、P1、P2、P3、...PK),其中,P1~PK是被提供给该查询的该组谓词,并且,N是该查询为真要满足的谓词的所述最少数量。
3.如利要求2所述的计算机实现的方法,其中,所述一组谓词中的谓词P1~PK各自表示为逐位谓词模式,以形成一组逐位谓词模式,并且,通过使用该组逐位谓词模式生成逻辑表达式来优化该查询。
4.如利要求1所述的计算机实现的方法,其中,所述谓词的最少数量是使该查询运行的预定的阈值。
5.如利要求1所述的计算机实现的方法,其中,该仓库包含结构化数据。
6.如利要求1所述的计算机实现的方法,其中,该查询采取结构化查询语言(SQL)的形式。
7.一种用于优化数据库事务的数据处理系统,所述数据处理系统包括:
包含存储介质的存储装置,其中,所述存储装置存储计算机可用程序代码;和
处理器,其中所述处理器执行所述计算机可用程序代码,并且,所述计算机可用程序代码包括:
用于接收查询的计算机可用代码,该查询规定:(i)提供给该查询的一组谓词和(ii)该查询为真要满足的该组谓词中的谓词的最少数量;
用于使用所述查询对存储于计算机可读存储介质中的仓库执行操作的计算机可用代码;以及
用于呈现满足所述最少数量的谓词的一组结果的计算机可用代码。
8.如权利要求7所述的数据处理系统,其中,该查询被构造为ATLEAST(N、P1、P2、P3、...PK),其中,P1~PK是被提供给该查询的一组谓词,并且,N是查询为真要满足的所述谓词的所述最少数量。
9.如权利要求7所述的数据处理系统,其中,所述一组谓词中的谓词P1~PK各自表示为逐位谓词模式,以形成一组逐位谓词模式,并且,通过使用该组逐位谓词模式生成逻辑表达式来优化该查询。
10.如权利要求7所述的数据处理系统,其中,所述谓词的最少数量是使该查询运行的预定的阈值。
11.如权利要求7所述的数据处理系统,其中,该仓库包含结构化数据。
12.如权利要求7所述的数据处理系统,其中,该查询采取结构化查询语言(SQL)的形式。
CN201110361039.2A 2010-11-19 2011-11-15 用于优化数据库查询的方法和系统 Expired - Fee Related CN102479255B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US12/950,156 2010-11-19
US12/950,156 US9569485B2 (en) 2010-11-19 2010-11-19 Optimizing database query

Publications (2)

Publication Number Publication Date
CN102479255A true CN102479255A (zh) 2012-05-30
CN102479255B CN102479255B (zh) 2014-08-20

Family

ID=46065319

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201110361039.2A Expired - Fee Related CN102479255B (zh) 2010-11-19 2011-11-15 用于优化数据库查询的方法和系统

Country Status (3)

Country Link
US (1) US9569485B2 (zh)
JP (1) JP5791149B2 (zh)
CN (1) CN102479255B (zh)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103455573A (zh) * 2013-08-21 2013-12-18 成都云鹰科技有限公司 一种基于逻辑优化的数据库查询优化方法
CN104285222A (zh) * 2012-05-07 2015-01-14 国际商业机器公司 使用谓词映射器优化查询
CN104462095A (zh) * 2013-09-13 2015-03-25 阿里巴巴集团控股有限公司 一种查询语句公共部分的提取方法及装置
CN105183809A (zh) * 2015-08-26 2015-12-23 成都布林特信息技术有限公司 一种云平台数据查询方法
WO2017008734A1 (en) * 2015-07-16 2017-01-19 Huawei Technologies Co., Ltd. System and method for predicate pushdown and partition pruning in a distributed database
CN108170775A (zh) * 2017-12-26 2018-06-15 上海新炬网络技术有限公司 一种数据库sql索引动态优化方法
CN112567358A (zh) * 2019-04-16 2021-03-26 斯诺弗雷克公司 对数据库系统中的外部表进行查询

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104216891B (zh) * 2013-05-30 2018-02-02 国际商业机器公司 关系型数据库中的查询语句的优化方法和设备
CN103646067A (zh) * 2013-12-06 2014-03-19 四川九洲电器集团有限责任公司 一种提高数据库查询效率的方法和系统
US10162729B1 (en) * 2016-02-01 2018-12-25 State Farm Mutual Automobile Insurance Company Automatic review of SQL statement complexity

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070027845A1 (en) * 2005-07-28 2007-02-01 International Business Machines Corporation System and method for identifying qualifying data records from underlying databases
US20070112736A1 (en) * 2005-11-15 2007-05-17 Russell Okamoto Multi-query optimization
CN101436192A (zh) * 2007-11-16 2009-05-20 国际商业机器公司 用于优化针对垂直存储式数据库的查询的方法和设备

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0462667A (ja) 1990-06-30 1992-02-27 Nippon Telegr & Teleph Corp <Ntt> データベース検索方法
JP4235870B2 (ja) * 2000-09-01 2009-03-11 ソニー株式会社 データ処理装置およびデータ処理方法、復号装置および復号方法、並びに記録媒体
US6665664B2 (en) 2001-01-11 2003-12-16 Sybase, Inc. Prime implicates and query optimization in relational databases
US6968330B2 (en) * 2001-11-29 2005-11-22 International Business Machines Corporation Database query optimization apparatus and method
JP2004220283A (ja) 2003-01-14 2004-08-05 Fujitsu Ltd 抽出方法、抽出装置及びコンピュータプログラム
US7152073B2 (en) 2003-01-30 2006-12-19 Decode Genetics Ehf. Method and system for defining sets by querying relational data using a set definition language
US7111025B2 (en) * 2003-04-30 2006-09-19 International Business Machines Corporation Information retrieval system and method using index ANDing for improving performance
JP4623446B2 (ja) 2004-06-08 2011-02-02 敬史 田島 データ管理プログラムおよびデータ管理システム
WO2008002177A1 (en) 2006-06-30 2008-01-03 Intel Corporation Generating optimal instruction sequences for bitwise logical expressions
US8423569B2 (en) 2006-08-09 2013-04-16 International Business Machines Corporation Decomposed query conditions
JP4071816B1 (ja) 2007-03-22 2008-04-02 透 降矢 合成関係演算を利用したマルチオペレーション・プロセッシングを用いたデータベースのクエリー処理システム
US20100005077A1 (en) * 2008-07-07 2010-01-07 Kickfire, Inc. Methods and systems for generating query plans that are compatible for execution in hardware
US7844620B2 (en) * 2007-11-16 2010-11-30 International Business Machines Corporation Real time data replication for query execution in a massively parallel computer
US8051069B2 (en) * 2008-01-02 2011-11-01 At&T Intellectual Property I, Lp Efficient predicate prefilter for high speed data analysis
JP5010575B2 (ja) 2008-12-01 2012-08-29 ヤフー株式会社 情報検索装置、検索結果提示方法及びプログラム

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070027845A1 (en) * 2005-07-28 2007-02-01 International Business Machines Corporation System and method for identifying qualifying data records from underlying databases
US20070112736A1 (en) * 2005-11-15 2007-05-17 Russell Okamoto Multi-query optimization
CN101436192A (zh) * 2007-11-16 2009-05-20 国际商业机器公司 用于优化针对垂直存储式数据库的查询的方法和设备

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104285222A (zh) * 2012-05-07 2015-01-14 国际商业机器公司 使用谓词映射器优化查询
CN104285222B (zh) * 2012-05-07 2018-03-02 国际商业机器公司 用于重写查询的方法和系统
CN103455573A (zh) * 2013-08-21 2013-12-18 成都云鹰科技有限公司 一种基于逻辑优化的数据库查询优化方法
CN104462095A (zh) * 2013-09-13 2015-03-25 阿里巴巴集团控股有限公司 一种查询语句公共部分的提取方法及装置
CN104462095B (zh) * 2013-09-13 2018-06-12 阿里巴巴集团控股有限公司 一种查询语句公共部分的提取方法及装置
WO2017008734A1 (en) * 2015-07-16 2017-01-19 Huawei Technologies Co., Ltd. System and method for predicate pushdown and partition pruning in a distributed database
US10223419B2 (en) 2015-07-16 2019-03-05 Futurewei Technologies, Inc. System and method for predicate pushdown and partition pruning in a distributed database
CN105183809A (zh) * 2015-08-26 2015-12-23 成都布林特信息技术有限公司 一种云平台数据查询方法
CN108170775A (zh) * 2017-12-26 2018-06-15 上海新炬网络技术有限公司 一种数据库sql索引动态优化方法
CN112567358A (zh) * 2019-04-16 2021-03-26 斯诺弗雷克公司 对数据库系统中的外部表进行查询

Also Published As

Publication number Publication date
CN102479255B (zh) 2014-08-20
US9569485B2 (en) 2017-02-14
JP2012113706A (ja) 2012-06-14
US20120130982A1 (en) 2012-05-24
JP5791149B2 (ja) 2015-10-07

Similar Documents

Publication Publication Date Title
CN102479255A (zh) 用于优化数据库查询的方法和系统
JP7273045B2 (ja) Sqlクエリプランを最適化するための次元コンテキスト伝搬技術
US20210019318A1 (en) Materialized views for database query optimization
US8190555B2 (en) Method and system for collecting and distributing user-created content within a data-warehouse-based computational system
Bjeladinovic A fresh approach for hybrid SQL/NoSQL database design based on data structuredness
US8311975B1 (en) Data warehouse with a domain fact table
US20150149494A1 (en) Systems and methods for hot topic identification and metadata
CN104765731B (zh) 数据库查询优化方法和设备
CN1987861A (zh) 处理数据库查询的系统和方法
US8533159B2 (en) Processing materialized tables in a multi-tenant application system
CN101587491A (zh) 使用运行时可重配置硬件的混合数据库系统
US8719266B2 (en) Data perturbation of non-unique values
US6823334B2 (en) Metadata system for managing data mining environments
US9218394B2 (en) Reading rows from memory prior to reading rows from secondary storage
US11947567B2 (en) System and method for computing and managing datasets using hierarchical analytics
US20150012498A1 (en) Creating an archival model
US8515927B2 (en) Determining indexes for improving database system performance
KR20160118235A (ko) 데이터 생성
US10922328B2 (en) Method and system for implementing an on-demand data warehouse
Damasio et al. Guided automated learning for query workload re-optimization
US8250024B2 (en) Search relevance in business intelligence systems through networked ranking
Reniers et al. Schema design support for semi-structured data: Finding the sweet spot between NF and De-NF
Kojić et al. Equilibrium of redundancy in relational model for optimized data retrieval
US11216457B1 (en) Selectively assigning join operations for remote data processing
CN109828983A (zh) Pg数据库处理方法、装置、电子设备及存储介质

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20140820

CF01 Termination of patent right due to non-payment of annual fee