CN106033469B - 用于大数据的结构化查询的高效性能预测的方法和系统 - Google Patents
用于大数据的结构化查询的高效性能预测的方法和系统 Download PDFInfo
- Publication number
- CN106033469B CN106033469B CN201510125047.5A CN201510125047A CN106033469B CN 106033469 B CN106033469 B CN 106033469B CN 201510125047 A CN201510125047 A CN 201510125047A CN 106033469 B CN106033469 B CN 106033469B
- Authority
- CN
- China
- Prior art keywords
- time
- subquery
- inquiry
- database
- execute
- 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.)
- Active
Links
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/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/245—Query processing
- G06F16/2455—Query execution
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computational Linguistics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Operations Research (AREA)
- Debugging And Monitoring (AREA)
Abstract
本发明涉及一种用于大数据的结构化查询的高效性能预测的方法和系统。所述系统包括:db模拟器模块,其用于基于通过从开发环境外推统计信息导出的空模式创建模拟数据库。执行计划生成模块,其用于生成查询的查询执行计划。查询分类模块,其用于基于运算参数将每个子查询分类为全表扫描、主索引扫描、快速索引扫描和非唯一索引扫描中的至少一个。时间确定模块,其用于在模拟数据库上执行每个子查询以确定输入输出(IO)访问时间和运算时间。ERT预测模块,其用于基于所述IO访问时间、所述运算时间和网络时间预测要在所述成品数据库中执行的查询的所述ERT。
Description
优先权信息
本专利申请要求于2014年11月14日提交的编号为3600/MUM/2014的印度专利申请的优先权。
技术领域
本文中所描述的本公开总体涉及一种数据库管理系统,并且更具体地,涉及用于预测要在成品数据库中执行的查询的消逝响应时间(elapsed response time)的数据库管理系统。
背景技术
由于大量数据,大数据范式已经引发了应用程序的具有影响力的性能。应用程序的性能已经基于各种参数被评估。便于评估性能的一个关键参数是查询的响应时间。对于结构化数据库应用程序而言,查询的响应时间是针对部署在成品数据库中的大量数据的子集而测试的。普遍认为,有时这样的数据库应用程序中的响应时间可能会随数据量在一定时间内的增加而非线性地增加。响应时间的非线性增加可能反过来会导致对提供给应用程序的用户的性能保证构成侵害。
响应时间的该非线性增加是因为被用于测试查询的常规测试技术而产生。常规测试技术包括对大量数据的子集的查询进行测试。因此,为了使用常规测试技术来评估性能,应用程序可能需要各种资源,诸如能够存储数万亿条记录的存储服务器。但是用于评估性能的这种资源部署可能会导致产生巨大成本。此外,即使资源被布置,针对大量数据的查询的测试可能增加评估时间,且因此延迟应用程序的部署。
为了克服上述的缺陷,已经在本领域提出了基于各种统计机器学习的模型,其使用过去的查询创建学习基础,且然后基于最邻近方法预测查询的响应时间。但这样的模型不能随数据量在一定时间内的线性增加而精确预测查询的响应时间。
发明内容
在描述本发明的系统和方法之前,应理解,本申请不限于所描述的特定系统和方法,因为除了在本公开中明确示出之外,可以存在多个可能的实施例。也应理解,在说明书中使用的术语仅是为了描述具体形式或实施例的目的,并且不旨在限制本申请的范围。本发明内容被提供以介绍与用于预测要在成品数据库中执行的查询的消逝响应时间(ERT)的系统和方法相关的概念且所述概念将在下面的具体实施方式中被进一步描述。本发明内容不旨在标识:本公开的必要特征不旨在用于确定或限制本公开的范围。
在一个实施方式中,公开了一种用于预测要在成品数据库中执行的查询的消逝响应时间(ERT)的系统。在一个方面,系统可包括处理器和耦接到处理器的存储器。处理器可执行存在于存储器中的多个模块。多个模块还可包括db模拟器模块、执行计划生成模块、时间确定模块和ERT预测模块。db模拟器模块可基于通过从开发环境外推统计信息导出的空模式在开发环境中创建对应于成品数据库的模拟数据库。执行计划生成模块可基于模拟数据库生成查询的查询执行计划。查询执行计划表示要在成品数据库中执行的所述查询的一个或多个子查询。在一个方面,每个子查询可与运算参数相关联。查询分类模块可基于运算参数将每个子查询分类为至少一种类型的扫描。扫描类型的实例可包括但不限于全表扫描、主索引扫描、快速索引扫描和非唯一索引扫描。时间确定模块可在存在于开发环境中的测试数据库上执行每个子查询以确定对应于每个子查询的输入输出(IO)访问时间和对应于每个子查询的运算时间。IO访问时间可基于分类而预测。运算时间可基于存在于每个子查询中的一个或多个运算符而预测。ERT预测模块可基于对应于每个子查询的IO访问时间、对应于每个子查询的运算时间和网络时间预测要在成品数据库中执行的查询的ERT。网络时间表示在通过网络发送执行每个子查询时检索的数据所需要的时间。
在另一实施方式中,一种用于预测要在成品数据库中执行的查询的消逝响应时间(ERT)的方法,为了预测要在成品数据库中执行的ERT,首先基于通过从开发环境外推统计信息导出的空模式在开发环境中创建对应于成品数据库的模拟数据库。在创建模拟数据库后,可基于模拟数据库生成查询的查询执行计划。查询执行计划表示要在成品数据库中执行的查询的一个或多个子查询。在一个方面,每个子查询可与运算参数相关联。在生成查询执行计划之后,可基于运算参数将每个子查询分类为至少一种类型的扫描。扫描类型的实例可包括但不限于全表扫描、主索引扫描、快速索引扫描和非唯一索引扫描。在每个子查询的分类之后,可在存在于开发环境中的测试数据库上执行每个子查询以确定对应于每个子查询的输入输出(IO)访问时间和对应于每个子查询的运算时间。在一个方面,IO访问时间可基于分类而预测。在一个方面,运算时间可基于存在于每个子查询中的一个或多个运算符而预测。一旦IO访问时间和运算时间被确定,要在成品数据库中执行的查询的ERT可基于对应于每个子查询的IO访问时间、对应于每个子查询的运算时间和网络时间而预测。网络时间表示通过网络发送在执行每个子查询时检索的数据所需要的时间。在一个方面,用于预测要在成品数据库中执行的查询的ERT的上述方法可通过使用存储在存储器中的编程指令的处理器进行。
在另一实施方式中,一种包含可在用于预测要在成品数据库中执行的查询的消逝响应时间(ERT)的计算装置中可执行的程序的非临时性计算机可读介质。程序包括用于基于通过从开发环境外推统计信息导出的空模式在开发环境中创建对应于成品数据库的模拟数据库的程序代码。程序还可包括程序代码,其用于基于模拟数据库生成查询的查询执行计划。查询执行计划表示要在成品数据库中执行的查询的一个或多个子查询。在一个方面,每个子查询可与运算参数相关联。程序还可包括程序代码,其用于基于运算参数将每个子查询分类为至少一种类型的扫描。扫描类型的实例可包括但不限于全表扫描、主索引扫描、快速索引扫描和非唯一索引扫描。程序还可包括程序代码,其用于在存在于开发环境中的测试数据库上执行每个子查询以确定对应于每个子查询的输入输出(IO)访问时间,和对应于每个子查询的运算时间。IO访问时间可基于分类而预测。运算时间可基于存在于每个子查询中的一个或多个运算符而预测。程序还可包括程序代码,其用于基于对应于每个子查询的IO访问时间、对应于每个子查询运算时间和网络时间预测要在成品数据库中执行的查询的ERT。网络时间表示通过网络发送在执行每个子查询时检索的数据所需要的时间。
附图说明
当结合附图阅读时,可更好地理解实施例的前述详细描述。为了说明本公开的目的,在本公开的本文档示例结构示出;然而,本公开不限于本文档和附图中公开的具体方法和设备。
参照附图描述具体实施方式。在图中,参考号最左边的数字标识附图标记首次出现的附图。相同数字用于在整个附图中来指相同特征和组件。
图1示出根据本公开的实施例的用于预测要在成品数据库中执行的查询的消逝响应时间(ERT)的系统的网络实施方式。
图2示出根据本公开的实施例的系统,。
图3示出根据本公开的实施例的实例。
图4和图5示出根据本公开的实施例的用于预测要在成品数据库中执行的查询的ERT的方法。
具体实施方式
现在将详细地讨论示出其所有功能的本公开的一些实施例。词“包括”、“具有”、“包含”和“包括”,及其其它形式旨在指在意思上是等同的且其开放度结束于以下情况:这些词中的任何一个后面跟随的一个项目或多个项目不意味着是该项目或这些项目的穷举列表,或意味着被限于仅列出的一个或多个项目的穷举列表。还必须注意,如本文和所附权利要求书中所使用的,除非上下文另有明确说明,否则单数形式“a”、“an”、和“the”包括复数引用。虽然类似或等同于本文描述的那些的任何系统和方法可在实践中或在本公开的实施例的测试中使用,但是现在描述示例性系统和方法。所公开的实施例仅仅是本公开的示例,其可以各种形式来体现。
实施例的各种修改将对于本领域技术人员是显而易见的且这里的一般原理可应用于其它实施例。然而,本领域的普通技术人员将容易认识到,本公开不旨在被限于所说明的实施例,而是应被赋予与本文中所描述的原理和特征一致的最广范围。
描述用于预测要在成品数据库中执行的查询的消逝响应时间(ERT)的系统和方法。为了预测ERT,本公开解释基于空模式在开发环境中创建模拟数据库的直觉方法。在一个方面,模拟数据库可通过从开发环境外推统计信息来创建。系统通过线性外推对数据量敏感的统计信息来模拟大型数据库。统计信息的实例可包括表、块、索引块和数据值。应理解,ERT可取决于数据库的性能、数据库的相对大小、数据量、对数据库运算符(诸如join)有效的存储器的相对大小、查询设计、数据库模式和查询执行计划。在所有的上述各项中,查询执行计划、数据库的相对大小,和存储器的相对大小可随数据量的增加而改变。
一旦创建了模拟数据库,系统还基于模拟数据库生成查询的查询执行计划。查询执行计划表示要在成品数据库中执行的查询的一个或多个子查询。每个子查询与运算参数相关联。运算参数的实例可包括但不限于表、访问的模式、基数、输出大小、成本(cost),和输入输出成本(Input Output cost)。在生成查询执行计划之后,每个子查询可基于运算参数而分类。一方面,每个子查询可被分类为至少一种类型的扫描。扫描类型的实例可包括但不限于,基于表中的数据访问模式的全表扫描、快速索引扫描、主索引扫描和非唯一索引扫描。此外,每个子查询可在存在于开发环境中的测试数据库上执行以确定对应于每个子查询的输入输出(IO)访问时间,和对应于每个子查询的运算时间。
由于系统可能具有一些网络延迟时间以通过网络发送在执行每个子查询时检索的数据,所以查询的ERT可基于对应于每个子查询的IO访问时间、对应于每个子查询的运算时间和网络时间的总和而预测。一方面,查询的ERT可通过合计对应于每个子查询的IO访问时间和对应于每个子查询的运算时间以便确定预测的子查询执行时间和预测的子查询执行时间和网络时间从而确定ERT来进行预测。预测ERT的公式是
在一个方面,系统还限定用于要在成品数据库中执行的查询的性能基准值。性能基准值可基于ERT、预测的子查询执行时间、输入输出成本、逻辑读取、物理读取、基数,和输出大小而限定。
虽然所述的用于预测要在成品数据库中执行的查询的消逝响应时间(ERT)的系统和方法可在任何数量的不同的计算系统、环境,和/或配置中实施,但是在下面的示例性系统的上下文中描述这些实施例。
现在参考图1,公开了用于预测要在成品数据库中执行的查询的消逝响应时间(ERT)的系统(以下称为系统102)的网络实施方式100。在一个实施例中,系统102基于通过从开发环境外推统计信息导出的空模式而在开发环境中创建模拟数据库。在创建模拟数据库后,系统102基于模拟数据库生成查询的查询执行计划。在生成查询执行计划之后,系统102基于运算参数将每个子查询分类为全表扫描、主索引扫描、快速索引扫描和非唯一索引扫描中的至少一个。在每个子查询的分类之后,系统102在存在于开发环境中的测试数据库上执行每个子查询以确定对应于每个子查询的输入输出(IO)访问时间和运算时间。一旦IO访问时间和运算时间被确定,系统102基于IO访问时间、运算时间,和网络时间预测要在成品数据库执行的查询的ERT。网络时间表示通过网络传输在执行每个子查询时检索的数据所需要的时间。
虽然本公开是考虑到系统102在服务器上实施而解释的,但是应理解,系统102还可在各种计算系统(诸如膝上型计算机、台式计算机,笔记本计算机、工作站、大型计算机、服务器、网络服务器,基于云的计算环境)中实施。应理解,系统102可通过一个或多个用户装置104-1、104-2...104-N(以下统称为用户装置104),或驻留在用户装置104中的应用程序由多个用户访问。在一个实施方式中,系统102可包括基于云的计算环境,其中用户可操作被配置为执行位于远程的应用程序的个人计算系统。用户装置104的实例可包括但不限于便携式计算机、个人数字助理、手持式装置和工作站。用户装置104通过网络106通信地耦接至系统102。
在一个实施方式中,网络106可以是无线网络、有线网络或其组合。网络106可作为不同类型的网络(诸如内联网、局域网(LAN)、广域网(WAN)、互联网,等)中的一个来实施。网络106可以是专用网络或共享网络。共享网络代表使用各种协议(例如超文本传输协议(HTTP)、传输控制协议/互联网协议(TCP/IP)、无线应用协议(WAP)等)的不同类型的网络的联合以彼此通信。网络106还可包括各种网络装置,包括路由器、网桥、服务器、计算装置、存储装置等。
现在参考图2,示出根据本公开的实施例的系统102。在一个实施例中,系统102可包括至少一个处理器202、输入/输出(I/O)接口204和存储器206。至少一个处理器202可被实施为一个或多个微处理器、微型计算机、微控制器、数字信号处理器、中央处理单元、状态机、逻辑电路系统,和/或基于运算指令操纵信号的任何装置。其它功能中,至少一个处理器202被配置为读取并执行存储在存储器206中的计算机可读指令。
I/O接口204可包括各种软件和硬件接口,例如,网络接口、图形用户界面等。I/O接口204可允许系统102直接或通过客户端装置104与用户进行交互。此外,I/O接口204可使系统102与其它计算装置(诸如网络服务器和外部数据服务器(未示出))进行通信。I/O接口204可促进各种网络和协议类型(包括有线网络(例如,LAN、电缆等)和无线网络(诸如WLAN、蜂窝,或卫星))内的多个通信。I/O接口204可包括用于将多个装置彼此连接或连接到另一个服务器的一个或多个端口。
存储器206可包括本领域中已知的任何计算机可读介质和计算机程序产品,例如,易失性存储器(诸如静态随机存取存储器(SRAM)和动态随机存取存储器(DRAM)),和/或非易失性存储器(诸如只读存储器(ROM)、可擦可编程ROM、闪速存储器、硬盘、光盘和磁带)。存储器206可包括模块208和数据210。
模块208包括例程、程序、对象、组件、数据结构等,它们执行特定任务或实施特定抽象数据类型。在一个实施方式中,模块208可包括db模拟器模块212、执行计划生成模块214、查询分类模块216、时间确定模块218、ERT预测模块220、基准代理模块222和其它模块224。其它模块224可包括补充系统102的应用和功能的程序或代码指令。这里描述的模块208可作为可以在系统102的基于云计算环境中执行的软件模块而实施。
数据210(除其它事项外)充当用于存储由一个或多个模块208处理、接收以及生成的数据的知识库。数据210还可包括模拟数据库226、测试数据库227,和其它数据228。其它数据228可包括在其它模块224中的一个或多个模块的执行的结果而产生的数据。
在一个实施方式中,首先,用户可使用客户端装置104以经由I/O接口204来访问系统102。用户可使用I/O接口204注册他们本身以便使用系统102。一方面,用户可访问系统102的I/O接口204以便预测要在成品数据库中执行的查询的消逝响应时间(ERT)。为了预测ERT,系统102可采用多个模块,即db模拟器模块212、执行计划生成模块214、查询分类模块216、时间确定模块218、ERT预测模块220和基准代理模块222。下面描述多个模块的详细工作。
进一步参考图2,应理解,成品数据库可包括大量的数据。由于成品数据库包含大量的数据,所以预测查询的ERT可能是在包含大量数据的成品数据库上执行查询时消耗的时间。可以进一步理解,ERT可取决于数据库的性能、数据库的相对大小、和对数据库运算符(诸如join)有效的存储器的相对大小、查询设计、数据库模式和查询执行计划。在所有的上述各项中,查询执行计划、数据库的相对的存储器大小,和对数据库运算符有效的相对的存储器大小对数据库产生主要影响且进一步随数据量的增加而改变。为了预测ERT,db模拟器模块212基于空模式在开发环境中创建模拟数据库226。模拟数据库226内容较少但有利于基于统计信息生成查询执行计划。一方面,空模式可通过从开发环境外推统计信息来导出。统计信息的实例可包括但不限于表、块、索引块和数据值。
在模拟数据库226的生成之后,执行计划生成模块214基于模拟数据库生成查询的查询执行计划。执行计划生成模块214使用模拟数据库的表、索引和列来生成查询执行计划。查询执行计划表示要在成品数据库中执行的查询的一个或多个子查询,其中一个或多个子查询被整理以导出查询。每个子查询在背景中被独立地执行以从成品数据库中检索各自数据。一方面,每个子查询可与运算参数相关联。运算参数可包括但不限于表、访问的模式、基数、输出大小,和输入输出成本。
在一个实施例中,基数表示执行查询时返回的行数。基数进一步从一个步骤到其后继步骤确定输出的大小。在一个实例中,考虑查询如下:
Select sum(s_acctbal)from supplier where s_suppkey=ps_suppkey…(1)
由执行计划生成模块214生成的用于上述查询(1)的执行计划示于图3。基于查询(1),可理解,查询(1)被推导以便从两个表(即“供应商”和“partsupp_sk”)检索“accountbalance”的“sum”(账户结余的和),其中存在于“供应商”(“supplier”)中的“suppkey”(主键)等同于存在于“partsupp_sk”的“ps_suppkey”(外键)。为了生成查询执行计划,执行计划生成模块214确定存在于查询(1)中的一个或多个子查询。存在于查询(1)中的一个或多个子查询与选择指令、检索的数据(sum)的合计,和与表相关联的嵌套循环(即“supplier”(“供应商”)中的全表扫描和“partsupp_sk”中的索引范围扫描)相关联。
在一个实施例中,在生成查询执行计划之后,执行计划生成模块214将每个子查询映射到等同的独立查询。一方面,在子查询的执行满足至少一个以下提到的参数时,每个映射后的子查询视为等同于查询的相应子查询。
a)执行时间相同。
b)相同数量的输出行。
c)相同数量的逻辑读取和物理读取。
例如,考虑与前述相同的查询(1)。查询(1)可被映射为两个子查询,即
<select/*+FULL*/s_acctbal,s_suppkey from supplier> (2),和
<select/*+index(partsupp_sk)*/count(*)from partsupp whereps_suppkey>0> (3)
在一个实施例中,执行计划生成模块214不会将哈希连接(hash join)查询/步骤分裂为单独的独立查询,而是将其它与它的两个表(“supplier”(“供应商”),“partsupp_sk”)保持完整,并将它传递到查询分类模块216。
查询分类模块216基于运算参数将每个子查询分类为至少一个类型的扫描。扫描类型的实例可包括但不限于全表扫描、主索引扫描、快速扫描索引和非唯一索引扫描。在一个方面中,每个子查询可被分类以确定对应于每个子查询的输入输出(IO)访问时间和对应于每个子查询的运算时间。在一个实施例中,查询分类模块216基于影响从磁盘、操作系统高速缓存或数据库高速缓存检索的数据的IO访问时间的数据访问模式对每个子查询进行分类。为了确定对应于每个子查询的IO访问时间,时间确定模块218基于分类在模拟数据库226执行每个子查询。应注意,IO访问时间可基于印度专利申请2853/MUM/2013中公开的方法/技术而确定,所述专利申请作为参考而并入。
在从磁盘、操作系统缓存或数据库缓存检索数据时,时间确定模块218可进一步识别影响运算时间且存在于每个子查询中的一个或多个运算符。一个或多个运算符的实例可包括但不限于Aggregate(合计)、Hash(哈希)、Nested(嵌套)、Sort(排序)、Merge and Hash(合并及哈希)。一旦识别了一个或多个运算符,时间确定模块218就在存在于开发环境中的测试数据库227上执行每个子查询以确定对应于每个子查询的运算时间。
在一个实例中,考虑一个查询(其与两个表(T1和T2)相关联)包括“排序”和“合并”运算符。在大数据量'L'上的排序-合并联合执行时间是从两个表T1和T2返回的行的排序时间。如公式1所示,排序时间由(STL T1)和(STL T2)表示,其包括它们的访问时间和排序后的行的合并时间(MTL)。
公式1
在一方面,合并时间相对于合并行数是线性关系的且从小数据量的合并时间(MTS)线性地外推。如果为了排序而从表访问的行数相对于数据量是不变的,那么联合执行时间相对于数据量的增加将是线性的。排序时间是线性的,除非它在磁盘溢出。在磁盘上溢出的运算数量取决于排序的执行,所以与模拟数据库226相关联的成本可估计运算时间而考虑。数据量‘L’的‘排序’运算成本(SCL)被计算为排序运算成本和表访问之间的差值。同样地,这可针对小数据量‘S’而计算。
在另一实例中,考虑一个查询(其与两个表(T1和T2)相关联)包括‘Nested LoopJoin’(嵌套循环联接)运算符。嵌套循环联接的执行时间(NLTL)取决于第一表的T1、访问时间、从第一表(T1)过滤的行数和第二表(T2)的重复索引扫描访问时间,其中第二表(T2)中的访问模式由从第一表(T1)返回的值驱动。对于从T1返回的行数(NRows L T1)以及用于嵌套联接(NoTL)的匹配运算的时间,尺寸‘L’下的执行时间(NLTL)是对应于T1(IOT1 L)和T2(IOT2 L)的IO访问时间的总和。最后一个分量为了统一数据增长可线性外推。在一个方面,执行时间(NLTL)可通过使用如下所述的公式2确定:
公式2
因此,以此方式,时间确定模块218确定每个子查询的IO访问时间和运算时间。
在对应于每个子查询的IO访问时间和对应于每个子查询的运算时间的确定之后,ERT预测模块220预测将要在存在于生产环境中的成品数据库中执行的查询的ERT。ERT预测模块220可基于对应于每个子查询的IO访问时间、对应于每个子查询的运算时间和网络时间预测ERT。在一个方面,网络时间是指通过网络发送在执行每个子查询时检索的数据所需要的时间。在一个实施例中,对应于查询的网络时间可取决于在执行查询时检索的数据量,其中所述数据量表示行数和输出行的大小的乘积(即,行数*输出行的大小)。在一个实施例中,ERT预测模块220通过合计对应于每个子查询的IO访问时间和对应于每个子查询的运算时间以确定预测的子查询执行时间从而聚集预测的子查询执行时间和网络时间以确定ERT来预测ERT。在统计表达式中,ERT预测模块220通过使用下述公式预测ERT:
ERT=网络时间+Σ预测子查询执行时间 (4)
在一个实施例中,基准代理模块222可限定用于在生产环境中执行的查询的性能基准值。性能基准值是基于ERT、预测的子查询执行时间、IO成本、逻辑读取、物理读取、基数和输出大小而限定的。因此,以此方式,上述方法有利于预测要在包含大量数据的成品数据库中执行查询的ERT。
现在参考图4,示出一种根据本公开的实施例的用于预测要在成品数据库中执行的查询的消逝响应时间(ERT)的方法400。方法400可在计算机可执行指令的一般上下文中描述。通常,计算机可执行指令可包括例程、程序、对象、组件、数据结构、过程、模块、功能等,它们执行特定函数或实施特定抽象数据类型。方法400可在其中由通过通信网络链接的远程处理装置执行函数的分布式计算环境中实践。在分布式计算环境中,计算机可执行指令可位于本地和远程计算机存储介质(包括存储器存储装置)中。
描述方法400的顺序不旨在被解释为限制,且任何数量的所述方法框可按任何顺序组合来实施方法400或替代方法。此外,在不偏离本文所描述的本公开的精神和范围的情况下,各个块可从方法400中删除。此外,方法可在任何合适的硬件、软件、固件,或其组合来实施。然而,为了便于解释,在以下描述的实施例中,方法400可被认为如上所述在系统102中实施。
在块402中,可基于通过从开发环境外推统计信息导出的空模式在开发环境中创建模拟数据库。在一个实施方式中,模拟数据库可由db模拟器模块212创建。
在块404中,可基于所述模拟数据库生成查询的查询执行计划。在一个方面,查询执行计划表示要在成品数据库中执行的查询的一个或多个子查询。在一个方面,每个子查询可包括可与运算参数相关联。在一个实施方式中,查询的查询执行计划可由执行计划生成模块214生成。
在块406中,每个子查询可基于运算参数被分类为至少一个类型的扫描。扫描类型的实例可包括但不限于全表扫描、主索引扫描、快速索引扫描和非唯一索引扫描。在一个实施方式中,每个子查询可由查询分类模块216分类。
在块408中,每个子查询可在存在于开发环境中的测试数据库上执行以确定对应于每个子查询的输入输出(IO)访问时间,和对应于每个子查询的运算时间。在一个方面,对应于每个子查询的IO访问时间可基于分类而预测。在一个方面,对应于每个子查询时间的运算符可基于存在于每个子查询中的一个或多个运算符而预测。在一个实施方式中,每个子查询可由时间确定模块218执行。
在块410中,要在成品数据库中执行的查询的ERT可基于对应于每个子查询的IO访问时间、对应于每个子查询的运算时间,和网络时间而预测。在一个方面,网络时间表示通过网络发送在执行每个子查询时检索的数据所需要的时间。在一个实施方式中,要在成品数据库中执行的查询的ERT可由ERT预测模块220预测。
现在参考图5,示出根据本主题的实施例的用于预测ERT的方法410。
在块502中,对应于每个子查询的IO访问时间和运算时间可被合计以确定预测的子查询执行时间。在一个实施方式中,对应于每个子查询的IO访问时间和对应于每个子查询的运算时间可由ERT预测模块220合计。
在块504中,预测的子查询执行时间和网络时间可被合计以确定ERT。在一个实施方式中,预测的子查询执行时间和网络时间可由ERT预测模块220聚集。
虽然用于预测要在成品数据库中执行的查询的消逝响应时间(ERT)的方法和系统的实施方式已经以结构特征和/或方法专用的语言进行了描述,但是应理解,所附权利要求不必限于所描述的具体特征或方法。相反,这些具体特征和方法被公开作为用于预测查询的ERT的实施方式的实例。
上面所讨论的示例实施例可提供某些优点。虽然不需要实践本公开的很多方面,但是这些优点可包括由以下特征提供的那些。
一些实施例可使系统和方法能够预测在包含大量数据的数据库上执行的查询的消逝响应时间(ERT)。
一些实施例可使系统和方法能够估计在不同大小的数据库上进行查询所花费的SQL运算时间。
一些实施例可使系统和方法能够预测涉及不同联接运算符的级联的复杂查询的ERT,其中复杂查询被分类为一个或多个子查询,从而与网络时间一起关于每个子查询而聚集IO访问时间、运算时间。
Claims (11)
1.一种用于预测要在成品数据库中执行的查询的消逝响应时间(ERT)的方法,所述方法包括:
由处理器基于通过从开发环境外推统计信息导出的空模式在所述开发环境中创建对应于成品数据库的模拟数据库;
由所述处理器基于所述模拟数据库生成所述查询的查询执行计划,其中所述查询执行计划表示要在成品数据库中执行的所述查询的一个或多个子查询,并且其中每个子查询与运算参数相关联;
由所述处理器基于所述运算参数将每个子查询分类为至少一种类型的扫描;
由所述处理器在存在于所述开发环境中的测试数据库上执行每个子查询以确定对应于每个子查询的输入输出(IO)访问时间,和对应于每个子查询的运算时间,其中所述输入输出访问时间基于所述分类而预测,并且其中所述运算时间基于存在于每个子查询中的一个或多个运算符而预测;以及
由所述处理器基于所述输入输出访问时间、所述运算时间和网络时间预测要在所述成品数据库中执行的所述查询的所述消逝响应时间,其中所述网络时间表示通过网络发送在执行每个子查询时检索的数据所需要的时间。
2.根据权利要求1所述的方法,其中所述统计信息包括表、块、索引块和数据值。
3.根据权利要求1所述的方法,其中所述运算参数包括表、访问模式、基数、输出大小、成本,和输入输出成本。
4.根据权利要求1所述的方法,其中所述一个或多个运算符包括合计、哈希、嵌套、排序、合并及哈希。
5.根据权利要求1所述的方法,所述扫描类型包括全表扫描、主索引扫描、快速索引扫描和非唯一索引扫描。
6.根据权利要求1所述的方法,其还包括限定用于在生产环境中执行的所述查询的性能基准值,其中所述性能基准值基于所述消逝响应时间、预测的子查询执行时间、输入输出成本、逻辑读取、物理读取、基数和输出大小而限定。
7.根据权利要求1所述的方法,其中所述消逝响应时间通过以下步骤而预测:
合计对应于每个子查询的所述输入输出访问时间和对应于每个子查询的所述运算时间以确定预测的子查询执行时间;以及
合计所述预测的子查询执行时间和所述网络时间以确定所述消逝响应时间。
8.一种用于预测要在成品数据库中执行的查询的消逝响应时间(ERT)的系统,所述系统包括:
处理器;和
存储器,耦接到所述处理器,其中所述处理器执行存储在所述存储器中的多个模块,并且其中所述多个模块包括:
db模拟器模块,用于基于通过从开发环境外推统计信息导出的空模式在所述开发环境中创建对应于成品数据库的模拟数据库;
执行计划生成模块,用于基于所述模拟数据库生成所述查询的查询执行计划,其中所述查询执行计划表示要在成品数据库中执行的所述查询的一个或多个子查询,并且其中每个子查询与运算参数相关联;
查询分类模块,用于基于所述运算参数将每个子查询分类为至少一种类型的扫描;
时间确定模块,用于在存在于所述开发环境中的测试数据库上执行每个子查询以确定对应于每个子查询的输入输出(IO)访问时间和对应于每个子查询的运算时间,其中所述输入输出访问时间基于所述分类而预测,并且其中所述运算时间基于存在于每个子查询中的一个或多个运算符而预测;以及
消逝响应时间预测模块,用于基于所述输入输出访问时间、所述运算时间和网络时间预测要在所述成品数据库中执行的所述查询的所述消逝响应时间,其中所述网络时间表示通过网络发送在执行每个子查询时检索的数据所需要的时间。
9.根据权利要求8所述的系统,其中所述消逝响应时间预测模块通过以下各步骤而预测所述消逝响应时间:
合计对应于每个子查询的所述输入输出访问时间和对应于每个子查询的所述运算时间以确定预测的子查询执行时间;以及
合计所述预测的子查询执行时间和所述网络时间以确定所述消逝响应时间。
10.根据权利要求8所述的系统,还包括基准代理模块,用于限定用于在生产环境中要被执行的所述查询的性能基准值,其中所述性能基准值基于所述消逝响应时间、预测的子查询执行时间、输入输出成本、逻辑读取、物理读取、基数和输出大小而限定。
11.一种包含可在用于预测要在成品数据库中执行的查询的消逝响应时间(ERT)的计算装置中执行的程序的非临时性计算机可读介质,所述程序包括程序代码:
程序代码,用于基于通过从开发环境外推统计信息导出的空模式在所述开发环境中创建对应于成品数据库的模拟数据库;
程序代码,用于基于所述模拟数据库生成所述查询的查询执行计划,其中所述查询执行计划表示要在所述成品数据库中执行的所述查询的一个或多个子查询,并且其中每个子查询与运算参数相关联;
程序代码,用于基于所述运算参数将每个子查询分类为至少一种类型的扫描;
程序代码,用于在存在于所述开发环境中的测试数据库上执行每个子查询以确定对应于每个子查询的输入输出(IO)访问时间和对应于每个子查询的运算时间,其中所述输入输出访问时间基于所述分类而预测,并且其中所述运算时间基于存在于每个子查询中的一个或多个运算符而预测;以及
程序代码,用于基于所述输入输出访问时间、所述运算时间和网络时间预测要在所述成品数据库中执行的所述查询的所述消逝响应时间,其中所述网络时间表示通过网络发送在执行每个子查询时检索的数据所需要的时间。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
IN3600/MUM/2014 | 2014-11-14 | ||
IN3600MU2014 | 2014-11-14 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106033469A CN106033469A (zh) | 2016-10-19 |
CN106033469B true CN106033469B (zh) | 2019-06-14 |
Family
ID=53016298
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510125047.5A Active CN106033469B (zh) | 2014-11-14 | 2015-03-20 | 用于大数据的结构化查询的高效性能预测的方法和系统 |
Country Status (4)
Country | Link |
---|---|
US (1) | US10061802B2 (zh) |
CN (1) | CN106033469B (zh) |
AU (1) | AU2015201361B2 (zh) |
GB (1) | GB2532297A (zh) |
Families Citing this family (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2017002194A1 (ja) * | 2015-06-30 | 2017-01-05 | 株式会社日立製作所 | 管理システム、及び、管理方法 |
WO2018106141A1 (en) * | 2016-12-06 | 2018-06-14 | Huawei Technologies Co., Ltd. | A system and a method for query execution in dbms |
CN108334521B (zh) * | 2017-01-19 | 2022-04-19 | 阿里巴巴集团控股有限公司 | 一种数据库容量预测方法及装置 |
CN109240901B (zh) * | 2018-08-28 | 2023-01-17 | 北京星选科技有限公司 | 性能分析方法、性能分析装置、存储介质和电子设备 |
CN109408515A (zh) * | 2018-11-01 | 2019-03-01 | 郑州云海信息技术有限公司 | 一种索引执行方法与装置 |
CN110399377A (zh) * | 2019-08-30 | 2019-11-01 | 北京东软望海科技有限公司 | Sql的优化方法、装置、电子设备及计算机可读存储介质 |
CN111159223B (zh) * | 2019-12-31 | 2021-09-03 | 武汉大学 | 一种基于结构化嵌入的交互式代码搜索方法及装置 |
CN111522837B (zh) * | 2020-04-23 | 2023-06-23 | 北京百度网讯科技有限公司 | 用于确定深度神经网络的耗时的方法和装置 |
US11741101B2 (en) * | 2020-12-15 | 2023-08-29 | International Business Machines Corporation | Estimating execution time for batch queries |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102027768A (zh) * | 2008-05-19 | 2011-04-20 | 爱立信(中国)通信有限公司 | 处理通信网络中的Enum查询 |
Family Cites Families (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6026391A (en) * | 1997-10-31 | 2000-02-15 | Oracle Corporation | Systems and methods for estimating query response times in a computer system |
US6341281B1 (en) * | 1998-04-14 | 2002-01-22 | Sybase, Inc. | Database system with methods for optimizing performance of correlated subqueries by reusing invariant results of operator tree |
US7370030B2 (en) * | 2004-06-17 | 2008-05-06 | International Business Machines Corporation | Method to provide management of query output |
US7831594B2 (en) * | 2007-04-30 | 2010-11-09 | Hewlett-Packard Development Company, L.L.P. | Estimating the static execution time of a database query |
US7953728B2 (en) * | 2007-05-18 | 2011-05-31 | Oracle International Corp. | Queries with soft time constraints |
US8341178B2 (en) | 2007-09-18 | 2012-12-25 | Oracle International Corporation | SQL performance analyzer |
US8386508B2 (en) | 2008-04-28 | 2013-02-26 | Infosys Technologies Limited | System and method for parallel query evaluation |
US20100082507A1 (en) * | 2008-09-30 | 2010-04-01 | Archana Sulochana Ganapathi | Predicting Performance Of Executing A Query In Isolation In A Database |
US10838957B2 (en) * | 2010-06-17 | 2020-11-17 | Microsoft Technology Licensing, Llc | Slicing relational queries using spool operators |
US8732302B2 (en) * | 2011-07-15 | 2014-05-20 | Inetco Systems Limited | Method and system for monitoring performance of an application system |
US9015188B2 (en) * | 2011-09-28 | 2015-04-21 | Bmc Software, Inc. | Methods and apparatus for monitoring execution of a database query program |
US20130124483A1 (en) * | 2011-11-10 | 2013-05-16 | Treasure Data, Inc. | System and method for operating a big-data platform |
US8874548B2 (en) * | 2012-02-27 | 2014-10-28 | Nec Laboratories America, Inc. | Predicting query execution time |
EP2843560A4 (en) * | 2012-04-27 | 2016-05-18 | Hitachi Ltd | DATABASE MANAGEMENT SYSTEM, COMPUTERS AND DATABASE MANAGEMENT PROCEDURES |
US9477707B2 (en) * | 2013-01-29 | 2016-10-25 | Nec Corporation | System and methods for predicting query execution time for concurrent and dynamic database workloads |
IN2013MU02853A (zh) * | 2013-09-02 | 2015-07-03 | Tata Consultancy Services Ltd |
-
2015
- 2015-03-16 AU AU2015201361A patent/AU2015201361B2/en active Active
- 2015-03-18 GB GB1504536.2A patent/GB2532297A/en not_active Withdrawn
- 2015-03-20 US US14/663,647 patent/US10061802B2/en active Active
- 2015-03-20 CN CN201510125047.5A patent/CN106033469B/zh active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102027768A (zh) * | 2008-05-19 | 2011-04-20 | 爱立信(中国)通信有限公司 | 处理通信网络中的Enum查询 |
Also Published As
Publication number | Publication date |
---|---|
AU2015201361A1 (en) | 2016-06-02 |
GB2532297A (en) | 2016-05-18 |
GB201504536D0 (en) | 2015-04-29 |
US20160140171A1 (en) | 2016-05-19 |
AU2015201361B2 (en) | 2017-03-02 |
US10061802B2 (en) | 2018-08-28 |
CN106033469A (zh) | 2016-10-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106033469B (zh) | 用于大数据的结构化查询的高效性能预测的方法和系统 | |
CN104331477B (zh) | 基于联邦式检索的云平台并发性能测试方法 | |
Liu et al. | Design-level performance prediction of component-based applications | |
US20160112531A1 (en) | Scripting distributed, parallel programs | |
Singhal et al. | Performance assurance model for applications on SPARK platform | |
Malensek et al. | Analytic queries over geospatial time-series data using distributed hash tables | |
Fordham et al. | poems: R package for simulating species' range dynamics using pattern‐oriented validation | |
US20160188431A1 (en) | Predicting performance of a software application over a target system | |
Ramakrishnan et al. | An empirical comparison of predictive models for web page performance | |
Newcomer et al. | NWTOPT–A hyperparameter optimization approach for selection of environmental model solver settings | |
Mikov et al. | Program tools and language for Network simulation and analysis | |
Chai et al. | Modeling distributed platforms from application traces for realistic file transfer simulation | |
Dobre et al. | New trends in large scale distributed systems simulation | |
Li et al. | The extreme counts: modeling the performance uncertainty of cloud resources with extreme value theory | |
Liu et al. | Parallel computation of PDFs on big spatial data using Spark | |
Wang et al. | Turbo: Dynamic and decentralized global analytics via machine learning | |
Zhang et al. | An optimization algorithm applied to the class integration and test order problem | |
Cheng et al. | Globally optimal selection of web composite services based on univariate marginal distribution algorithm | |
WO2021056854A1 (zh) | 互联网新型虚拟数据中心系统及其构造方法 | |
Krishnamurthy | Synthetic workload generation for stress testing session-based systems | |
Huang et al. | A cost-effective data replica placement strategy based on hybrid genetic algorithm for cloud services | |
Smit et al. | Toward a simulation-generated knowledge base of service performance | |
Arkin et al. | Systematic approach for deriving feasible mappings of parallel algorithms to parallel computing platforms | |
Liu | On Resource-Efficiency and Performance Optimization in Big Data Computing and Networking Using Machine Learning | |
Kim et al. | Web-based distributed network analyzer using a system entity structure over a service-oriented architecture |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |