用于大数据的结构化查询的高效性能预测的方法和系统的制作方法

文档序号:10665803阅读:360来源:国知局
用于大数据的结构化查询的高效性能预测的方法和系统的制作方法
【专利摘要】本发明涉及一种用于大数据的结构化查询的高效性能预测的方法和系统。所述系统包括:db模拟器模块,其用于基于通过从开发环境外推统计信息导出的空模式创建模拟数据库。执行计划生成模块,其用于生成查询的查询执行计划。查询分类模块,其用于基于运算参数将每个子查询分类为全表扫描、主索引扫描、快速索引扫描和非唯一索引扫描中的至少一个。时间确定模块,其用于在模拟数据库上执行每个子查询以确定输入输出(IO)访问时间和运算时间。ERT预测模块,其用于基于所述IO访问时间、所述运算时间和网络时间预测要在所述成品数据库中执行的查询的所述ERT。
【专利说明】
用于大数据的结构化查询的高效性能预测的方法和系统
[0001] 优先权信息
[0002] 本专利申请要求于2014年11月14日提交的编号为3600/MUM/2014的印度专利 申请的优先权。
技术领域
[0003] 本文中所描述的本公开总体涉及一种数据库管理系统,并且更具体地,涉及用于 预测要在成品数据库中执行的查询的消逝响应时间(elapsed response time)的数据库管 理系统。
【背景技术】
[0004] 由于大量数据,大数据范式已经引发了应用程序的具有影响力的性能。应用程序 的性能已经基于各种参数被评估。便于评估性能的一个关键参数是查询的响应时间。对于 结构化数据库应用程序而言,查询的响应时间是针对部署在成品数据库中的大量数据的子 集而测试的。普遍认为,有时这样的数据库应用程序中的响应时间可能会随数据量在一定 时间内的增加而非线性地增加。响应时间的非线性增加可能反过来会导致对提供给应用程 序的用户的性能保证构成侵害。
[0005] 响应时间的该非线性增加是因为被用于测试查询的常规测试技术而产生。常规测 试技术包括对大量数据的子集的查询进行测试。因此,为了使用常规测试技术来评估性能, 应用程序可能需要各种资源,诸如能够存储数万亿条记录的存储服务器。但是用于评估性 能的这种资源部署可能会导致产生巨大成本。此外,即使资源被布置,针对大量数据的查询 的测试可能增加评估时间,且因此延迟应用程序的部署。
[0006] 为了克服上述的缺陷,已经在本领域提出了基于各种统计机器学习的模型,其使 用过去的查询创建学习基础,且然后基于最邻近方法预测查询的响应时间。但这样的模型 不能随数据量在一定时间内的线性增加而精确预测查询的响应时间。

【发明内容】

[0007] 在描述本发明的系统和方法之前,应理解,本申请不限于所描述的特定系统和方 法,因为除了在本公开中明确示出之外,可以存在多个可能的实施例。也应理解,在说明书 中使用的术语仅是为了描述具体形式或实施例的目的,并且不旨在限制本申请的范围。本

【发明内容】
被提供以介绍与用于预测要在成品数据库中执行的查询的消逝响应时间(ERT) 的系统和方法相关的概念且所述概念将在下面的【具体实施方式】中被进一步描述。本发明内 容不旨在标识:本公开的必要特征不旨在用于确定或限制本公开的范围。
[0008] 在一个实施方式中,公开了一种用于预测要在成品数据库中执行的查询的消逝响 应时间(ERT)的系统。在一个方面,系统可包括处理器和耦接到处理器的存储器。处理器 可执行存在于存储器中的多个模块。多个模块还可包括db模拟器模块、执行计划生成模 块、时间确定模块和ERT预测模块。db模拟器模块可基于通过从开发环境外推统计信息导 出的空模式在开发环境中创建对应于成品数据库的模拟数据库。执行计划生成模块可基于 模拟数据库生成查询的查询执行计划。查询执行计划表示要在成品数据库中执行的所述查 询的一个或多个子查询。在一个方面,每个子查询可与运算参数相关联。查询分类模块可 基于运算参数将每个子查询分类为至少一种类型的扫描。扫描类型的实例可包括但不限于 全表扫描、主索引扫描、快速索引扫描和非唯一索引扫描。时间确定模块可在存在于开发环 境中的测试数据库上执行每个子查询以确定对应于每个子查询的输入输出(10)访问时间 和对应于每个子查询的运算时间。10访问时间可基于分类而预测。运算时间可基于存在 于每个子查询中的一个或多个运算符而预测。ERT预测模块可基于对应于每个子查询的10 访问时间、对应于每个子查询的运算时间和网络时间预测要在成品数据库中执行的查询的 ERT。网络时间表示在通过网络发送执行每个子查询时检索的数据所需要的时间。
[0009] 在另一实施方式中,一种用于预测要在成品数据库中执行的查询的消逝响应时间 (ERT)的方法,为了预测要在成品数据库中执行的ERT,首先基于通过从开发环境外推统计 信息导出的空模式在开发环境中创建对应于成品数据库的模拟数据库。在创建模拟数据库 后,可基于模拟数据库生成查询的查询执行计划。查询执行计划表示要在成品数据库中执 行的查询的一个或多个子查询。在一个方面,每个子查询可与运算参数相关联。在生成查 询执行计划之后,可基于运算参数将每个子查询分类为至少一种类型的扫描。扫描类型的 实例可包括但不限于全表扫描、主索引扫描、快速索引扫描和非唯一索引扫描。在每个子查 询的分类之后,可在存在于开发环境中的测试数据库上执行每个子查询以确定对应于每个 子查询的输入输出(10)访问时间和对应于每个子查询的运算时间。在一个方面,10访问 时间可基于分类而预测。在一个方面,运算时间可基于存在于每个子查询中的一个或多个 运算符而预测。一旦10访问时间和运算时间被确定,要在成品数据库中执行的查询的ERT 可基于对应于每个子查询的10访问时间、对应于每个子查询的运算时间和网络时间而预 测。网络时间表示通过网络发送在执行每个子查询时检索的数据所需要的时间。在一个方 面,用于预测要在成品数据库中执行的查询的ERT的上述方法可通过使用存储在存储器中 的编程指令的处理器进行。
[0010] 在另一实施方式中,一种包含可在用于预测要在成品数据库中执行的查询的消逝 响应时间(ERT)的计算装置中可执行的程序的非临时性计算机可读介质。程序包括用于基 于通过从开发环境外推统计信息导出的空模式在开发环境中创建对应于成品数据库的模 拟数据库的程序代码。程序还可包括程序代码,其用于基于模拟数据库生成查询的查询执 行计划。查询执行计划表示要在成品数据库中执行的查询的一个或多个子查询。在一个方 面,每个子查询可与运算参数相关联。程序还可包括程序代码,其用于基于运算参数将每个 子查询分类为至少一种类型的扫描。扫描类型的实例可包括但不限于全表扫描、主索引扫 描、快速索引扫描和非唯一索引扫描。程序还可包括程序代码,其用于在存在于开发环境中 的测试数据库上执行每个子查询以确定对应于每个子查询的输入输出(10)访问时间,和 对应于每个子查询的运算时间。10访问时间可基于分类而预测。运算时间可基于存在于每 个子查询中的一个或多个运算符而预测。程序还可包括程序代码,其用于基于对应于每个 子查询的10访问时间、对应于每个子查询运算时间和网络时间预测要在成品数据库中执 行的查询的ERT。网络时间表示通过网络发送在执行每个子查询时检索的数据所需要的时 间。
【附图说明】
[0011] 当结合附图阅读时,可更好地理解实施例的前述详细描述。为了说明本公开的目 的,在本公开的本文档示例结构示出;然而,本公开不限于本文档和附图中公开的具体方法 和设备。
[0012] 参照附图描述【具体实施方式】。在图中,参考号最左边的数字标识附图标记首次出 现的附图。相同数字用于在整个附图中来指相同特征和组件。
[0013] 图1示出根据本公开的实施例的用于预测要在成品数据库中执行的查询的消逝 响应时间(ERT)的系统的网络实施方式。
[0014] 图2示出根据本公开的实施例的系统,。
[0015] 图3示出根据本公开的实施例的实例。
[0016] 图4和图5示出根据本公开的实施例的用于预测要在成品数据库中执行的查询的 ERT的方法。
【具体实施方式】
[0017] 现在将详细地讨论示出其所有功能的本公开的一些实施例。词"包括"、"具有"、 "包含"和"包括",及其其它形式旨在指在意思上是等同的且其开放度结束于以下情况:这 些词中的任何一个后面跟随的一个项目或多个项目不意味着是该项目或这些项目的穷举 列表,或意味着被限于仅列出的一个或多个项目的穷举列表。还必须注意,如本文和所附权 利要求书中所使用的,除非上下文另有明确说明,否则单数形式"a"、"an"、和"the"包括复 数引用。虽然类似或等同于本文描述的那些的任何系统和方法可在实践中或在本公开的实 施例的测试中使用,但是现在描述示例性系统和方法。所公开的实施例仅仅是本公开的示 例,其可以各种形式来体现。
[0018] 实施例的各种修改将对于本领域技术人员是显而易见的且这里的一般原理可应 用于其它实施例。然而,本领域的普通技术人员将容易认识到,本公开不旨在被限于所说明 的实施例,而是应被赋予与本文中所描述的原理和特征一致的最广范围。
[0019] 描述用于预测要在成品数据库中执行的查询的消逝响应时间(ERT)的系统和方 法。为了预测ERT,本公开解释基于空模式在开发环境中创建模拟数据库的直觉方法。在一 个方面,模拟数据库可通过从开发环境外推统计信息来创建。系统通过线性外推对数据量 敏感的统计信息来模拟大型数据库。统计信息的实例可包括表、块、索引块和数据值。应理 解,ERT可取决于数据库的性能、数据库的相对大小、数据量、对数据库运算符(诸如join) 有效的存储器的相对大小、查询设计、数据库模式和查询执行计划。在所有的上述各项中, 查询执行计划、数据库的相对大小,和存储器的相对大小可随数据量的增加而改变。
[0020] -旦创建了模拟数据库,系统还基于模拟数据库生成查询的查询执行计划。查询 执行计划表示要在成品数据库中执行的查询的一个或多个子查询。每个子查询与运算参数 相关联。运算参数的实例可包括但不限于表、访问的模式、基数、输出大小、成本(cost),和 输入输出成本(Input Output cost)。在生成查询执行计划之后,每个子查询可基于运算参 数而分类。一方面,每个子查询可被分类为至少一种类型的扫描。扫描类型的实例可包括 但不限于,基于表中的数据访问模式的全表扫描、快速索引扫描、主索引扫描和非唯一索引 扫描。此外,每个子查询可在存在于开发环境中的测试数据库上执行以确定对应于每个子 查询的输入输出(10)访问时间,和对应于每个子查询的运算时间。
[0021] 由于系统可能具有一些网络延迟时间以通过网络发送在执行每个子查询时检索 的数据,所以查询的ERT可基于对应于每个子查询的10访问时间、对应于每个子查询的运 算时间和网络时间的总和而预测。一方面,查询的ERT可通过合计对应于每个子查询的10 访问时间和对应于每个子查询的运算时间以便确定预测的子查询执行时间和预测的子查 询执行时间和网络时间从而确定ERT来进行预测。预测ERT的公式是
[0022]
CD
[0023] 在一个方面,系统还限定用于要在成品数据库中执行的查询的性能基准值。性能 基准值可基于ERT、预测的子查询执行时间、输入输出成本、逻辑读取、物理读取、基数,和输 出大小而限定。
[0024] 虽然所述的用于预测要在成品数据库中执行的查询的消逝响应时间(ERT)的系 统和方法可在任何数量的不同的计算系统、环境,和/或配置中实施,但是在下面的示例性 系统的上下文中描述这些实施例。
[0025] 现在参考图1,公开了用于预测要在成品数据库中执行的查询的消逝响应时间 (ERT)的系统(以下称为系统102)的网络实施方式100。在一个实施例中,系统102基于 通过从开发环境外推统计信息导出的空模式而在开发环境中创建模拟数据库。在创建模拟 数据库后,系统102基于模拟数据库生成查询的查询执行计划。在生成查询执行计划之后, 系统102基于运算参数将每个子查询分类为全表扫描、主索引扫描、快速索引扫描和非唯 一索引扫描中的至少一个。在每个子查询的分类之后,系统102在存在于开发环境中的测 试数据库上执行每个子查询以确定对应于每个子查询的输入输出(10)访问时间和运算时 间。一旦10访问时间和运算时间被确定,系统102基于10访问时间、运算时间,和网络时 间预测要在成品数据库执行的查询的ERT。网络时间表示通过网络传输在执行每个子查询 时检索的数据所需要的时间。
[0026] 虽然本公开是考虑到系统102在服务器上实施而解释的,但是应理解,系统102还 可在各种计算系统(诸如膝上型计算机、台式计算机,笔记本计算机、工作站、大型计算机、 服务器、网络服务器,基于云的计算环境)中实施。应理解,系统102可通过一个或多个用 户装置104-1、104-2. .. 104-N(以下统称为用户装置104),或驻留在用户装置104中的应用 程序由多个用户访问。在一个实施方式中,系统102可包括基于云的计算环境,其中用户可 操作被配置为执行位于远程的应用程序的个人计算系统。用户装置104的实例可包括但不 限于便携式计算机、个人数字助理、手持式装置和工作站。用户装置104通过网络106通信 地耦接至系统102。
[0027] 在一个实施方式中,网络106可以是无线网络、有线网络或其组合。网络106可作 为不同类型的网络(诸如内联网、局域网(LAN)、广域网(WAN)、互联网,等)中的一个来实 施。网络106可以是专用网络或共享网络。共享网络代表使用各种协议(例如超文本传输 协议(HTTP)、传输控制协议/互联网协议(TCP/IP)、无线应用协议(WAP)等)的不同类型 的网络的联合以彼此通信。网络106还可包括各种网络装置,包括路由器、网桥、服务器、计 算装置、存储装置等。
[0028] 现在参考图2,示出根据本公开的实施例的系统102。在一个实施例中,系统102可 包括至少一个处理器202、输入/输出(I/O)接口 204和存储器206。至少一个处理器202 可被实施为一个或多个微处理器、微型计算机、微控制器、数字信号处理器、中央处理单元、 状态机、逻辑电路系统,和/或基于运算指令操纵信号的任何装置。其它功能中,至少一个 处理器202被配置为读取并执行存储在存储器206中的计算机可读指令。
[0029] I/O接口 204可包括各种软件和硬件接口,例如,网络接口、图形用户界面等。I/O 接口 204可允许系统102直接或通过客户端装置104与用户进行交互。此外,I/O接口 204 可使系统102与其它计算装置(诸如网络服务器和外部数据服务器(未示出))进行通信。 I/O接口 204可促进各种网络和协议类型(包括有线网络(例如,LAN、电缆等)和无线网 络(诸如WLAN、蜂窝,或卫星))内的多个通信。I/O接口 204可包括用于将多个装置彼此 连接或连接到另一个服务器的一个或多个端口。
[0030] 存储器206可包括本领域中已知的任何计算机可读介质和计算机程序产品,例 如,易失性存储器(诸如静态随机存取存储器(SRAM)和动态随机存取存储器(DRAM)),和/ 或非易失性存储器(诸如只读存储器(R0M)、可擦可编程R0M、闪速存储器、硬盘、光盘和磁 带)。存储器206可包括模块208和数据210。
[0031] 模块208包括例程、程序、对象、组件、数据结构等,它们执行特定任务或实施特定 抽象数据类型。在一个实施方式中,模块208可包括db模拟器模块212、执行计划生成模块 214、查询分类模块216、时间确定模块218、ERT预测模块220、基准代理模块222和其它模 块224。其它模块224可包括补充系统102的应用和功能的程序或代码指令。这里描述的 模块208可作为可以在系统102的基于云计算环境中执行的软件模块而实施。
[0032] 数据210 (除其它事项外)充当用于存储由一个或多个模块208处理、接收以及生 成的数据的知识库。数据210还可包括模拟数据库226、测试数据库227,和其它数据228。 其它数据228可包括在其它模块224中的一个或多个模块的执行的结果而产生的数据。
[0033] 在一个实施方式中,首先,用户可使用客户端装置104以经由I/O接口 204来访问 系统102。用户可使用I/O接口 204注册他们本身以便使用系统102。一方面,用户可访问 系统102的I/O接口 204以便预测要在成品数据库中执行的查询的消逝响应时间(ERT)。 为了预测ERT,系统102可采用多个模块,即db模拟器模块212、执行计划生成模块214、查 询分类模块216、时间确定模块218、ERT预测模块220和基准代理模块222。下面描述多个 模块的详细工作。
[0034] 进一步参考图2,应理解,成品数据库可包括大量的数据。由于成品数据库包含大 量的数据,所以预测查询的ERT可能是在包含大量数据的成品数据库上执行查询时消耗的 时间。可以进一步理解,ERT可取决于数据库的性能、数据库的相对大小、和对数据库运算符 (诸如join)有效的存储器的相对大小、查询设计、数据库模式和查询执行计划。在所有的 上述各项中,查询执行计划、数据库的相对的存储器大小,和对数据库运算符有效的相对的 存储器大小对数据库产生主要影响且进一步随数据量的增加而改变。为了预测ERT,db模 拟器模块212基于空模式在开发环境中创建模拟数据库226。模拟数据库226内容较少但 有利于基于统计信息生成查询执行计划。一方面,空模式可通过从开发环境外推统计信息 来导出。统计信息的实例可包括但不限于表、块、索引块和数据值。
[0035] 在模拟数据库226的生成之后,执行计划生成模块214基于模拟数据库生成查询 的查询执行计划。执行计划生成模块214使用模拟数据库的表、索引和列来生成查询执行 计划。查询执行计划表示要在成品数据库中执行的查询的一个或多个子查询,其中一个或 多个子查询被整理以导出查询。每个子查询在背景中被独立地执行以从成品数据库中检索 各自数据。一方面,每个子查询可与运算参数相关联。运算参数可包括但不限于表、访问的 模式、基数、输出大小,和输入输出成本。
[0036] 在一个实施例中,基数表示执行查询时返回的行数。基数进一步从一个步骤到其 后继步骤确定输出的大小。在一个实例中,考虑查询如下:
[0037] Select sum(s_acctbal)from supplier where s_suppkey = ps_suppkey··· (1)
[0038] 由执行计划生成模块214生成的用于上述查询(1)的执行计划示于图3。基于 查询(1),可理解,查询(1)被推导以便从两个表(即"供应商"和"part SUpp_sk")检索 "account balance"的"sum"(账户结余的和),其中存在于"供应商"("supplier")中的 "suppkey"(主键)等同于存在于"partsupp_sk"的"ps_suppkey"(外键)。为了生成查 询执行计划,执行计划生成模块214确定存在于查询(1)中的一个或多个子查询。存在于 查询(1)中的一个或多个子查询与选择指令、检索的数据(sum)的合计,和与表相关联的嵌 套循环(即"supplier"( "供应商")中的全表扫描和"partsupp_sk"中的索引范围扫描) 相关联。
[0039] 在一个实施例中,在生成查询执行计划之后,执行计划生成模块214将每个子查 询映射到等同的独立查询。一方面,在子查询的执行满足至少一个以下提到的参数时,每个 映射后的子查询视为等同于查询的相应子查询。
[0040] a)执行时间相同。
[0041 ] b)相同数量的输出行。
[0042] c)相同数量的逻辑读取和物理读取。
[0043] 例如,考虑与前述相同的查询(1)。查询(1)可被映射为两个子查询,即
[0044] <select/*+FULL*/s_acctbal,s_suppkey from supplier〉 (2),和
[0045] <select/*+index(partsupp_sk)*/count(*)from partsupp whereps_suppkey>0> (3)
[0046] 在一个实施例中,执行计划生成模块214不会将哈希连接(hash join)查询/步骤 分裂为单独的独立查询,而是将其它与它的两个表("supplier、"供应商"),"partsUpp_ sk")保持完整,并将它传递到查询分类模块216。
[0047] 查询分类模块216基于运算参数将每个子查询分类为至少一个类型的扫描。扫描 类型的实例可包括但不限于全表扫描、主索引扫描、快速扫描索引和非唯一索引扫描。在一 个方面中,每个子查询可被分类以确定对应于每个子查询的输入输出(10)访问时间和对 应于每个子查询的运算时间。在一个实施例中,查询分类模块216基于影响从磁盘、操作系 统高速缓存或数据库高速缓存检索的数据的10访问时间的数据访问模式对每个子查询进 行分类。为了确定对应于每个子查询的10访问时间,时间确定模块218基于分类在模拟数 据库226执行每个子查询。应注意,10访问时间可基于印度专利申请2853/MUM/2013中公 开的方法/技术而确定,所述专利申请作为参考而并入。
[0048] 在从磁盘、操作系统缓存或数据库缓存检索数据时,时间确定模块218可进一步 识别影响运算时间且存在于每个子查询中的一个或多个运算符。一个或多个运算符的实 例可包括但不限于Aggregate (合计)、Hash (哈希)、Nested (嵌套)、Sort (排序)、Merge and Hash(合并及哈希)。一旦识别了一个或多个运算符,时间确定模块218就在存在于开 发环境中的测试数据库227上执行每个子查询以确定对应于每个子查询的运算时间。
[0049] 在一个实例中,考虑一个查询(其与两个表(1\和T 2)相关联)包括"排序"和"合 并"运算符。在大数据量'L'上的排序-合并联合执行时间是从两个表TJPT 2返回的行的 排序时间。如公式1所示,排序时间由(SIYT1)和(SIYT2)表示,其包括它们的访问时间和排 序后的行的合#时_
[0050]
[0051] 在一方面,合并时间相对于合并行数是线性关系的且从小数据量的合并时间 (MTS)线性地外推。如果为了排序而从表访问的行数相对于数据量是不变的,那么联合执行 时间相对于数据量的增加将是线性的。排序时间是线性的,除非它在磁盘溢出。在磁盘上 溢出的运算数量取决于排序的执行,所以与模拟数据库226相关联的成本可估计运算时间 而考虑。数据量'L'的'排序'运算成本(SCJ被计算为排序运算成本和表访问之间的差 值。同样地,这可针对小数据量'S'而计算。
[0052] 在另一实例中,考虑一个查询(其与两个表(TJPT2)相关联)包括'Nested Loop Join'(嵌套循环联接)运算符。嵌套循环联接的执行时间(NLTJ取决于第一表的1\、访问 时间、从第一表0\)过滤的行数和第二表(T 2)的重复索引扫描访问时间,其中第二表(T2) 中的访问模式由从第一表0\)返回的值驱动。对于从1\返回的行数(N R_以及用于 嵌套联接(Νο?Υ)的匹配运算的时间,尺寸'L'下的执行时间(NLIY)是对应于1\(10')和 Τ2(Ι0τ\)的10访问时间的总和。最后一个分量为了统一数据增长可线性外推。在一个方 面,执行时间(NLTJ可通过使用如下所述的公式2确定:
[0053]
[0054] 因此,以此方式,时间确定模块218确定每个子查询的10访问时间和运算时间。
[0055] 在对应于每个子查询的10访问时间和对应于每个子查询的运算时间的确定之 后,ERT预测模块220预测将要在存在于生产环境中的成品数据库中执行的查询的ERT。ERT 预测模块220可基于对应于每个子查询的10访问时间、对应于每个子查询的运算时间和网 络时间预测ERT。在一个方面,网络时间是指通过网络发送在执行每个子查询时检索的数 据所需要的时间。在一个实施例中,对应于查询的网络时间可取决于在执行查询时检索的 数据量,其中所述数据量表示行数和输出行的大小的乘积(即,行数*输出行的大小)。在 一个实施例中,ERT预测模块220通过合计对应于每个子查询的10访问时间和对应于每个 子查询的运算时间以确定预测的子查询执行时间从而聚集预测的子查询执行时间和网络 时间以确定ERT来预测ERT。在统计表达式中,ERT预测模块220通过使用下述公式预测 ERT :
[0056] ERT =网络时间+Σ预测子查询执行时间(4)
[0057] 在一个实施例中,基准代理模块222可限定用于在生产环境中执行的查询的性能 基准值。性能基准值是基于ERT、预测的子查询执行时间、10成本、逻辑读取、物理读取、基 数和输出大小而限定的。因此,以此方式,上述方法有利于预测要在包含大量数据的成品数 据库中执行查询的ERT。
[0058] 现在参考图4,示出一种根据本公开的实施例的用于预测要在成品数据库中执行 的查询的消逝响应时间(ERT)的方法400。方法400可在计算机可执行指令的一般上下文 中描述。通常,计算机可执行指令可包括例程、程序、对象、组件、数据结构、过程、模块、功能 等,它们执行特定函数或实施特定抽象数据类型。方法400可在其中由通过通信网络链接 的远程处理装置执行函数的分布式计算环境中实践。在分布式计算环境中,计算机可执行 指令可位于本地和远程计算机存储介质(包括存储器存储装置)中。
[0059] 描述方法400的顺序不旨在被解释为限制,且任何数量的所述方法框可按任何顺 序组合来实施方法400或替代方法。此外,在不偏离本文所描述的本公开的精神和范围的 情况下,各个块可从方法400中删除。此外,方法可在任何合适的硬件、软件、固件,或其组 合来实施。然而,为了便于解释,在以下描述的实施例中,方法400可被认为如上所述在系 统102中实施。
[0060] 在块402中,可基于通过从开发环境外推统计信息导出的空模式在开发环境中创 建模拟数据库。在一个实施方式中,模拟数据库可由db模拟器模块212创建。
[0061 ] 在块404中,可基于所述模拟数据库生成查询的查询执行计划。在一个方面,查询 执行计划表示要在成品数据库中执行的查询的一个或多个子查询。在一个方面,每个子查 询可包括可与运算参数相关联。在一个实施方式中,查询的查询执行计划可由执行计划生 成模块214生成。
[0062] 在块406中,每个子查询可基于运算参数被分类为至少一个类型的扫描。扫描类 型的实例可包括但不限于全表扫描、主索引扫描、快速索引扫描和非唯一索引扫描。在一个 实施方式中,每个子查询可由查询分类模块216分类。
[0063] 在块408中,每个子查询可在存在于开发环境中的测试数据库上执行以确定对应 于每个子查询的输入输出(10)访问时间,和对应于每个子查询的运算时间。在一个方面, 对应于每个子查询的10访问时间可基于分类而预测。在一个方面,对应于每个子查询时间 的运算符可基于存在于每个子查询中的一个或多个运算符而预测。在一个实施方式中,每 个子查询可由时间确定模块218执行。
[0064] 在块410中,要在成品数据库中执行的查询的ERT可基于对应于每个子查询的10 访问时间、对应于每个子查询的运算时间,和网络时间而预测。在一个方面,网络时间表示 通过网络发送在执行每个子查询时检索的数据所需要的时间。在一个实施方式中,要在成 品数据库中执行的查询的ERT可由ERT预测模块220预测。
[0065] 现在参考图5,示出根据本主题的实施例的用于预测ERT的方法410。
[0066] 在块502中,对应于每个子查询的10访问时间和运算时间可被合计以确定预测的 子查询执行时间。在一个实施方式中,对应于每个子查询的10访问时间和对应于每个子查 询的运算时间可由ERT预测模块220合计。
[0067] 在块504中,预测的子查询执行时间和网络时间可被合计以确定ERT。在一个实施 方式中,预测的子查询执行时间和网络时间可由ERT预测模块220聚集。
[0068] 虽然用于预测要在成品数据库中执行的查询的消逝响应时间(ERT)的方法和系 统的实施方式已经以结构特征和/或方法专用的语言进行了描述,但是应理解,所附权利 要求不必限于所描述的具体特征或方法。相反,这些具体特征和方法被公开作为用于预测 查询的ERT的实施方式的实例。
[0069] 上面所讨论的示例实施例可提供某些优点。虽然不需要实践本公开的很多方面, 但是这些优点可包括由以下特征提供的那些。
[0070] -些实施例可使系统和方法能够预测在包含大量数据的数据库上执行的查询的 消逝响应时间(ERT)。
[0071] -些实施例可使系统和方法能够估计在不同大小的数据库上进行查询所花费的 SQL运算时间。
[0072] -些实施例可使系统和方法能够预测涉及不同联接运算符的级联的复杂查询的 ERT,其中复杂查询被分类为一个或多个子查询,从而与网络时间一起关于每个子查询而聚 集10访问时间、运算时间。
【主权项】
1. 一种用于预测要在成品数据库中执行的查询的消逝响应时间(ERT)的方法,所述方 法包括: 由处理器基于通过从开发环境外推统计信息导出的空模式在所述开发环境中创建对 应于成品数据库的模拟数据库; 由所述处理器基于所述模拟数据库生成所述查询的查询执行计划,其中所述查询执行 计划表示要在成品数据库中执行的所述查询的一个或多个子查询,并且其中每个子查询与 运算参数相关联; 由所述处理器基于所述运算参数将每个子查询分类为至少一种类型的扫描; 由所述处理器在存在于所述开发环境中的测试数据库上执行每个子查询以确定对应 于每个子查询的输入输出(10)访问时间,和对应于每个子查询的运算时间,其中所述输入 输出访问时间基于所述分类而预测,并且其中所述运算时间基于存在于每个子查询中的一 个或多个运算符而预测;以及 由所述处理器基于所述输入输出访问时间、所述运算时间和网络时间预测要在所述成 品数据库中执行的所述查询的所述消逝响应时间,其中所述网络时间表示通过网络发送在 执行每个子查询时检索的数据所需要的时间。2. 根据权利要求1所述的方法,其中所述统计信息包括表、块、索引块和数据值。3. 根据权利要求1所述的方法,其中所述运算参数包括表、访问模式、基数、输出大小、 成本,和输入输出成本。4. 根据权利要求1所述的方法,其中所述一个或多个运算符包括合计、哈希、嵌套、排 序、合并及哈希。5. 根据权利要求1所述的方法,所述扫描类型包括全表扫描、主索引扫描、快速索引扫 描和非唯一索引扫描。6. 根据权利要求1所述的方法,其还包括限定用于在生产环境中执行的所述查询的性 能基准值,其中所述性能基准值基于所述消逝响应时间、所述预测的子查询执行时间、输入 输出成本、逻辑读取、物理读取、基数和输出大小而限定。7. 根据权利要求1所述的方法,其中所述消逝响应时间通过以下步骤而预测: 合计对应于每个子查询的所述输入输出访问时间和对应于每个子查询的所述运算时 间以确定预测的子查询执行时间;以及 合计所述预测的子查询执行时间和所述网络时间以确定所述消逝响应时间。8. -种用于预测要在成品数据库中执行的查询的消逝响应时间(ERT)的系统,所述系 统包括: 处理器;和 存储器,耦接到所述处理器,其中所述处理器执行存储在所述存储器中的多个模块,并 且其中所述多个模块包括: db模拟器模块,用于基于通过从开发环境外推统计信息导出的空模式在所述开发环境 中创建对应于成品数据库的模拟数据库; 执行计划生成模块,用于基于所述模拟数据库生成所述查询的查询执行计划,其中所 述查询执行计划表示要在成品数据库中执行的所述查询的一个或多个子查询,并且其中每 个子查询与运算参数相关联; 查询分类模块,用于基于所述运算参数将每个子查询分类为至少一种类型的扫描; 时间确定模块,用于在存在于所述开发环境中的测试数据库上执行每个子查询以确定 对应于每个子查询的输入输出(10)访问时间和对应于每个子查询的运算时间,其中所述 输入输出访问时间基于所述分类而预测,并且其中所述运算时间基于存在于每个子查询中 的一个或多个运算符而预测;以及 消逝响应时间预测模块,用于基于所述输入输出访问时间、所述运算时间和网络时间 预测要在所述成品数据库中执行的所述查询的所述消逝响应时间,其中所述网络时间表示 通过网络发送在执行每个子查询时检索的数据所需要的时间。9. 根据权利要求8所述的系统,其中所述消逝响应时间预测模块通过以下各步骤而预 测所述消逝响应时间: 合计对应于每个子查询的所述输入输出访问时间和对应于每个子查询的所述运算时 间以确定预测的子查询执行时间;以及 合计所述预测的子查询执行时间和所述网络时间以确定所述消逝响应时间。10. 根据权利要求8所述的系统,还包括基准代理模块,用于限定用于在生产环境中要 被执行的所述查询的性能基准值,其中所述性能基准值基于所述消逝响应时间、所述预测 的子查询执行时间、输入输出成本、逻辑读取、物理读取、基数和输出大小而限定。11. 一种包含可在用于预测要在成品数据库中执行的查询的消逝响应时间(ERT)的计 算装置中执行的程序的非临时性计算机可读介质,所述程序包括程序代码: 程序代码,用于基于通过从开发环境外推统计信息导出的空模式在所述开发环境中创 建对应于成品数据库的模拟数据库; 程序代码,用于基于所述模拟数据库生成所述查询的查询执行计划,其中所述查询执 行计划表示要在所述成品数据库中执行的所述查询的一个或多个子查询,并且其中每个子 查询与运算参数相关联; 程序代码,用于基于所述运算参数将每个子查询分类为至少一种类型的扫描; 程序代码,用于在存在于所述开发环境中的测试数据库上执行每个子查询以确定对应 于每个子查询的输入输出(10)访问时间和对应于每个子查询的运算时间,其中所述输入 输出访问时间基于所述分类而预测,并且其中所述运算时间基于存在于每个子查询中的一 个或多个运算符而预测;以及 程序代码,用于基于所述输入输出访问时间、所述运算时间和网络时间预测要在所述 成品数据库中执行的所述查询的所述消逝响应时间,其中所述网络时间表示通过网络发送 在执行每个子查询时检索的数据所需要的时间。
【文档编号】G06F17/30GK106033469SQ201510125047
【公开日】2016年10月19日
【申请日】2015年3月20日
【发明人】列哈·辛哈尔
【申请人】塔塔顾问服务有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1