CN116457772A - 使用查询编译器优化数据库语句 - Google Patents
使用查询编译器优化数据库语句 Download PDFInfo
- Publication number
- CN116457772A CN116457772A CN202180076808.6A CN202180076808A CN116457772A CN 116457772 A CN116457772 A CN 116457772A CN 202180076808 A CN202180076808 A CN 202180076808A CN 116457772 A CN116457772 A CN 116457772A
- Authority
- CN
- China
- Prior art keywords
- database
- clause
- statement
- database statement
- query compiler
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 claims description 33
- 238000003860 storage Methods 0.000 claims description 20
- 238000004590 computer program Methods 0.000 claims description 12
- 230000004044 response Effects 0.000 claims description 8
- 238000005457 optimization Methods 0.000 claims description 5
- 238000004891 communication Methods 0.000 description 17
- 238000010586 diagram Methods 0.000 description 14
- QQWUGDVOUVUTOY-UHFFFAOYSA-N 5-chloro-N2-[2-methoxy-4-[4-(4-methyl-1-piperazinyl)-1-piperidinyl]phenyl]-N4-(2-propan-2-ylsulfonylphenyl)pyrimidine-2,4-diamine Chemical compound COC1=CC(N2CCC(CC2)N2CCN(C)CC2)=CC=C1NC(N=1)=NC=C(Cl)C=1NC1=CC=CC=C1S(=O)(=O)C(C)C QQWUGDVOUVUTOY-UHFFFAOYSA-N 0.000 description 11
- 230000006870 function Effects 0.000 description 9
- 230000003287 optical effect Effects 0.000 description 7
- 230000005540 biological transmission Effects 0.000 description 4
- 230000007246 mechanism Effects 0.000 description 4
- 238000013500 data storage Methods 0.000 description 3
- 238000005304 joining Methods 0.000 description 3
- 230000008569 process Effects 0.000 description 3
- 230000008901 benefit Effects 0.000 description 2
- 238000004364 calculation method Methods 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 239000000835 fiber Substances 0.000 description 2
- 230000001902 propagating effect Effects 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- RYGMFSIKBFXOCR-UHFFFAOYSA-N Copper Chemical compound [Cu] RYGMFSIKBFXOCR-UHFFFAOYSA-N 0.000 description 1
- 241000699670 Mus sp. Species 0.000 description 1
- 230000002776 aggregation Effects 0.000 description 1
- 238000004220 aggregation Methods 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 229910052802 copper Inorganic materials 0.000 description 1
- 239000010949 copper Substances 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000008520 organization Effects 0.000 description 1
- 238000009877 rendering Methods 0.000 description 1
- 230000002441 reversible effect Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 230000001052 transient effect Effects 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/242—Query formulation
- G06F16/2428—Query predicate definition using graphical user interfaces, including menus and forms
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2453—Query optimisation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/242—Query formulation
- G06F16/2423—Interactive query statement specification based on a database schema
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2453—Query optimisation
- G06F16/24534—Query rewriting; Transformation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2453—Query optimisation
- G06F16/24534—Query rewriting; Transformation
- G06F16/2454—Optimisation of common expressions
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Human Computer Interaction (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Stored Programmes (AREA)
Abstract
使用查询编译器优化数据库语句,包括由查询编译器从客户端计算系统接收图形用户界面的状态规范;由查询编译器编译来自状态规范的数据库语句,包括:通过在数据库语句内重新定位限制从句来优化数据库语句,使得在至少一个联接从句之前由数据库处理限制从句;以及由查询编译器将所优化的数据库语句发送给基于云的数据仓库上的数据库。
Description
技术领域
本发明的领域是数据处理,或者更具体地说,是用于使用查询编译器优化数据库语句的方法、装置和产品。
背景技术
相关技术描述
现代企业可以将大量数据存储在基于云的数据仓库内的远程数据库中。可以使用诸如结构化查询语言(structured query language,SQL)之类的数据库查询语言来访问该数据。操纵存储在数据库中的数据可能需要构建超出大多数用户能力的复杂查询。
发明内容
用于使用查询编译器优化数据库语句的方法、系统和装置。使用查询编译器优化数据库语句包括由查询编译器从客户端计算系统接收图形用户界面的状态规范;由查询编译器编译来自状态规范的数据库语句,包括:通过在数据库语句内重新定位限制从句(limit clause)来优化数据库语句,使得在至少一个联接从句(join clause)之前由数据库处理限制从句;以及由查询编译器将所优化的数据库语句发送给基于云的数据仓库上的数据库。
根据附图中所示的本发明示例性实施例的以下更具体描述,本发明的上述和其他目的、特征和优点将显而易见,其中,相同的附图标记通常表示本发明示例性实施例的相同部分。
附图说明
图1示出了根据本发明实施例的被配置用于使用查询编译器优化数据库语句的示例系统的框图。
图2示出了根据本发明实施例的被配置用于使用查询编译器优化数据库语句的示例系统的框图。
图3示出了根据本发明实施例的被配置用于使用查询编译器优化数据库语句的示例系统的框图。
图4示出了表明根据本发明实施例的用于使用查询编译器优化数据库语句的示例性方法的流程图。
图5示出了表明根据本发明实施例的用于使用查询编译器优化数据库语句的示例性方法的流程图。
图6示出了表明根据本发明实施例的用于使用查询编译器优化数据库语句的示例性方法的流程图。
具体实施方式
从图1开始,参考附图描述根据本发明的用于使用查询编译器优化数据库语句的示例性方法、装置和产品。图1示出了根据本发明实施例的自动化计算机器的框图,该自动化计算机器包括被配置用于使用查询编译器优化数据库语句的示例性查询编译器计算系统(152)。图1的查询编译器计算系统(152)包括至少一个计算机处理器(156)或“CPU(中央处理器)”以及随机存取存储器(168)(“RAM”),随机存取存储器通过高速存储器总线(166)和总线适配器(158)连接到处理器(156)和查询编译器计算系统(152)的其他部件。
存储在RAM(168)中的是操作系统(154)。在根据本发明实施例的被配置用于使用查询编译器优化数据库语句的计算机中有用的操作系统包括UNIXTM、LinuxTM、MicrosoftWindowsTM、AIXTM和本领域技术人员将想到的其他操作系统。图1的示例中的操作系统(154)在RAM(168)中示出,但是这样的软件的许多部件通常也存储在非易失性存储器中,例如存储在诸如硬盘驱动器之类的数据存储设备(170)上。查询编译器(126)也被存储在RAM中,查询编译器(126)是根据本发明实施例的用于使用查询编译器优化数据库语句的模块。
图1的查询编译器计算系统(152)包括磁盘驱动器适配器(172),该磁盘驱动器适配器(172)通过扩展总线(160)和总线适配器(158)耦接到处理器(156)和查询编译器计算系统(152)的其他部件。磁盘驱动器适配器(172)以数据存储设备(170)的形式将非易失性数据存储设备连接到查询编译器计算系统(152)。在根据本发明实施例的被配置用于使用查询编译器优化数据库语句的计算机中有用的磁盘驱动器适配器包括集成驱动器电子(Integrated Drive Electronics,IDE)适配器、小型计算机系统接口(Small ComputerSystem Interface,SCSI)适配器和本领域技术人员将想到的其他适配器。如本领域技术人员将想到的,非易失性计算机存储器也可以被实现为光盘驱动器、电可擦除可编程只读存储器(所谓的“EEPROM”或“闪存”存储器)、RAM驱动器等。
图1的示例查询编译器计算系统(152)包括一个或更多个输入/输出(“I/O”)适配器(178)。I/O适配器通过例如软件驱动器和计算机硬件来实现面向用户的输入/输出,用于控制到诸如计算机显示屏之类的显示设备的输出以及来自诸如键盘和鼠标之类的用户输入设备(181)的用户输入。图1的示例查询编译器计算系统(152)包括视频适配器(209),该视频适配器(209)是专门为到诸如显示屏或计算机监视器之类的显示器设备(180)的图形输出而设计的I/O适配器的示例。视频适配器(209)通过高速视频总线(164)、总线适配器(158)和也是高速总线的前端总线(162)连接到处理器(156)。
图1的示例性查询编译器计算系统(152)包括用于与其他计算机数据通信以及用于与数据通信网络数据通信的通信适配器(167)。这样的数据通信可以通过RS-232连接、通过诸如通用串行总线(“Universal Serial Bus,USB”)之类的外部总线、通过诸如IP数据通信网络之类的数据通信网络、以及以本领域技术人员将想到的其他方式来串行地执行。通信适配器实现数据通信的硬件级,一个计算机通过该硬件级直接地或通过数据通信网络将数据通信发送给另一计算机。在根据本发明实施例的被配置用于使用查询编译器优化数据库语句的计算机中有用的通信适配器的示例包括用于有线拨号通信的调制解调器、用于有线数据通信的以太网(IEEE 802.3)适配器和用于无线数据通信的802.11适配器。
通信适配器(167)通信地耦接至广域网(190),广域网还包括基于云的数据仓库(192)和客户端计算系统(194)。基于云的数据仓库(192)是托管用于通过广域网(190)访问的一个或多个数据库的计算系统或计算系统组。客户端计算系统(194)是使用查询编译器计算系统(152)上的查询编译器(126)访问数据库的计算系统。
图2示出了根据本发明实施例的用于使用查询编译器优化数据库语句的示例性系统。如图2所示,该系统包括客户端计算系统(194)、查询编译器计算系统(152)和基于云的数据仓库(192)。客户端计算系统(194)包括图形用户界面(graphical user interface,GUI)(202)。查询编译器计算系统(152)包括查询编译器(126)。基于云的数据仓库(192)包括数据库(204)。查询编译器计算系统(152)是客户端计算系统(194)和基于云的数据仓库(192)之间的中间计算系统。
GUI(202)是被配置为以工作表和图形元素的形式向用户呈现数据集的视觉呈现。GUI(202)还从用户接收对来自数据库(204)的数据集的请求。GUI(202)可以部分地由查询编译器(126)呈现并显示在客户端计算系统(194)上(例如,在系统显示器或移动触摸屏上)。GUI(202)可以是包括查询编译器(126)并且托管在查询编译器计算系统(152)上的互联网应用的部分。
数据库(204)是数据和数据的管理系统的集合。数据集是来自数据库(204)的数据的集合(例如表)。数据集可以被组织成列和行(也称为记录)。组成数据集的特定列、行以及列和行的组织可以在请求数据集的数据库语句中指定。从数据库发送给查询编译器计算系统(152)和客户端计算系统(194)的数据集可以是数据库上的源数据库表的一部分或子集。
查询编译器(126)是硬件、软件或硬件和软件的聚合,被配置为经由GUI(202)接收来自客户端计算系统(194)的状态规范。查询编译器(126)还被配置为响应于状态规范中所描述的对GUI(202)的操纵而生成数据库查询语句。查询编译器(126)可以是生成数据库语句的数据库查询生成器的一部分。
状态规范是描述输入到GUI(202)中的数据集合。状态规范可以包括对GUI(202)内的GUI元素的操纵以及由客户端计算系统(194)的用户输入到GUI(202)中的数据。这样的操纵和数据可以指示对数据集的请求和操纵。状态规范可以是用于在异步浏览器与服务器通信中交换数据的标准文件格式。例如,状态规范可以是JavaScript对象表示法(JavaScriptObject Notation)规范。
状态规范可以包括用于对数据集施加更改的元素的描述。这样的元素可以包括应用于工作表的筛选器、工作表的层次级别、工作表内执行的联接、工作表中的可曝光参数和工作表的安全性。可曝光参数是工作表函数内的变量,可以在不呈现、不调整或不以其他方式曝光工作表函数本身的情况下被呈现和调整。工作表的安全性可以包括隐藏特定用户或特定用户组无权查看的数据集部分。
查询编译器(126)使用状态规范作为输入来生成数据库语句(也称作查询)。这个转换过程可以从将状态规范转换为抽象语法树开始。然后可以将抽象语法树规范化为规范化层次结构。然后可以将规范化层次结构线性化为工作表代数。然后可以将工作表代数降低到关系代数中,然后可以将关系代数降低到数据库查询中。
图3示出了根据本发明实施例的用于使用查询编译器优化数据库语句的示例性系统。如图3所示,示例性GUI(202)包括电子表格结构(302)和列表结构(304)。电子表格结构(302)包括具有六列(列A(306A)、列B(306B)、列C(306C)、列D(306D)、列E(306E)、列F(306F))的工作表(示出为空行)。
电子表格结构(302)是呈现数据集的工作表的图形元素和组织机制。工作表是来自数据仓库上的数据库的数据集(例如表)的呈现。电子表格结构(302)将工作表显示为按列(列A(306A)、列B(306B)、列C(306C)、列D(306D)、列E(306E)、列F(306F))组织的数据行。这些列描绘了工作表每行中数据的不同类别。这些列也可以是包括使用工作表中其他列的计算结果的计算列。
列表结构(304)是用于定义和组织数据集的列(列A(306A)、列B(306B)、列C(306C)、列D(306D)、列E(306E)、列F(306F))之间的层次关系的图形元素。术语“层次关系”是指列的下级和上级分组。例如,数据库可以包括地址簿的行,以及州、县、市和街道的列。来自数据库的数据集可以先按州分组,然后按县分组,再按市分组。因此,州列将处于层次关系中的最高级,县列将处于层次关系中的第二级,市列将处于层次关系中的最低级。
列表结构(304)向用户呈现维度层次结构。具体地,列表结构(304)呈现跨至少一个维度分层布置的级别。列表结构(304)内的每个级别是列(列A(306A)、列B(306B)、列C(306C)、列D(306D)、列E(306E)、列F(306F))之间的层次关系内的位置。列表结构(304)内的键标识作为层次关系中的参与方的一个或更多个列。每个级别可以有多于一个键。
列表结构(304)中的级别之一可以是基本级别。为基本级别选择的列以最细粒度提供数据。列表结构(304)中的级别之一可以是总计级别或根级别。为总计级别所选择的列以最高粒度级别提供数据。例如,总计级别可以包括如下字段,该字段计算整个数据集(即,不被任何其他列分割)的单列内的每行的总和。
GUI(202)可以使用户能够将列(列A(306A)、列B(306B)、列C(306C)、列D(306D)、列E(306E)、列F(306F))拖放到列表结构(304)中。列表结构(304)的顺序可以指定列相对于彼此的层次结构。用户可以随时拖放列表结构(304)中的列,以重新定义列之间的层次关系。在图表中可以使用在列表结构(304)中被选择为键的列所定义的层次关系,以便下钻操作(例如,在栏(bar)上双击)能够基于层次结构中的较低级别生成新的图表。
GUI(202)还可以包括用于用户从将在GUI(202)中呈现为工作表的数据库中请求表的机制。这样的机制可以是工作表的交互性的部分。具体地,用户可以操纵工作表(例如,通过拖放列或行、重新采用列或行等),并且作为响应,GUI(202)可以生成对数据集的请求(例如,以状态规范的形式),并将该请求发送给查询编译器(126)。这样的机制还可以包括用户想要访问(例如,经由对话框中行和列的选择)的数据库表的行和列的直接标识。
为了进一步解释,图4示出了表明根据本发明实施例的用于使用查询编译器优化数据库语句的示例性方法的流程图,该方法包括由查询编译器(126)从客户端计算系统(194)接收(402)图形用户界面的状态规范(420)。由查询编译器(126)从客户端计算系统(194)接收(402)图形用户界面的状态规范(420),可以通过以下来执行:检测用户已经使用GUI操纵GUI的元素和/或所提交的数据,使得触发状态规范(420)的生成,并且将状态规范(420)发送给查询编译器(126)。然后可以响应于用户在客户端计算系统(194)上操纵GUI来接收状态规范(420)。例如,用户可以从呈现的表组中选择表,以显示在GUI上的工作表中。作为另一示例,用户可以更改GUI的维度层次结构中列的顺序。对GUI的每个更改都可能导致新的或更新的状态规范。
图4的方法还包括由查询编译器(126)编译(404)来自状态规范(420)的数据库语句。由查询编译器(126)编译(404)来自状态规范(420)的数据库语句可以通过将状态规范转换或降低到各种中间形式中来执行。这样的中间形式可以包括抽象语法树、规范化层次结构、工作表代数和关系代数。在这些中间形式中的每一个中间形式期间,查询编译器(126)可以优化数据库语句以从数据库中有效地检索目标数据集。所得到的数据库语句可以是结构化查询语言语句(SQL)。
图4的方法还包括通过在数据库语句内重新定位限制从句来优化(406)数据库语句,使得在至少一个联接从句之前由数据库处理限制从句。限制从句是标识结果数据集的最大记录数或最大行数的任何数据库指令。联接从句是将数据库中的列组合为结果数据集的任何数据库指令。列可以来自数据库中的至少两个不同的表。通过在数据库语句内重新定位限制从句来优化(406)数据库语句,使得在至少一个联接从句之前由数据库处理限制从句可以通过以下来执行:将限制从句移向数据库语句的开头、取代一个或更多个联接从句。在联接从句之前重新定位限制从句会产生一种数据库语句,该数据库语句限制经受联接的记录数,从而相对于执行联接之后限制记录数减少所需的处理资源。优化通常是指通过重新定位数据库语句内的指令和/或用等同指令或指令组合替代数据库语句内的指令,来减少生成结果数据集所需的数据库处理量。
图4的方法还包括由查询编译器(126)向基于云的数据仓库(192)上的数据库发送(408)所优化的数据库语句(422)。由查询编译器(126)将所优化的数据库语句(422)发送(408)给基于云的数据仓库(192)上的数据库可以通过将数据库语句(422)发布到基于云的数据仓库(192)上的数据库来执行。在通过网络传输到基于云的数据仓库(192)上的数据库之前,如上所述对所优化的数据库语句进行优化。在接收所优化的数据库语句(422)后,基于云的数据仓库(192)上的数据库可以对所优化的数据库语句(422)执行附加优化。数据库然后可以处理所优化的数据库语句(422)以生成结果数据集。最后,结果数据集然后被传输回查询编译器计算系统,用于在客户端计算系统(194)的GUI上呈现。
以上限制通过在根据GUI状态规范形式的人类可读输入进行编译期间优化数据库语句,来改进计算机系统的操作。这通过重新定位限制从句以将状态规范转换为所优化的数据库语句,使得在至少一个联接从句之前由数据库处理限制从句来实现,从而产生限制经受联接的记录数量的数据库语句,从而相对于执行联接之后限制的记录数量而减少所需的处理资源。
为了进一步解释,图5示出了表明根据本发明实施例的用于使用查询编译器优化数据库语句的进一步示例性方法的流程图,该方法包括由查询编译器(126)从客户端计算系统(194)接收(402)图形用户界面的状态规范(420);由查询编译器(126)编译(404)来自状态规范(420)的数据库语句,包括:通过在数据库语句内重新定位限制从句来优化(406)数据库语句,使得在至少一个联接从句之前由数据库处理限制从句;以及由查询编译器(126)向基于云的数据仓库(192)上的数据库发送(408)所优化的数据库语句(422)。
然而,图5的方法与图4的方法的不同之处在于,通过在数据库语句内重新定位限制从句来优化(406)数据库语句,使得在至少一个联接从句之前由数据库处理限制从句,包括在运算符查询树表示(也称为抽象语法树)内降低(502)限制从句。状态规范和所优化的数据库语句之间的中间形式可以包括运算符查询树表示,其中运算符基于数据库语句的操作顺序被组织在树层次结构中。术语运算符是指数据库语句内的指令和从句(例如,限制从句、联接从句)。可以通过搜索运算符查询树表示以确定限制从句是否存在于运算符查询树表示中比联接从句更高级的位置,来执行在运算符查询树表示内降低(502)限制从句。如果存在此条件,则限制从句可以在运算符查询树表示中移动到比联接从句更低的位置。如下文参考图6所述,移动可以进一步基于其他确定。
为了进一步解释,图6示出了表明根据本发明实施例的用于使用查询编译器优化数据库语句的进一步示例性方法的流程图,该方法包括由查询编译器(126)从客户端计算系统(194)接收(402)图形用户界面的状态规范(420);由查询编译器(126)编译(404)来自状态规范(420)的数据库语句,包括:通过在数据库语句内重新定位限制从句来优化(406)数据库语句,使得在至少一个联接从句之前由数据库处理限制从句;以及由查询编译器(126)向基于云的数据仓库(192)上的数据库发送(408)所优化的数据库语句(422)。
然而,图6的方法与图4的方法的不同之处在于:通过在数据库语句内重新定位限制从句来优化(406)数据库语句,使得在执行至少一个联接从句之前由数据库处理限制从句是响应于检测到(602)限制从句定位在数据库语句内、使得在至少一个联接从句之后由数据库处理限制从句而执行的。
如上所述重新定位限制从句的能力可能需要各种确定,以确保这样做不会导致不等同的结果数据集,不会导致错误(例如,语法错误),并且不需要比未优化的数据库语句更大的数据库处理量。这些确定中的每一个确定都可以由查询编译器评估状态规范和中间形式来引起,或者由查询编译器在系统内强加和维护特定工作表结构来引起。
由查询编译器评估状态规范和中间形式可以包括检测(602)限制从句定位在数据库语句内,使得在至少一个联接从句之后由数据库处理限制从句。通过扫描数据库语句的处理顺序并确定每个限制从句和每个联接从句的相对位置,可以执行:检测(602)限制从句定位在数据库语句内,使得在至少一个联接从句之后由数据库处理限制从句。
无论是由查询编译器评估状态规范和中间形式,还是由查询编译器在系统内强加和维护特定工作表结构,都可以使查询编译器确定预期数量的记录结果。具体地,可以通过由查询编译器评估状态规范和中间形式来确定预期数量的结果,以推断结果数据集中的预期数量的记录结果。还可以通过查询编译器在系统内强加和维护特定工作表结构来确定预期数量的结果。该特定结构可以包括限制在GUI内操纵工作表的方式。
还可以通过在数据库和基于云的数据仓库(192)之外维护表的主键来执行确定预期数量的结果。主键是列,其中每行都是唯一的(即,与该列中的其他每一行不同)。工作表的级别层次结构可以使用这些主键生成。此外,查询编译器(128)可以在查询编译器计算系统上维护来自数据库上的两个或更多个表的列的存储库,而不是将主键存储在数据库上,这些列包括可以匹配以联接两个相关联的表的等同唯一值。因此,查询编译器(128)可以确保主键的列中的每个值(或不同列中值的组合)是唯一的。由于主键是唯一的,因此可以准确地预测结果数据集中记录的数量。
鉴于上述解释,读者将认识到,使用根据本发明实施例的查询编译器优化数据库语句的益处包括:
·通过优化传出数据库语句来改善计算系统的运行,减少目标数据库上的处理资源,提高计算系统效率和可用性。
·通过维护状态规范的结构来改善计算系统的运行,以实现优化,提高计算系统效率和可用性。
本发明的示例性实施例主要是在用于使用查询编译器优化数据库语句的全功能计算机系统的上下文中描述的。然而,本领域技术人员将认识到,本发明也可以体现在设置在计算机可读存储介质上的计算机程序产品中,用于与任何合适的数据处理系统一起使用。这样的计算机可读存储介质可以是用于机器可读信息的任何存储介质,包括磁介质、光学介质或其他合适的介质。这样的介质的示例包括硬盘驱动器或软磁盘中的磁盘、用于光学驱动器的光盘、磁带、以及本领域技术人员将想到的其他介质。本领域技术人员将立即认识到,具有合适的编程装置的任何计算机系统都将能够执行计算机程序产品中所体现的本发明方法的步骤。本领域技术人员还将认识到,尽管本说明书中描述的一些示例性实施例面向在计算机硬件上安装和执行的软件,然而,实现为固件或硬件的替代实施例也完全在本发明的范围内。
本发明可以是系统、方法和/或计算机程序产品。计算机程序产品可以包括其上具有计算机可读程序指令的计算机可读存储介质(或介质),用于使处理器执行本发明的各方面。
计算机可读存储介质可以是有形设备,可以保留和存储指令以供指令执行设备使用。计算机可读存储介质可以是,例如,但不限于,电子存储设备、磁存储设备、光学存储设备、电磁存储设备、半导体存储设备或上述的任何合适的组合。计算机可读存储介质的更具体示例的非穷举列表包括以下内容:便携式计算机软盘、硬盘、随机存取存储器(randomaccess memory,RAM)、只读存储器(read-only memory,ROM)、可擦除可编程只读存储器(EPROM(erasable programmable read-only memory)或闪存)、静态随机存取存储器(static random access memory,SRAM)、便携式光盘只读存储器(compact disc read-only memory,CD-ROM)、数字通用盘(digital versatile disk,DVD)、记忆棒、软盘、诸如穿孔卡或凹槽中的凸起结构之类的其上记录有指令的机械编码设备、以及上述任何合适的组合。如本文所用的计算机可读存储介质不应被解释为瞬态信号本身,例如无线电波或其他自由传播的电磁波、通过波导或其他传输介质传播的电磁波(例如,通过光纤电缆的光脉冲)或通过导线传输的电信号。
本文所述的计算机可读程序指令可以从计算机可读存储介质下载到对应计算/处理设备,或者经由网络(例如,互联网、局域网、广域网和/或无线网络)下载到外部计算机或外部存储设备。该网络可以包括铜传输电缆、光传输光纤、无线传输、路由器、防火墙、交换机、网关计算机和/或边缘服务器。每个计算/处理设备中的网络适配器卡或网络接口从网络接收计算机可读程序指令,并转发计算机可读程序指令以存储在对应计算/处理设备内的计算机可读存储介质中。
用于执行本发明的操作的计算机可读程序指令可以是汇编指令、指令集体系结构(instruction-set-architecture,ISA)指令、机器指令、机器相关指令、微码、固件指令、状态设置数据、或以一个或更多个编程语言(包括诸如Smalltalk、C++等之类的面向对象的编程语言和诸如“C”编程语言或类似的编程语言之类的传统的过程编程语言)的任何组合编写的源代码或目标代码。计算机可读程序指令可以完全地在用户的计算机上执行、部分地在用户的电脑上执行、作为独立的(stand-alone)软件包执行、部分地在用户的电脑上且部分地在远程计算机上执行或完全地在远程计算机或服务器上执行。在后一种情形下,远程计算机可以通过任何类型的网络(包括局域网(local area network,LAN)或广域网(widearea network,WAN))连接到用户的计算机,或者可以连接到外部计算机(例如,通过使用互联网服务提供商的互联网)。在一些实施例中,包括例如可编程逻辑电路、现场可编程门阵列(field-programmable gate array,FPGA)或可编程逻辑阵列(programmable logicarray,PLA)的电子电路可以通过利用计算机可读程序指令的状态信息来执行计算机可读程序指令,以个性化电子电路,以便执行本发明的各方面。
本文参考根据本发明实施例的方法、装置(系统)和计算机程序产品的流程图图示和/或框图来描述本发明的各方面。应当理解,流程图图示和/或框图的每个框以及流程图图示和/或框图中的框的组合可以通过计算机可读程序指令来实现。
这些计算机可读程序指令可以被提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器以产生机器,使得该指令经由计算机或其他可编程数据处理装置的处理器执行创建用于实现在流程图和/或框图框中所指定的功能/动作的装置。这些计算机可读程序指令也可以存储在能够指导计算机、可编程数据处理装置和/或其他设备以特定方式工作的计算机可读存储介质中,使得具有存储在其中的指令的计算机可读存储介质包括制造品,该制造品包括实现流程图和/或框图框中所指定的功能/动作的各方面的指令。
计算机可读程序指令也可以加载到计算机、其他可编程数据处理装置或其他设备上,以导致在计算机、其他可编程装置或其他设备上执行一系列操作步骤,从而产生计算机实现的处理,使得在计算机、其他可编程装置或其他设备上执行的指令实现流程图和/或框图框中所指定的功能/动作。
图中的流程图和框图示出根据本发明各种实施例的系统、方法和计算机程序产品的可能实现的架构、功能和操作。在这方面,流程图或框图中的每个框可以表示指令的模块、段或部分,其包括用于实现指定逻辑功能的一个或更多个可执行指令。在一些替代实现中,框中所示的功能可以按图中所示顺序发生。例如,事实上,根据所涉及的功能,连续示出的两个框可以基本上同时执行,或者框有时可以以相反的顺序执行。还将注意到,框图和/或流程图图示的每个框和框图和/或流程图中的框的组合可以由基于专用硬件的系统来实现,该系统执行指定的功能或动作,或者执行专用硬件和计算机指令的组合。
从前面的描述中可以理解,在不脱离本发明真正精神的情况下,可以在本发明的各种实施例中进行修改和更改。本说明书中的描述仅用于说明目的,不应被解释为限制意义。本发明的范围仅由以下权利要求的语言所限制。
Claims (20)
1.一种使用查询编译器优化数据库语句的方法,所述方法包括:
由查询编译器从客户端计算系统接收图形用户界面的状态规范;
由所述查询编译器编译来自所述状态规范的数据库语句,包括:
通过在所述数据库语句内重新定位限制从句来优化所述数据库语句,使得在至少一个联接从句之前由所述数据库处理所述限制从句;以及
由所述查询编译器将所优化的数据库语句发送给基于云的数据仓库上的数据库。
2.根据权利要求1所述的方法,其中,在所述数据库语句内重新定位所述限制从句包括在运算符查询树表示内降低所述限制从句。
3.根据权利要求1所述的方法,其中,通过在所述数据库语句内重新定位所述限制从句来优化所述数据库语句是响应于检测到所述限制从句被定位在所述数据库语句内,使得在至少一个联接从句之后由所述数据库处理所述限制从句。
4.根据权利要求3所述的方法,其中,通过在所述数据库语句内重新定位所述限制从句来优化所述数据库语句进一步响应于确定期望数量的记录结果。
5.根据权利要求1所述的方法,其中,所述图形用户界面包括工作表,所述工作表呈现来自所述基于云的数据仓库的数据集。
6.根据权利要求1所述的方法,其中,在接收到所述数据库语句后,所述基于云的数据仓库上的数据库对所优化的数据库语句执行附加优化。
7.根据权利要求1所述的方法,其中,所述状态规范是响应于用户在所述客户端计算系统上操纵所述图形用户界面而接收的。
8.根据权利要求1所述的方法,其中,所述查询编译器在所述客户端计算系统和所述基于云的数据仓库之间的中间计算系统上。
9.根据权利要求1所述的方法,其中,所述数据库语句是结构化查询语言语句。
10.一种用于使用查询编译器优化数据库语句的装置,所述装置包括计算机处理器、可操作地耦接至所述计算机处理器的计算机存储器,所述计算机存储器内设置有计算机程序指令,当所述计算机程序指令由所述计算机处理器执行时,使所述装置执行以下步骤:
由查询编译器从客户端计算系统接收图形用户界面的状态规范;
由所述查询编译器编译来自所述状态规范的数据库语句,包括:
通过在所述数据库语句内重新定位限制从句来优化所述数据库语句,使得在至少一个联接从句之前由所述数据库处理所述限制从句;以及
由所述查询编译器将所优化的数据库语句发送给基于云的数据仓库上的数据库。
11.根据权利要求10所述的装置,其中,在所述数据库语句内重新定位所述限制从句包括在运算符查询树表示内降低所述限制从句。
12.根据权利要求10所述的装置,其中,通过在所述数据库语句内重新定位所述限制从句来优化所述数据库语句是响应于检测到所述限制从句被定位在所述数据库语句内,使得在至少一个联接从句之后由所述数据库处理所述限制从句。
13.根据权利要求12所述的装置,其中,通过在所述数据库语句内重新定位所述限制从句来优化所述数据库语句进一步响应于确定期望数量的记录结果。
14.根据权利要求10所述的装置,其中,所述图形用户界面包括工作表,所述工作表呈现来自所述基于云的数据仓库的数据集。
15.根据权利要求10所述的装置,其中,在接收到所述数据库语句后,所述基于云的数据仓库上的数据库对所优化的数据库语句执行附加优化。
16.根据权利要求10所述的装置,其中,所述状态规范是响应于用户在所述客户端计算系统上操纵所述图形用户界面而接收的。
17.根据权利要求10所述的装置,其中,所述查询编译器在所述客户端计算系统和所述基于云的数据仓库之间的中间计算系统上。
18.根据权利要求10所述的装置,其中,所述数据库语句是结构化查询语言语句。
19.一种用于使用查询编译器优化数据库语句的计算机程序产品,所述计算机程序产品设置在计算机可读存储介质上,所述计算机程序产品包括计算机程序指令,当所述计算机程序指令被执行时,使计算机执行以下步骤:
由查询编译器从客户端计算系统接收图形用户界面的状态规范;
由所述查询编译器编译来自所述状态规范的数据库语句,包括:
通过在所述数据库语句内重新定位限制从句来优化所述数据库语句,使得在至少一个联接从句之前由所述数据库处理所述限制从句;以及
由所述查询编译器将所优化的数据库语句发送给基于云的数据仓库上的数据库。
20.根据权利要求19所述的计算机程序产品,其中,在所述数据库语句内重新定位所述限制从句包括在运算符查询树表示内降低所述限制从句。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US17/061,148 US11663203B2 (en) | 2020-10-01 | 2020-10-01 | Optimizing database statements using a query compiler |
US17/061,148 | 2020-10-01 | ||
PCT/US2021/053112 WO2022072791A1 (en) | 2020-10-01 | 2021-10-01 | Optimizing database statements using a query compiler |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116457772A true CN116457772A (zh) | 2023-07-18 |
Family
ID=78592913
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202180076808.6A Pending CN116457772A (zh) | 2020-10-01 | 2021-10-01 | 使用查询编译器优化数据库语句 |
Country Status (4)
Country | Link |
---|---|
US (2) | US11663203B2 (zh) |
EP (1) | EP4204985A1 (zh) |
CN (1) | CN116457772A (zh) |
WO (1) | WO2022072791A1 (zh) |
Family Cites Families (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070233655A1 (en) * | 2006-04-03 | 2007-10-04 | National Instruments Corporation | Graphical program representation of queries |
US20090077013A1 (en) * | 2007-09-19 | 2009-03-19 | International Business Machines Corporation | Methods, systems, and computer program products for user-driven targeted query re-optimizations using delta values |
US9183254B1 (en) * | 2012-05-04 | 2015-11-10 | Paraccel Llc | Optimizing database queries using subquery composition |
US8661023B1 (en) * | 2012-08-01 | 2014-02-25 | Google Inc. | Optimizing search query logic to speed retrieval |
US9524473B2 (en) * | 2012-08-31 | 2016-12-20 | Nutonian, Inc. | System and method for auto-query generation |
CN103714058B (zh) * | 2012-09-28 | 2017-05-17 | Sap欧洲公司 | 用于数据库查询优化的方法以及使用该方法的系统 |
US9558240B2 (en) * | 2014-06-06 | 2017-01-31 | Microsoft Technology Licensing, Llc | Extending relational algebra for data management |
US10324929B2 (en) * | 2016-10-31 | 2019-06-18 | Sap Se | Provision of position data for query runtime errors |
US10664473B2 (en) * | 2017-01-30 | 2020-05-26 | International Business Machines Corporation | Database optimization based on forecasting hardware statistics using data mining techniques |
US10936589B1 (en) * | 2017-09-14 | 2021-03-02 | Amazon Technologies, Inc. | Capability-based query planning for heterogenous processing nodes |
US10810192B2 (en) | 2018-09-18 | 2020-10-20 | Sigma Computing, Inc. | Generating a database query to dynamically aggregate rows of a data set |
US11210285B2 (en) * | 2020-03-06 | 2021-12-28 | Ab Initio Technology Llc | Generation of optimized logic from a schema |
US11468102B2 (en) * | 2020-06-05 | 2022-10-11 | Teradata Us, Inc. | Optimizing limit queries over analytical functions |
-
2020
- 2020-10-01 US US17/061,148 patent/US11663203B2/en active Active
-
2021
- 2021-10-01 WO PCT/US2021/053112 patent/WO2022072791A1/en active Application Filing
- 2021-10-01 CN CN202180076808.6A patent/CN116457772A/zh active Pending
- 2021-10-01 EP EP21806065.5A patent/EP4204985A1/en active Pending
-
2023
- 2023-03-17 US US18/186,066 patent/US11989177B1/en active Active
Also Published As
Publication number | Publication date |
---|---|
EP4204985A1 (en) | 2023-07-05 |
US11663203B2 (en) | 2023-05-30 |
US11989177B1 (en) | 2024-05-21 |
US20220107945A1 (en) | 2022-04-07 |
WO2022072791A1 (en) | 2022-04-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN115280300A (zh) | 从基于云的数据仓库高速缓存加载仪表板 | |
CN113646754A (zh) | 跨组织工作表共享 | |
US20200372210A1 (en) | Using lightweight references to present a worksheet | |
CN114787795A (zh) | 链接数据集 | |
US20220335212A1 (en) | Data visualization with derived dimensional hierarchy | |
US11886456B2 (en) | Creating a model data set using a spreadsheet interface | |
CN114051613B (zh) | 在连接来自数据库的工作表时保持行的基数 | |
CN116457772A (zh) | 使用查询编译器优化数据库语句 | |
CN114981794B (zh) | 编译数据库查询 | |
US20230153301A1 (en) | Evaluating stored query results | |
US20230147424A1 (en) | Live editing editable tables | |
US20230153295A1 (en) | Prefetching query results using expanded queries | |
WO2023086504A1 (en) | Live editing editable tables | |
CN116601623A (zh) | 使用中间语句生成器的数据库写回 | |
US20230334237A1 (en) | Workbook template sharing | |
US20240176793A1 (en) | Fetching ideal data sets based on usage patterns | |
WO2020191145A1 (en) | Linking and composing worksheets | |
WO2022221585A1 (en) | Data visualization with derived dimensional hierarchy | |
CN114766021A (zh) | 管理工作表访问 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |