CN104424347A - 在应用开发阶段期间预测查询所经过的响应时间的系统和方法 - Google Patents
在应用开发阶段期间预测查询所经过的响应时间的系统和方法 Download PDFInfo
- Publication number
- CN104424347A CN104424347A CN201310713239.9A CN201310713239A CN104424347A CN 104424347 A CN104424347 A CN 104424347A CN 201310713239 A CN201310713239 A CN 201310713239A CN 104424347 A CN104424347 A CN 104424347A
- Authority
- CN
- China
- Prior art keywords
- database
- inquiry
- scan
- inquiries
- parameter
- 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
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3668—Software testing
- G06F11/3696—Methods or tools to render software testable
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q10/00—Administration; Management
- G06Q10/04—Forecasting or optimisation specially adapted for administrative or management purposes, e.g. linear programming or "cutting stock problem"
Landscapes
- Engineering & Computer Science (AREA)
- Business, Economics & Management (AREA)
- Human Resources & Organizations (AREA)
- Economics (AREA)
- Strategic Management (AREA)
- Theoretical Computer Science (AREA)
- Quality & Reliability (AREA)
- General Physics & Mathematics (AREA)
- Physics & Mathematics (AREA)
- Operations Research (AREA)
- Game Theory and Decision Science (AREA)
- Tourism & Hospitality (AREA)
- Marketing (AREA)
- General Business, Economics & Management (AREA)
- Entrepreneurship & Innovation (AREA)
- Development Economics (AREA)
- Computer Hardware Design (AREA)
- General Engineering & Computer Science (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Debugging And Monitoring (AREA)
Abstract
公开了在应用阶段预测查询所经过的响应时间的系统、方法和计算机程序产品。在数据库上执行查询并且基于查询对数据库的访问模式来对查询进行分类。仿真数据库以获得所仿真的数据库。在分类之后,确定查询对数据库的访问模式以及一个或多个参数。随后通过应用基于该访问模式以及一个或多个参数的分类专用技术,计算在所仿真的数据库上的查询输入访问时间以确定查询所经过的响应时间。
Description
技术领域
概括而言,本发明涉及预测查询所经过的响应时间的系统和方法。更具体而言,该系统和方法涉及在应用开发阶段预测查询的磁盘访问响应时间的系统和方法。
背景技术
在数据库应用开发环境中,在应用开发阶段,重要因素是当测试应用时的查询检索时间。在开发该应用之后,测试该应用以检查在各种数据库上所有必要的结果。查询的执行和查询的响应时间很大程度上取决于数据库大小。数据库大小不如说是影响查询响应时间的相当最重要的因素之一。此外,随着不断增长的数据库大小,极大地影响了查询响应时间。因此,对于大的数据库来说,预测并且检查查询所经过的响应时间是很重要的。数据库大小可能严重地影响应用的性能。
市场上可以买到各种负载生成工具,以对应不同大小的数据库提供关于在应用开发阶段期间查询所经过的响应时间的解决方案。最常遵循的方法使用数据库的一部分来测试应用。通常,资源相关联的问题也影响测试过程。需要强大的存储服务器来存储用于测试所需要的巨大数量的数据和记录。由于这些巨大的记录,数据加载也是通常所面对的问题之一。
因此,提供一种可用于在不消耗额外的资源并且在较少的时间中完成测试的解决方案变得很重要。
发明内容
提供该概要以介绍与在应用开发阶段预测查询所经过的响应时间的系统和方法有关的方案并且在下面的详细描述中进一步描述这些方案。该概要不旨在识别所要求主题的基本特征页不旨在用于确定或者限制所要求主题的范围。
公开了一种在应用开发阶段期间预测查询所经过的响应时间的系统。该系统包括处理器和耦合到该处理器的存储器。该处理器能够执行存储器中所存储的多个模块。多个模块包括:查询执行模块,被配置为在数据库上执行查询;仿真模块,被配置为仿真数据库以获得所仿真的数据库;分类模块,被配置为基于查询对数据库的访问模式来对查询进行分类;以及参数确定模块,被配置为确定关于小数据库的访问模式以及一个或多个参数。访问模式和参数对数据库的大小是敏感的。这些模块还包括计算模块,该计算模块被配置为通过使用基于访问模式和一个或多个参数的分类专用技术来计算在所仿真的数据库上对于查询的输入输出访问时间并且通过使用不同大小的数据库的输入输出访问时间来确定对于所仿真的数据库的查询所经过的响应时间。
公开了一种在应用开发阶段期间预测查询所经过的响应时间的方法。该方法包括:在数据库上执行查询;仿真数据库以获得所仿真的数据库;基于查询对数据库的访问模式来对所执行的查询进行分类,并且确定关于该大小的数据库的访问模式以及一个或多个参数。访问模式和参数对数据库的大小是敏感的。该方法还包括:通过使用基于访问模式和一个或多个参数的分类专用技术来计算在所仿真的数据库上对于查询的输入输出访问时间并且通过使用不同大小的数据库的输入输出访问时间来确定对于所仿真的数据库的查询所经过的响应时间。其中,由处理器完成该执行、该分类、该确定访问模式以及一个或多个参数,该仿真、该计算和该确定所经过的响应时间。
公开了一种计算机程序产品,该计算机程序产品具有实现在其上用于在应用开发阶段期间预测查询所经过的响应时间的计算机程序。该计算机程序产品包括:用于在小数据库上执行查询的程序代码;用于仿真数据库以获得所仿真的数据库的程序代码;用于基于查询对数据库的访问模式来对所执行的查询进行分类的程序代码;以及用于确定关于小数据库的访问模式以及一个或多个参数的程序代码,其中,访问模式和参数对数据库的大小是敏感的。计算机程序产品还包括:用于通过使用基于访问模式和一个或多个参数的分类专用技术来计算在所仿真的数据库上对于查询的输入输出访问时间的程序代码和用于通过使用不同大小的数据库的输入输出访问时间来确定对于所仿真的数据库的查询所经过的响应时间的程序代码。
附图说明
参照附图描述详细描述。在附图中,附图标记的最左边数字识别附图标记首次出现的附图。相同的数字在附图这始终指代相似的特征和组件。
图1示出根据本发明的一个实施例的系统的网络实现。
图2示出根据本发明的一个实施例的系统中存在的各种模块。
图3示出根据本发明的一个实施例的用于预测查询所经过的响应时间的步进式方法。
图4示出根据本发明的示例性实施例的全表扫描查询的所经过的响应时间。
图5示出根据本发明的示例性实施例的快速索引扫描查询和主索引扫描查询的所经过的响应时间。
图6示出根据本发明的示例性实施例的非唯一索引扫描查询的所经过的响应时间。
具体实施方式
公开了在应用开发阶段预测查询所经过的响应时间的系统、方法和计算机程序产品。首先执行查询并且仿真数据库。随后基于查询对数据库的访问模式来对查询进行分类。在对查询进行分类之后,确定查询对数据库的访问模式以及一个或多个参数。访问模数和参数对数据库的大小和查询类型是敏感的并且关于不断增长的数据库大小影响查询检索大小。对于所仿真的数据库,通过应用基于访问模式和一个或多个参数上的分类访问技术,计算输入输出访问时间,以获得所仿真的数据库来稍后对于所仿真的数据库确定查询所经过的响应时间。
虽然用于预测在应用开发阶段期间查询所经过的响应时间的所述系统和方法的方案可以被实现在任意数量的不了这些实施例。
现在参照图1,该图示出根据本主题的实施例用于预测所经过的响应时间的系统102的网络实现100。在一个实施例中,系统102通过仿真生产数据库,提供对于生产数据库的查询所经过的响应时间的预测。通过使用小的数据库,确定各种统计参数如查询对数据库的访问模式和一个或多个参数。随后使用访问模式和参数来仿真生产数据库以计算查询响应时间。
虽然考虑系统102被实现作为服务器上的应用来解释本主题,但是可以理解的是,系统102还可以被实现为各种计算系统,例如,膝上型计算机、台式计算机、笔记本、工作站、大型计算机、服务器、网络服务器等。应当理解的是,多个用户可以通过在下文中被统称为用户104的一个或多个用户装置104-1、104-2…104-N或者位于用户装置104上的应用来访问系统102。用户装置104的示例可以包括但不限于便携式计算机、个人数字助理、手持式装置和工作站。用户装置104通过网络106可通信地耦合到系统102。
在一个实现中,网络106可以是无线网络、有线网络或以上各项组合。网络106可以实现为不同类型网络之一,例如,企业内部网、局域网(LAN)、广域网(WAN)、互联网等。网络106可以是专用网络或者共享网络。共享网络表示使用各种各样的协议例如超文本传输协议(HTTP)、传输控制协议/互联网协议(TCP/IP)、无线应用协议(WAP)等来彼此通信的不同类型网络的联合。此外,网络106可以包括各种各样的网络装置,包括路由器、网桥、服务器、计算装置、存储装置等。
现在参照图2,该图示出根据本主题的实施例的系统102。在一个实施例中,系统102可以包括输入/输出(I/O)接口204、存储器206和至少一个处理器202。该至少一个处理器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可以包括查询执行模块212、仿真模块214、分类模块216、参数确定模块218和计算模块220以及其它模块219。其它模块219可以包括用于补充系统102的应用和功能的程序或者编码指令。
除了其它之外,数据210还用作用于存储由模块208中的一个或多个模块所处理、所接收、所生成的数据的储存库。数据210(数据库引擎)还可以包括数据库222、(实际创建的)生产数据库224、小数据库226和其它数据130。其它数据130可以包括由于其它模块218中的一个或多个模块的执行所生成的数据。
根据一个实施例,在数据库222服务器上主控系统102以避免由于在网络服务器处的查询处理时间所导致的在查询结果中可能引入的时间延迟。
首先借助于查询执行模块212在小数据库226上执行查询。在该小数据库226上执行查询的目的在于收集数据库统计(小数据库226),从而可以仿真生产数据库224。
数据库服务器如甲骨文(oracle)具有两个用于执行SQL查询-SQL客户端的进程,以发布查询来得到结果,并且查询服务器以解析查询,从磁盘获取数据,处理数据并且将该数据发送回到客户端。查询所经过的响应时间应当包括在处理中在查询服务器处所花费的时间和将数据输出到客户端的时间。
在小数据库上使用微基准工具观察到,对于全表扫描查询,查询服务器访问来自该表的数据作为按顺序的系统读取呼叫的序列,每个呼叫的大小为数据库块的大小的倍数。在每个系统读取之后,查询服务器处理数据,该处理包括应用过滤条件并且为SQL客户端准备该数据。数据准备包括格式化数据并且把该数据分成多个分组,每个分组的大小与在客户端处限定的接收缓存大小相同。查询服务器向客户端发送准备好的数据包并且随后在发送下一个包之前等待来自客户端的确认。还观察到的是,在发送第一个数据包之前,在查询服务器处花费明显大量的时间,我们将该时间称为“数据准备时间”,然而,在接收到确认后立即发送后续数据包。所有包都被发送给客户端为止才发出下一个系统读取呼叫。
在使用索引(假设二叉树(Btree))来访问数据的情况中,查询处理器穿过索引树直到该查询处理器查到叶块。查询处理器使用叶节点中的数据指针来访问所有合格的叶块和所匹配的数据块。仅准备来自所访问的数据块的所需要的行并且随后将其发送给客户端。在该情况中,包括索引树,叶结点和数据结点的系统读取呼叫或者硬盘访问中的每一个具有数据库块大小。因此,对于索引扫描查询的ERT(所经过的响应时间)为以下的总和:
1.穿过索引树直到叶节点所花费的时间
2.访问合格的叶节点的时间
3.访问所有匹配的数据块所花费的时间
4.在每个系统读取呼叫之后的数据准备中所花费的总时间
5.发送所有数据包所花费的总时间
6.在等待接收来自数据包所发送的客户端的每个确认中所花费的总时间,该时间可以包括在接收到确认之前由客户端在格式化数据中所花费的时间。
在不同的数据访问模式中交错第二步骤和第三步骤。叶节点块访问本质上是按顺序的,但是这些访问与数据块访问交错。对于主索引扫描,按顺序地访问每个叶节点的数据块,然后对于非主索引扫描,可以存在连续访问的多个片段。
在由查询执行模块212执行查询之后,由仿真模块214仿真数据库。使用分类模块216对查询进行分类。该分类基于查询对数据库的访问模式。通过查询如全表扫描、快速索引全扫描、使用主键的索引范围扫描或使用非唯一的键索引的索引范围扫描,访问表中的数据。取决于如何在查询执行期间访问数据和返回给用户的数据数量来对查询进行分类。
关于表的查询分别在全表扫描的情况下按顺序地读取所有行或者在索引扫描的情况下使用索引读取选择的行;这些分别被称为全表扫描查询和索引扫描查询。在索引扫描查询中,选择取决于(在子句的情况中)在查询中给定的过滤条件。索引扫描可以是关于正在使用的主键或次键的索引,该次键可以是数据库中的其它表的主键;前者称为主索引扫描查询并且后者称为非唯一的索引扫描查询。在查询所需要的数据存在于索引中的索引扫描的特殊情况中,甚至可以对于全表输出仅读取索引块;这称为快速全索引扫描。在全表扫描查询的情况中,读取所有的表块,并且(如果存在过滤器则)仅在访问之后应用过滤器以得到所选择的行/数据,然而,在索引扫描中,仅读取所选择的数据块。在表扫描全部或者索引之后,在将所获取的数据发送给用户之前,使用汇总函数(如果有的话)来处理所获取的数据。随着数据库大小的增加,上述提及的查询的特征影响查询的响应时间。在访问了表之后,可能包括输出数据的大小的影响。
因此,分类模块216仅基于访问模式对查询进行分类。
查询分类的类型被解释为如下:
全表扫描查询:不考虑过滤条件的选择,完全地访问表的所有块。查询可以返回单行作为总输出或者返回来自表的大部分行。
主索引扫描查询:仅使用关于表的主键的索引访问满足过滤条件的块。查询可以返回单行作为总输出,或者返回来自表的大部分行,同时使用主键s_suppkey上的索引来访问数据。
非唯一索引扫描查询:仅使用关于表的非唯一(次)键的索引来访问满足过滤条件的块,该非唯一(次)键可以为另一个表的主键。查询可以返回单行作为总输出,或者返回来自表的大部分行,同时使用非唯一的键s_nationkey上的索引来访问数据。
快速索引扫描:在索引扫描的情况中,可以输出来自索引块或者数据块的数据。在前一个情况中,查询不需要访问表块并且仅输出来自索引块的数据。
例如,全表索引查询的总输出是Select sum(s_acctbal)from supplier并且全表扫描查询的全输出是Select*from supplier。然而,快速索引扫描查询的总输出是Select/*+index(pk_supp)*/sum(s_suppkey)from supplier wheres_suppkey>3并且索引扫描查询的全输出是Select/*+index(pk_supp)*/s_suppkeyfrom supplier where s_suppkey>3。
因此,从上述的示例中,观察到的是,一个访问模式与另一个访问模式区别在于一次所读取的数据大小以及一个接一个地读取数据块的相对地址。这称为数据访问模式。
系统102随后确定关于小数据库的访问模式以及一个或多个参数。访问模式、参数和查询对数据库的大小和由查询执行的数据访问的类型是敏感的,该数据访问类型取决于由专利所分类的查询类型。
在全表扫描中,所读取的数据大小从64K变化到1MB,然而,在索引扫描中,(如果数据块大小为8K则)所读取的数据大小总是8k。
在全表扫描中,相对地址本质上是连续的。然而,在索引扫描中,总是一个叶节点(块)跟着一系列数据块一起读取并且其后重复该序列。叶块是彼此接续的,并且数据块相对地址取决于索引扫描的类型。
存储器还存储参数确定模块218,该参数确定模块218被配置为关于小大小数据库226确定查询对数据库的访问模式以及一个或多个参数。我们把该访问模式和参数称为数据库统计数据。
基于访问模式和一个或多个参数,应用分类专用技术以确定所仿真的数据库的输入输出访问时间。
用于全表扫描查询的分类专用技术:
在用于全表扫描查询的分类技术中,将查询、表结构、表映射大小S(或者行的数量&行的平均大小)作为输入馈入。计算模块220随后处理该输入以计算全表扫描查询的输入输出访问时间。
下面解释用于表扫描查询的分类技术的逐步的细节:
1.创建大小为几兆字节的小的数据库。在数据库上执行查询并且运行微基准工具以计算:
a.从查询服务器发送给客户端的数据包的大小。
b.数据准备中所花费的平均时间。
c.用于发送一个数据包的平均时间。
d.接收用于每个数据包的确认的平均等待时间。
2.生成大小为表大小的倍数的文件,(以使表大小和DB文件大小匹配)。
3.把开始地址作为接近文件的开始的随机数值。将数据访问模式生成为一系列的系统读取呼叫,该系统读取呼叫包括要读取的数据的大小和所读取的数据来自的位置。在全表扫描中,从先前读取呼叫接续的位置读取系统读取呼叫。
4.首先,在开始地址处生成8K大小的系统读取。如果文件大小超过484K(4*64*56K),则系统读取跟着最多4对大小为64K和56K的系统读取呼叫。将文件大小减少484K,即S=S-484K。如果S大于1M,随后保持生成1M大小的系统读取并且S减少1M,直到S减少至小于1M为止。生成剩余大小S的最后的系统读取呼叫。
5.计算大(大约1MB或者更多)的系统读取呼叫的数量。
6.将用于每个系统读取呼叫的数据包的数量计算为读取呼叫的大小除以(如从1.a中获得的)数据分组的大小。
如果如同在利用汇总函数的查询中一样,输出是单行的,则在没有任何来自客户端的中间发送和接收的前提下一个接一个地执行读取呼叫。使用汇总函数一起处理所有行并且在网络上将该行作为单行输出发送回到客户端。因此,网络时间是可以忽略的。类似地,关于全表的过滤条件还减少了客户端和查询服务器之间的数据通信,因此导致较少的网络时间。在该情况中,可以将数据包的总数量计算为线性地外插的输出数据大小除以数据包的大小。
7.系统读取呼叫穿插由1.b、1.c和1.d所限定的总延迟。
8.在步骤2中的所生成的文件上进行上述所生成的数据访问模式。计算模块220随后计算与该查询的IO访问时间对应的总花费时间。
用于索引扫描查询的分类专用技术:
在使用索引(假设二叉树)访问数据的情况中,查询处理器穿过检索树直到该查询处理器查到匹配过滤条件(例如,key=val)的叶块为止,其中,键(key)是索引已被创建的表的列。数据库服务器在访问每个叶节点之后使用叶节点中的数据指针来逐个访问所有合格的叶块并且对数据块进行匹配。仅读取、处理并且准备向客户端发送来自所访问的数据块的所需要的行。在该情况中,包括索引树,叶结点和数据结点的每个系统读取呼叫或者盘访问具有与数据库块相同的大小。因此,索引扫描查询的输入输出访问时间是以下的总和:
1.穿过索引树直到叶节点为止所花费的时间
2.访问合格的叶节点的时间
3.访问所有匹配的数据块所花费的时间
4.输出数据的网络传输时间
来自步骤3的时间贡献取决于行在数据库中是如何被放置的。以键值的递增次序来存储索引树的叶节点,所以按顺序地访问叶块。此外,叶块是索引结构的一部分,它们的访问不取决于行在数据块中被如何布置。
对于具有统一数据分布并且没有删除的数据库来说,如果由关于键的主索引进行寻址,则数据库将具有数据块的按顺序的访问。对于非唯一索引扫描,可以建模对数据块的访问作为连续访问的片段。对于快速索引扫描,仅存在叶节点的按顺序访问而没有数据块被读取。
可以使用叶节点的数量、索引树的高度和数据块节点的数量来生成数据访问模式;可从数据库获得这些统计数据。然而,对于大的映射来说,数据库不存在,所以从物理上存在的小数据库收集这些统数据计并且线性地外插这些统计数据以匹配映射的大小。在索引扫描中,读取的数据的大小为数据库块大小。因此,不同的索引扫描在每个系统读取的位置生成中不同。可以与对于全表扫描所讨论相同的方式计算网络IO访问时间。
用于快速索引扫描查询的分类专用技术:
仅访问叶节点并且仅从索引结构输出数据。
在用于快速索引扫描查询的分类专用技术中,将查询(其中,key<val,key<val and key=val)、表结构、表大小或者(行的数量&行的平均大小)作为输入馈入。计算模块220处理该输入以计算输入输出访问时间。
分类专用技术的细节是:
1.创建几兆字节的小的数据库。使用DB专用工具来得到下面的数据库统计数据——数据库块大小(Bsize)、所索引列的最小值(min)、该列的最大值(max)、每个键的叶节点的数量(Lsize)和树的高度(Hsize)。对于映射的数据库大小S,通过线性地外插所获得的统计来获得这些数据库统计数据。
2.将所匹配的键值的数量(MKV)计算为:
a.对于key=val为1
b.对于key<val为(val-min)
c.对于key>val为(max-val)
3.总合格叶节点,QL=Lsize*MKV
4.生成按照偏移的大小和开始地址顺序的数据访问模式——所有偏移的大小为Bsize。首先生成Hsize+1个系统读取,其中,每个系统读取从随机地址开始。接着是QL-1个按顺序的访问。
5.计算如全表扫描AFTS.6中所讨论的网络参数并且以从AFTS.1中获得的总延迟穿插系统读取呼叫。
6.进行上述所生成的数据访问模式。使用计算模块220来计算与查询的输入输出访问时间对应的总花费时间。
用于主索引扫描查询的分类专用技术:
在主索引扫描的情况中,具有过滤条件(例如,key=val,或key<val)的查询总是访问恒定数量的叶块和数据块而不管表的大小,因此,仅仅块访问的总数量将与索引树的高度的增加一起增加,因此,该查询的IO访问时间对于表大小来说是不变的。然而,对于具有过滤条件(例如,key>val)的查询,所访问的数据块的数量将与数据大小的增加一起增加。此外,将按照数据块的主键并且因此块地址的递增顺序来访问数据块,即不重复数据块访问。
在用于主索引扫描查询的分类专用技术中,将查询(其中,key<val,key<valand key=val)、表模式、表大小或者(行的数量&行的平均大小)作为输入馈入。计算模块220随后处理该输入以计算输入输出访问时间。
用于主索引扫描查询的分类专用技术的细节是:
1.创建大小为几兆字节的小的数据库。使用DB专用工具来得到下面的数据库统计数据——数据库块大小(Bsize)、所索引列的最小值(min)、该列的最大值(max)、每个键数据块的数量(Dsize)、每个键的叶节点的数量(Lsize)和树的高度(Hsize)。我们通过线性地外插所获得的统计来得到映射的数据库大小S的这些数据库统计。
2.对于映射的数据库大小S,通过线性地外插从步骤1所获得的统计来获得这些数据库统计。
3.将所匹配键值(MKV)的数量计算为:
a.对于key=val为1
b.对于key<val为(val-min)
c.对于key>val为(max-val)
4.总合格叶节点,QL=Lsize*MKV
5.生成按照偏移的大小和开始地址顺序的数据访问模式——所有偏移的大小为Bsize。首先从生成Hsize+1个系统读取,其中,每个系统读取从随机地址开始。接着是QL-1个按顺序访问,其中,在两个叶节点访问之间穿插Dsize个按顺序访问。叶块和数据块的开始块地址是不同的,所以他们的地址彼此是随机的。
6.计算如全表扫描AFTS.6中所讨论的网络参数并且系统读取呼叫穿插从AFTS.1中获得的总延迟。
7.进行上述所生成的数据访问模式。计算模块220随后计算与查询的输入输出访问时间对应的总花费时间。
用于非唯一索引扫描查询的分类专用技术:
在使用关于非唯一键的索引访问表的情况中,数据块访问的顺序取决于表中的数据布置分布。如果在表的行中以均匀随机分布放置列的值,则使用非唯一索引来访问与所索引的列值匹配的行集合可能导致访问该表的所有块。非唯一列的值分布的递增的确定性顺序与主键一样对映射到数据访问模式。
在非唯一键索引扫描的情况中,具有过滤条件(例如,key=val)的查询可以访问多个叶块和多个数据块,但是将以数据块的地址的递增顺序对数据块进行访问。然而,对于具有过滤条件(例如,key>val,或key<val)的查询,可以多次访问数据块,这是因为由于列值的均匀随机分布而导致数据块所有键值的记录的概率相等。这导致重复访问数据块。取决于缓存大小和所访问的表大小所重复的访问可以直接地得到来自数据库缓存、OS缓存后者存储装置的服务。
对于表大小<数据块缓存,所重复的访问从数据库缓存得到服务。
对于数据库缓存<表大小<OS缓存,所重复的访问从OS缓存得到服务。
对于表大小>OS缓存,所重复的访问从硬盘得到服务。
在用于非唯一索引扫描查询的分类专用技术中,将查询(具有key<val,key<val and key=val)、表模式、表大小或者(行的数量&行的平均大小)作为输入馈入。计算模块220随后处理该输入以计算输入输出访问时间。
分类专用技术的细节是:
1.创建大小为几兆字节的小的数据库。使用DB专用工具来得到下面的数据库统计数据数据——数据库块大小(Bsize)、每个叶节点数据指针的数量(Dptr)、所索引列的最小值(min)、该列的最大值(max)、每个键的叶节点的数量(Lsize)和树的高度(Hsize)。我们通过线性地外插所获得的统计来得到所映射的数据库大小S的这些数据库统计数据。
2.所映射的数据库大小S通过线性地外插从步骤1所获得的统计来获得这些数据库统计。
3.将所匹配的键值的数量(MKV)计算为:
a.对于key=val为1
b.对于key<val为(val-min)
c.对于key>val为(max-val)
4.总合格叶节点,QL=Lsize*MKV
5.生成按照偏移的大小和开始地址顺序的数据访问模式——所有偏移的大小为Bsize。首先生成Hsize+1个系统读取,其中,每个系统读取从随机地址开始。接着是QL-1个按顺序的访问,两个叶节点访问之间穿插Dptr个按顺序的访问。叶块和数据块的开始块地址是不同的,所以他们的地址彼此是随机的。对于表大小>数据块缓存,对于MKV迭代次数重复该步骤,然而,保持与在第一次迭代中所生成的相同的块地址集合。
6.计算如全表扫描AFTS.6中所讨论的网络参数并且系统读取呼叫穿插从AFTS.1中获得的总延迟。
7.进行上述所生成的数据访问模式。计算模块220随后计算与查询的输入输出访问时间对应的总花费时间。
计算模块220随后通过使用输入输出访问时间来确定查询所经过的响应时间(ERT)。
由计算模块220所估计的用全表扫描查询和索引扫描查询的关于大小“S”的查询ERT(所经过的响应时间)是以下的总和:
1.解析时间。
2.由所有系统读取呼叫所花费的总时间。
3.系统读取呼叫的总数量*平均数据准备时间。
4.数据分组的总数量*发送该分组所花费的平均时间。
5.数据分组的总数量*接收来自客户端的确认的平均等待时间。
通过示例性实施例,让我们考虑专用DB服务器、Oracle11g以解释系统102的功能。使用具有4GB RAM的因特尔四核服务器。使用基于TPC-H[11]基准的dbgen效用来生成数据库模式和数据。在supplier表上获得五个综合查询的结果,如下面所列出的。基于这些查询对表的访问模式来制定这些查询。选择CPU计算时间关于数据库大小是线性的查询,从而可以通过将线性地所外插的CPU时间与IO(输入输出)访问时间相加来计算ERT。
在TCP-H模式上的综合查询:
全表扫描查询1:select*from supplier(full output)
全表扫描查询2:select sum(s_acctbal)from supplier(aggregated output)
快速索引扫描查询3:select/*+index(supplier pk_supplier)*/s_suppkey fromsupplier
主索引扫描查询4:select/*+index(supplier pk_supplier)*/sum(s_acctbal)fromsupplier where s_suppkey>10;非唯一索引扫描查询5:select/*+index(supplier sup_nk)*/sum(s_acctbal)from supplier where s_suppkey=3
数据库包括分别具有关于字段s_nationkey和s_suppkey的索引supp_nk和pk_supplier的表supplier。请注意pk_supplier是关于主键s_suppkey创建的主索引并且supp_nk是关于外键s_nationkey创建的非唯一索引。创建大小为1.39M的小数据库并且在该数据库上执行以上所列出的所有查询。微基准工具(例如,strace和tkprof)用于收集(如以上所讨论的)算法AFTS、AFIS、APIS和ANUIIS所需要的数据。
对于查询1和查询2,将算法AFTS应用在大小为5.6M、21M、87M和175M的数据库的文件上,以通过增加CPU时间的线性外插的分量来得到它们的估计IO访问时间以及因此经过响应时间。还应当观察到的是,大小为175M的查询执行导致95%的较大的读取。因此,175M是用于使用大小为354M、708M、1416M和2832M的数据库的线性外插法来预测查询1和查询2的IO访问时间并且因此ERT的小尺寸。在图4中给出了查询1和查询2的结果。
对于索引扫描查询-查询3、查询4和查询5,使用线性外插法来仿真大小为5.6M、21M、87M和175M的数据库以得到算法AFIS、APIS和ANUIS所需要的数据库统计数据。查询3将算法AFIS应用在大小为5.6M、21M、87M和175M的数据库上。查询4将算法APIS应用在大小为5.6M、21M、87M和175M的数据库上。使用来自表大小175M的线性外插法,预测用于更大得多的DB大小(从354M到2832M)的查询ERT。算法ANUIS用于查询5以计算IO访问时间并且因此ERT。在图5和图6中给出了查询3、查询4和查询5的结果。
方法300的描述顺序不意图被理解为限制,并且可以以任何顺序组合任何数量的所述方法块以实现方法300或替代方法300。此外,可以在不脱离本文所描述的主题的精神和范围的情况下从方法300中删除个别的模块。此外,该方法可以实现为任何合适的硬件、软件、固件或者以上各项组合。然而,为了便于理解,在下面所描述的实施例中,方法300可以被认为被实现在上述系统102中。
在块302处,在数据库上执行查询。
在块304处,仿真数据库。
在块306处,基于查询对数据库的访问模式来对数据库进行分类。
在块308处,确定访问模式以及一个或多个参数。
在块310处,通过应用分类专用技术,计算所仿真的数据库上的查询输入输出访问时间以进一步确定查询所经过的响应时间。
书面说明书描述本文的主题以使本领域的任何普通技术人员能够实现并且使用本发明的实施例。主题实施例的范围由权利要求进行限定,并且可以包括本领域的那些普通技术人员想到的其它修改。如果这些其它修改具有与本权利要求的字面语言无区别的相似的元素或者如果这些其它修改包括与本权利要求的字面语言无实质性不同的等同元素,则这些其它修改旨在本权利要求的范围之内。
Claims (14)
1.一种在应用开发阶段期间预测查询所经过的响应时间的系统,所述系统包括:
处理器;以及
耦合到所述处理器的存储器,其中,所述处理器能够执行在所述存储器中所存储的多个模块,并且其中所述多个模块包括:
查询执行模块,被配置为在数据库上执行所述查询;
仿真模块,被配置为仿真所述数据库以获得所仿真的数据库;
分类模块,被配置为基于所述查询对所述数据库的访问模式来对所述查询进行分类;
参数确定模块,被配置为确定关于所述数据库的访问模式以及一个或多个参数,其中所述访问模式、所述参数和所述查询对所述数据库的大小是敏感的;
以及
计算模块,被配置为:
通过使用基于所述访问模式以及所述一个或多个参数的分类专用技术,计算在所仿真的数据库上的所述查询的输入输出访问时间;以及
通过使用不同大小的所述数据库的所述输入输出访问时间,确定所仿真的数据库的所述查询所经过的响应时间。
2.根据权利要求1所述的系统,其中,在小数据库上执行所述查询。
3.根据权利要求1所述的系统,其中,所述分类模块将所述查询分类成全表扫描查询和索引扫描查询中的至少一个,并且其中,所述索引扫描查询还包括快速索引扫描查询、主索引扫描查询和非唯一索引扫描查询。
4.根据权利要求3所述的系统,其中,所述一个或多个参数包括用于所述全表扫描查询、所述快速索引扫描查询、所述主索引扫描查询和所述非唯一索引扫描查询中的每一个的表结构和表投影大小。
5.根据权利要求1所述的系统,其中,所述仿真模块被配置为外插所述访问模式和所述一个或多个参数以获得所仿真的数据库。
6.根据权利要求1所述的系统,其中,所述计算模块将所述输入输出访问时间与线性地外插的CPU时间相加以确定所述查询所经过的响应时间。
7.根据权利要求1所述的系统,其中,所仿真的数据库还包括所仿真的大数据库。
8.一种用于在应用开发阶段期间预测查询所经过的响应时间的方法,所述方法包括:
在数据库上执行所述查询;
仿真所述数据库以获得所仿真的数据库;
基于所述查询对所述数据库的访问模式来对这样执行的查询进行分类;
确定关于所述数据库的访问模式以及一个或多个参数,其中所述访问模式、所述参数和所述查询对所述数据库的大小是敏感的;
通过使用基于所述访问模式和所述一个或多个参数的分类专用技术,计算在所仿真的数据库上的查询的输入输出访问时间;以及
通过使用不同大小的数据库的所述输入输出访问时间,确定所述查询所经过的响应时间;
其中,由处理器完成所述执行、所述分类、所述确定访问模式以及一个或多个参数、所述仿真、所述计算和所述确定所经过的响应时间。
9.根据权利要求8所述的方法,其中,将所述查询分类成全表扫描查询和索引扫描查询中的至少一个,并且其中,所述索引扫描查询还包括快速索引扫描查询、主索引扫描查询和非唯一索引扫描查询。
10.根据权利要求9所述的方法,其中,这样确定的参数还包括用于所述全表扫描查询、所述快速索引扫描查询、所述主索引扫描查询和所述非唯一索引扫描查询中的每一个的表结构和表投影大小。
11.根据权利要求8所述的方法,其中,外插所述访问模式和所述一个或多个参数以获得所仿真的数据库。
12.根据权利要求8所述的方法,其中,将所述输入输出访问时间与线性地外插的CPU时间相加以确定所述查询所经过的响应时间。
13.根据权利要求8所述的方法,其中,所述输入输出访问时间还包括所述查询的存储访问时间和网络传输时间。
14.一种计算机程序产品,所述计算机程序产品具有实现在其上用于在应用开发阶段期间预测查询所经过的响应时间的计算机程序,所述计算机程序产品包括:
用于在数据库上执行所述查询的程序代码;
用于仿真所述数据库以获得所仿真的数据库的程序代码;
用于基于所述查询对所述数据库的访问模式来对所执行的查询进行分类的程序代码;
用于确定关于所述数据库的访问模式以及一个或多个参数的程序代码,其中,所述访问模式和所述参数对所述数据库的大小是敏感的;以及
用于通过使用基于所述访问模式和所述一个或多个参数的分类专用技术来计算在所仿真的数据库上的所述查询的输入输出访问时间的程序代码;以及
用于通过使用不同大小的数据库的所述输入输出访问时间来确定所述查询所经过的响应时间的程序代码。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
IN2853MU2013 IN2013MU02853A (zh) | 2013-09-02 | 2013-09-02 | |
IN2853/MUM/2013 | 2013-09-02 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN104424347A true CN104424347A (zh) | 2015-03-18 |
Family
ID=49726594
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310713239.9A Pending CN104424347A (zh) | 2013-09-02 | 2013-12-20 | 在应用开发阶段期间预测查询所经过的响应时间的系统和方法 |
Country Status (6)
Country | Link |
---|---|
US (1) | US9117030B2 (zh) |
EP (1) | EP2843599A1 (zh) |
JP (1) | JP6110785B2 (zh) |
CN (1) | CN104424347A (zh) |
IN (1) | IN2013MU02853A (zh) |
SG (1) | SG2013091160A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114179366A (zh) * | 2021-12-13 | 2022-03-15 | 南京铖联激光科技有限公司 | 基于3d打印的零件打印时间评估系统及评估方法 |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9535704B2 (en) * | 2014-02-03 | 2017-01-03 | University Of Rochester | System and method to quantify digital data sharing in a multi-threaded execution |
AU2015201361B2 (en) * | 2014-11-14 | 2017-03-02 | Tata Consultancy Services Limited | A method and system for efficient performance prediction of structured query for big data |
WO2017079978A1 (en) | 2015-11-13 | 2017-05-18 | Ebay Inc. | Distributed database job data skew detection |
US10025698B2 (en) | 2015-11-16 | 2018-07-17 | Cognizant Technology Solutions India Pvt. Ltd | System and method for efficiently predicting testing schedule and stability of applications |
US20190042573A1 (en) * | 2017-08-01 | 2019-02-07 | Salesforce.Com, Inc. | Rules-based synchronous query processing for large datasets in an on-demand environment |
US11314741B2 (en) | 2017-08-01 | 2022-04-26 | Salesforce.Com, Inc. | Metadata-based statistics-oriented processing of queries in an on-demand environment |
US11068483B2 (en) | 2017-08-01 | 2021-07-20 | Salesforce.Com, Inc. | Dynamic selection and application of rules for processing of queries in an on-demand environment |
CN110019218B (zh) * | 2017-12-08 | 2023-08-25 | 阿里巴巴集团控股有限公司 | 数据存储与查询方法及设备 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7155428B1 (en) * | 2000-06-30 | 2006-12-26 | Ncr Corp. | Emulating a database system |
US7246111B1 (en) * | 2000-06-30 | 2007-07-17 | Ncr Corporation | Capturing database system information |
CN101419625A (zh) * | 2008-12-02 | 2009-04-29 | 西安交通大学 | 一种基于最小可查询模式的Deep Web自适应爬取方法 |
CN102436494A (zh) * | 2011-11-11 | 2012-05-02 | 中国工商银行股份有限公司 | 基于实践检验的执行计划优化的装置及方法 |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5758144A (en) * | 1994-06-24 | 1998-05-26 | International Business Machines Corporation | Database execution cost and system performance estimator |
IT1275529B (it) * | 1995-07-14 | 1997-08-07 | Alcatel Italia | Emulatore per un database relazionale in linguaggio sql |
US6799175B2 (en) | 2001-04-23 | 2004-09-28 | International Business Machines Corporation | System and method of determining and searching for patterns in a large database |
US6795817B2 (en) | 2001-05-31 | 2004-09-21 | Oracle International Corporation | Method and system for improving response time of a query for a partitioned database object |
JP5088668B2 (ja) * | 2007-03-08 | 2012-12-05 | 日本電気株式会社 | 計算機負荷見積システム、計算機負荷見積方法、計算機負荷見積プログラム |
US7895192B2 (en) | 2007-07-19 | 2011-02-22 | Hewlett-Packard Development Company, L.P. | Estimating the loaded execution runtime of a database query |
US9189523B2 (en) | 2008-07-05 | 2015-11-17 | Hewlett-Packard Development Company, L.P. | Predicting performance of multiple queries executing in a database |
US8244715B2 (en) | 2009-04-09 | 2012-08-14 | Paraccel, Inc. | System and method for processing database queries |
WO2011145116A2 (en) * | 2010-05-18 | 2011-11-24 | Tata Consultancy Services Limited | System and method for sql performance assurance services |
-
2013
- 2013-09-02 IN IN2853MU2013 patent/IN2013MU02853A/en unknown
- 2013-12-05 SG SG2013091160A patent/SG2013091160A/en unknown
- 2013-12-06 EP EP13196083.3A patent/EP2843599A1/en not_active Ceased
- 2013-12-13 US US14/105,305 patent/US9117030B2/en active Active
- 2013-12-20 JP JP2013264633A patent/JP6110785B2/ja active Active
- 2013-12-20 CN CN201310713239.9A patent/CN104424347A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7155428B1 (en) * | 2000-06-30 | 2006-12-26 | Ncr Corp. | Emulating a database system |
US7246111B1 (en) * | 2000-06-30 | 2007-07-17 | Ncr Corporation | Capturing database system information |
CN101419625A (zh) * | 2008-12-02 | 2009-04-29 | 西安交通大学 | 一种基于最小可查询模式的Deep Web自适应爬取方法 |
CN102436494A (zh) * | 2011-11-11 | 2012-05-02 | 中国工商银行股份有限公司 | 基于实践检验的执行计划优化的装置及方法 |
Non-Patent Citations (2)
Title |
---|
REKHA SINGHAL 等: "Extrapolation of SQL Query Elapsed Response Time at Application Development Stage", 《INDIA CONFERENCE (INDICON), 2012 ANNUAL IEEE》 * |
宫生文 等: "《Oracle PL/SQL完全自学手册(第2版)》", 28 February 2013 * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114179366A (zh) * | 2021-12-13 | 2022-03-15 | 南京铖联激光科技有限公司 | 基于3d打印的零件打印时间评估系统及评估方法 |
CN114179366B (zh) * | 2021-12-13 | 2024-02-06 | 南京铖联激光科技有限公司 | 基于3d打印的零件打印时间评估系统及评估方法 |
Also Published As
Publication number | Publication date |
---|---|
IN2013MU02853A (zh) | 2015-07-03 |
SG2013091160A (en) | 2015-04-29 |
JP6110785B2 (ja) | 2017-04-05 |
US20150067646A1 (en) | 2015-03-05 |
JP2015049891A (ja) | 2015-03-16 |
US9117030B2 (en) | 2015-08-25 |
EP2843599A1 (en) | 2015-03-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104424347A (zh) | 在应用开发阶段期间预测查询所经过的响应时间的系统和方法 | |
TWI706665B (zh) | 基於區塊鏈的資料核對系統、方法、計算設備及儲存媒體 | |
US8504556B1 (en) | System and method for diminishing workload imbalance across multiple database systems | |
Di et al. | Characterizing and modeling cloud applications/jobs on a Google data center | |
CN111753016B (zh) | 数据处理方法、装置、系统及计算机可读存储介质 | |
CN109582452B (zh) | 一种容器调度方法、调度装置及电子设备 | |
US7860700B2 (en) | Hardware verification batch computing farm simulator | |
CN106326012B (zh) | web应用集群缓存利用方法和系统 | |
CN109614227A (zh) | 任务资源调配方法、装置、电子设备及计算机可读介质 | |
CN106033469A (zh) | 用于大数据的结构化查询的高效性能预测的方法和系统 | |
AU2021244852B2 (en) | Offloading statistics collection | |
US20160259825A1 (en) | Discovery of potential problematic execution plans in a bind-sensitive query statement | |
CN108090000A (zh) | 一种获取cpu寄存器信息的方法及系统 | |
CN109739433A (zh) | 数据处理的方法及终端设备 | |
CN114095567A (zh) | 数据访问请求的处理方法、装置、计算机设备及介质 | |
CN104866402A (zh) | 一种测试服务器的方法及装置 | |
CN113886162A (zh) | 一种计算设备性能测试方法、计算设备及存储介质 | |
US20130013283A1 (en) | Distributed multi-pass microarchitecture simulation | |
Gupta et al. | Long range dependence in cloud servers: a statistical analysis based on google workload trace | |
US11526427B2 (en) | Software code testing system | |
CN111988156B (zh) | 创建网络仿真平台的方法和网络仿真方法及相应装置 | |
RU2532714C2 (ru) | Способ получения данных при оценке ресурсов сети и устройство для осуществления способа | |
CN103024091B (zh) | 获得网络客户端真实物理地址的方法及装置 | |
Badawy et al. | Optimizing thin client caches for mobile cloud computing: Design space exploration using genetic algorithms | |
CN112929237A (zh) | 网站细分流量的分析方法、系统、设备和介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
WD01 | Invention patent application deemed withdrawn after publication | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20150318 |