CN104731849B - 应用开发阶段预测高速缓存对查询经过响应时间的影响的系统和方法 - Google Patents

应用开发阶段预测高速缓存对查询经过响应时间的影响的系统和方法 Download PDF

Info

Publication number
CN104731849B
CN104731849B CN201410779176.1A CN201410779176A CN104731849B CN 104731849 B CN104731849 B CN 104731849B CN 201410779176 A CN201410779176 A CN 201410779176A CN 104731849 B CN104731849 B CN 104731849B
Authority
CN
China
Prior art keywords
database
time
data
inquiry
cache miss
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
Application number
CN201410779176.1A
Other languages
English (en)
Other versions
CN104731849A (zh
Inventor
雷哈·辛哈尔
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.)
Tata Consultancy Services Ltd
Original Assignee
Tata Consultancy Services Ltd
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 Tata Consultancy Services Ltd filed Critical Tata Consultancy Services Ltd
Publication of CN104731849A publication Critical patent/CN104731849A/zh
Application granted granted Critical
Publication of CN104731849B publication Critical patent/CN104731849B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

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/245Query processing
    • G06F16/2455Query execution
    • G06F16/24552Database cache management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3409Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment
    • G06F11/3419Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment by assessing time
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3447Performance evaluation by modeling
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/30Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
    • G06F16/35Clustering; Classification
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/957Browsing optimisation, e.g. caching or content distillation
    • G06F16/9577Optimising the visualization of content, e.g. distillation of HTML documents
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Computational Linguistics (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Evolutionary Computation (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Geometry (AREA)
  • Bioinformatics & Cheminformatics (AREA)
  • Bioinformatics & Computational Biology (AREA)
  • Evolutionary Biology (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Artificial Intelligence (AREA)
  • Computing Systems (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)

Abstract

公开了在应用开发阶段期间预测数据库高速缓冲存储器对查询经过响应时间的影响的系统和方法。在数据库中执行的查询被分类并且得到查询类型。收集数据库统计资料以进一步确定关于所述查询类型的一个或多个高速缓冲存储器缺失因子。由于关于所述查询类型的所述一个或多个高速缓冲存储器缺失因子计算一个或多个时间分量。对于不同大小的所述数据库使用所述一个或多个时间分量预测所述查询经过响应时间。

Description

应用开发阶段预测高速缓存对查询经过响应时间的影响的系 统和方法
相关申请的交叉引用和优先权
本申请请求于2013年12月23日申请的印度专利申请号4016/MUM/2013的优先权。
技术领域
本发明总体涉及预测高速缓冲存储器的影响的方法和系统,本发明尤其涉及在应用开发阶段期间预测高速缓冲存储器对查询经过响应时间的影响。
背景技术
在处理查询执行和分析时,通常遵循优化程序以预测关于特定系统或数据库的查询性能。为了预先明确预测查询性能,需要考虑随时间推移的数据库增长及变化。的不同大小数据库的不同大小可能大幅度地影响查询性能时间。
有很多与数据库相关联的因子能够影响查询响应。这些因子可能包括查询的访问模式。现有技术方法中的大部分基于在数据库系统上执行过的查询的过往历史或通过使用机器学习(ML)方式在系统上预测查询响应时间。这些方式可能在应用不同的ML技术方面有所不同,并且这些方式在应用开发阶段是不适合的。而且,过往查询的使用可能增加出错的可能性。
进一步地,在一些已提出的方案中,必须在数据库(DB)服务器内部构件方面进行改变,这可能不是可行的措施。虽然其中的一些方案利用数据库成本效用仅用于了解大型数据库中的查询访问计划。但在检查查询性能时没有在处理数据大小的增加上考虑太多。
发明内容
本发明内容用于介绍与被设计为形成企业网络的一个或多个实体的网络的系统和方法相关的各方面,并且下面用详细说明进一步描述这些方面。本发明内容并非用来标识所保护的主题的基本特征,也不用来确定或限制所保护的主题的范围。
本发明涉及一种在应用开发阶段期间预测高速缓冲存储器对查询经过响应时间的影响的系统。该系统包括处理器以及耦接到该处理器的存储器。该处理器能够执行存储在该存储器中的多个模块。该多个模块包括分类模块,其被配置为对执行于数据库上的查询分类以得到查询类型,其中,基于该查询的数据库访问模式以及与该查询和确定模块相关联的一个或多个键之间的关系将查询分类。该确定模块被配置为收集关于该查询类型的一个或多个数据库统计资料,其中,该数据库统计资料是指该数据库中的数据分布以及该数据库中该查询的数据访问模式;并且通过使用该数据库统计资料确定一个或多个高速缓冲存储器缺失因子,其中,该一个或多个高速缓冲存储器缺失因子预测由该查询进行的该高速缓冲存储器的访问。该多个模块还包括计算模块,其被配置为关于该一个或多个高速缓冲存储器缺失因子计算与数据库中的查询处理相关联的一个或多个时间相关值;以及预测模块,其被配置为通过使用该一个或多个时间相关值对于不同大小的该数据库预测该查询经过响应时间。
本发明还涉及一种在应用开发阶段期间预测高速缓冲存储器对查询经过响应时间的影响的方法。该方法包括对执行于数据库上的查询分类以得到查询类型,其中,基于该查询的数据库访问模式以及与该查询相关联的一个或多个键之间的关系将查询分类;收集关于该查询类型的一个或多个数据库统计资料,其中,该数据库统计资料是指该数据库中的数据分布以及该数据库中该查询的数据访问模式;并且通过使用该数据库统计资料确定一个或多个高速缓冲存储器缺失因子,其中,该一个或多个高速缓冲存储器缺失因子预测由该查询进行的该高速缓冲存储器的访问。本发明还包括关于该一个或多个高速缓冲存储器缺失因子计算与数据库中的查询处理相关联的一个或多个时间相关值;并且通过使用该一个或多个时间相关值对不同大小的该数据库预测该查询经过响应时间。
本发明还涉及一种计算机程序产品,去其上实现有在应用开发阶段期间预测高速缓冲存储器对查询经过响应时间的影响的计算机程序。该计算机程序产品包括用于对执行于数据库上的查询分类以得到查询类型的程序代码,其中,基于该查询的数据库访问模式以及与该查询相关联的一个或多个键之间的关系将查询分类;用于收集关于该查询类型的一个或多个数据库统计资料的程序代码,其中,该数据库统计资料是指该数据库中的数据分布以及该数据库中该查询的数据访问模式;以及用于通过使用该数据库统计资料确定一个或多个高速缓冲存储器缺失因子的程序代码,其中,该一个或多个高速缓冲存储器缺失因子预测由该查询进行的该高速缓冲存储器的访问。该计算机程序产品还包括用于关于该一个或多个高速缓冲存储器缺失因子计算与数据库中的查询处理相关联的一个或多个时间相关值的程序代码;以及用于通过使用该一个或多个时间相关值对不同大小的该数据库预测该查询经过响应时间的程序代码。
附图说明
根据附图描述详细说明。在附图中,附图标记中最左边的数字标识第一次出现该附图标记的附图。相同的数字自始至终使用于附图中以指代相同的特征和组件。
图1示出了根据本主题实施例的在应用开发阶段期间预测高速缓冲存储器对查询经过响应时间的影响的系统的网络实现;
图2示出了根据本主题实施例的在应用开发阶段期间预测高速缓冲存储器对查询经过响应时间的影响的系统;
图3示出了根据本主题实施例的在应用开发阶段期间预测高速缓冲存储器对查询经过响应时间的影响的方法;
图4示出了根据本主题示例性实施例的关于用于一种查询类型(Q1)的查询经过响应时间(ERT)的分析细节;
图5示出了根据本主题示例性实施例的关于用于第二种查询类型(Q2)的查询经过响应时间(ERT)的分析细节;
图6示出了根据本主题示例性实施例的关于用于第三种查询类型(Q3)的查询经过响应时间(ERT)的分析细节;
图7示出了根据本主题示例性实施例的查询经过响应时间预测误差百分比。
具体实施方式
尽管在应用开发阶段期间预测高速缓冲存储器对查询经过响应时间的影响的所描述的系统和方法的各方面能实施于许多不同的计算系统、环境和/或配置中,还是在以下示例性系统的环境下描述实施例。
现在参见图1,示出了预测在应用开发阶段企业期间高速缓冲存储器对查询经过响应时间的影响的系统102的网络实现100。基于查询的数据库访问模式对数据库中执行的查询分类以得到查询类型。关于查询类型收集数据库统计资料并且数据库统计资料被用于确定高速缓冲存储器缺失因子。由于查询类型的高速缓冲存储器缺失因子计算一个或多个时间相关值。通过对一个或多个时间相关值求和来预测查询经过响应时间。
虽然考虑系统102被实施为服务器上的应用来阐述本主题,但可以理解的是系统102也可以在如膝上型计算机、台式计算机、笔记本计算机、工作站、大型计算机、服务器、网络服务器等各种计算系统中实施。在一种实现中,系统102可以在基于云的环境中实施。可以理解的是系统102可以由多个用户通过下文中称为用户104的一个或多个用户设备104-1、104-2……104-N或驻留在用户设备104上的应用访问。用户设备104的例子可以包括但不限于便携式计算机、个人数字助理、手持设备以及工作站。用户设备104通过网络106可通信地连接至系统102。
在一种实现中,网络106可以是无线网络、有线网络或无线网络和有线网络的组合。网络106可以作为如企业内部网、局域网(LAN)、广域网(WAN)、因特网等不同类型网络中的一种被实施。网络106可以是专用网络也可以是共享网络。共享网络代表使用如超文本传送协议(HTTP)、传输控制协议/互联网协议(TCP/IP)、无线应用协议(WAP)等各种协议彼此通信的不同类型网络的联合。网络106还可以包括各种网络设备,包括路由器、网桥、服务器、计算设备、存储设备等。
现在参见图2,示出了根据本主题的实施例系统102。在一个实施例中,系统102可以包括至少一个处理器202、输入/输出(I/O)接口204、存储器208。该至少一个处理器202可以作为一个或多个微处理器、微型计算机、微控制器、数字信号处理器、中央处理器、状态机、逻辑电路和/或基于操作指令操纵信号的任何设备实施。在其他能力中,该至少一个处理器202用于获取并执行存储在存储器208中的计算机可读指令。
I/O接口204可以包括各种软件接口和硬件接口,比如网页接口、图形用户接口等。I/O接口204可以允许系统102直接或通过客户端设备104与用户交互。I/O接口204还可以使系统102能够与其他计算设备通信,如网络服务器和外部数据服务器(未示出)。I/O接口204能够助于多种多样的网络以及协议类型中的多个通信,包括有线网络如LAN、线缆等以及无线网络如WLAN、蜂窝或卫星等。I/O接口204可以包括用于将多个设备彼此连接或连接到另一个服务器的一个或多个端口。
存储器208可以包括现有技术中已知的任何计算机可读介质,比如包括如静态随机访问存储器(SRAM)和动态随机访问存储器(DRAM)的易失存储器,和/或如只读存储器(ROM)、可擦除可编程ROM、闪存、硬盘、光盘以及磁带的非易失存储器。存储器208可以包括模块210和数据212。
模块210包括执行特定任务、功能或实现特定的抽象数据类型的例行程序、程序、对象、组件、数据结构等。在一种实现中,模块210可以包括分类模块212、确定模块214、计算模块216以及预测模块218。其他模块220可以包括补充系统102的应用与功能的程序或编码的指令。
数据222尤其作为用于存储由模块220中的一个或多个所处理的、所接收的以及所产生的数据的储存库。数据222还可以包括数据库224以及其他数据226。该其他数据226可以包括作为该其他模块220中的一个或多个模块的执行结果所产生的数据。
本发明涉及预测高速缓冲存储器对查询经过响应时间的影响的系统和方法。查询在数据库中尤其在小型数据库中执行。针对小型数据库进行所有观察以使对处于发展阶段的数据库的预测得以进行。这有助于在发展产品数据库时进行分析。涉及到影响查询响应时间的因子众多,因此对查询经过响应时间有贡献。基于小型数据库的查询的执行有助于观察影响查询检索时间的众多因子。一个该因子是高速缓冲存储器。在由查询进行数据库的重复访问的情况中,高速缓冲存储器因子影响查询经过响应时间。
在讨论与本发明相关的各实施例之前,在表1中列出用于说明本系统和方法的标记并且自始至终将这些标记应用于本文档中以说明本发明的各实施例。
表1
分类模块212对执行于小型数据库上的查询分类以鉴别查询类型。该查询类型包括非唯一索引扫描查询。该非唯一索引扫描查询是可以访问一个键值的多个数据块的查询。查询(这里为非唯一索引扫描查询)进行的高速缓冲存储器访问的行为取决于数据值分布(或数据分布模式)和数据访问模式(其确定用于访问数据的键值的顺序)。数据访问遵照UR分布模式和SUR分布模式。数据访问模式可以被称为UR访问模式和SUR访问模式。取决于出现在数据库中的表中的数据访问和数据分布,重复访问可以从操作系统(OS)或数据库(DB)高速缓冲存储器得到服务。
确定模块214用于收集关于查询类型的数据库统计资料。该数据库统计资料是指与数据库中的查询类型处理相关联的数据库分布类型或数据库分布模式以及数据访问模式。在此情况中,确定模块214为非唯一索引扫描查询收集数据库和数据库访问模式(统称为数据库统计资料)中的数据分布模式。
有助于一个或多个高速缓冲存储器缺失因子的一个或多个计算的主存储器高速缓冲存储器有两层。为简单起见,我们将数据库高速缓冲存储器缺失因子简称为高速缓冲存储器缺失或数据库高速缓冲存储器缺失。
主存储器的层包括数据库(DB)高速缓冲存储器和操作系统(OS)高速缓冲存储器。OS在访问块时进行预先获取,因此,对顺序数据块的后续访问从OS高速缓冲存储器得到服务。一旦数据库访问块,该块被存储在数据库的DB高速缓冲存储器中,因此在该相同块被驱除之前对其进行的任何访问将从DB高速缓冲存储器得到服务。
基于小型数据库执行查询。小型数据库的使用被用于测量对于DB高速缓冲存储器的重复访问的数据库统计资料。所有时间分量从在小型数据上完成的测量被线性外推。
数据库中的数据分布是指数据库中的表格行的物理布局并且用于定义数据分布模式。通过非唯一索引扫描查询所访问的数据察觉行的不同布局。进一步地,针对多个键值的数据访问被假设为在键值上是顺序的。数据访问模式(或访问模式)遵照均匀随机(UR)分布模式和时隙均匀随机(SUR)分布模式。
在UR访问模式中,表中的每行具有外部键的随机值,其在相应主键的<min,max>范围内。范围<min,max>或不同的唯一值(max-min)不随数据大小的增长而变化。因此,每个键的有资格的行的数目随数据大小增加。针对索引的具有相同键值的所有行跨表的所有数据块随机存储。比如,在TPC-H基准中,供应商(supplier)表具有作为国籍(nation)的主键上的非唯一索引的supp_nk,国籍的主键具有随着数据大小增长固定数目的唯一值。
在SUR访问模式中,表中的每行具有外部键的“分布模式(distributionpatterned)”值,其在从相应主键的<min,max>范围内。这种情况下键值的分布模式将表顺序划分为与具有使键值有资格的行的块的数目一样多的时隙,这样每个时隙将具有至少一行用于给定的键值。范围<min,max>或不同的唯一值随着数据大小的增长而增加。因此,每个键的有资格的行的数目并且因此时隙的数目随着数据大小保持恒定。比如,在TPC-H基准中,partsupp表具有关于供应商的主键的partsupp_sk非唯一索引,对于供应商的主键,不同的值随着数据大小的增加均匀地增加。
数据访问模式是指相应索引的键值的顺序,该键值用于使相关数据(行)具有资格。用于非唯一索引扫描查询的不同形式的数据访问如下描述:
1、快速索引访问——在该类型访问中,所有的叶节点被顺序访问。
2、范围访问——在该类型访问中,满足位于一个范围内的键值的行被访问。
比如,10<s_nationkey<20。在一种类型的情况中,如果满足所有键值的所有行基于键的顺序值被访问,那么这被称为全访问。比如,s_nationkey>1。需要注意的是,索引块和数据块可能具有重复的访问——每个匹配的键值一次。
确定模块214用于使用数据库统计资料即在数据库和数据访问模式之内的数据分布模式来确定与查询类型(非唯一索引扫描查询)的执行相关联的一个或多个高速缓冲存储器缺失因子。该一个或多个高速缓冲存储器缺失因子包括OS高速缓冲存储器缺失因子(或简称为OS高速缓冲存储器缺失)和DB高速缓冲存储器缺失因子(或简称为DB高速缓冲存储器缺失)。
为多个情况计算数据库高速缓冲存储器因子。多个情况包括大型数据库和小型数据库的情况。
大型数据库的情况:对于大于DB高速缓冲存储器的数据库大小,需要预测DB高速缓冲存储器缺失数目以计算用户和系统时间分量。类似地,对于大于OS高速缓冲存储器的数据库大小,需要估计OS高速缓冲存储器缺失以计算系统和IO时间。
执行对于小型数据库的查询时所包含的步骤:
1、通过遍历B树读取根块、叶块和数据块以获取数据。
2、对于块,检查该块是否在DB高速缓冲存储器中,如果该块在DB高速缓冲存储器中,从DB高速缓冲存储器读取数据。
3、否则,生成OS读取呼叫(pread)请求以得到数据块。
4、将数据块拷贝到DB高速缓冲存储器中用于未来从DB高速缓冲存储器访问和读取数据以用于进一步处理。
OS读取呼叫中包含的步骤描述如下:
1、对于块,检查该块是否在OS高速缓冲存储器中,如果该块在OS高速缓冲存储器中,从OS高速缓冲存储器读取数据。
2、否则,生成读盘呼叫请求以得到数据块以及多一些的相邻块作为从硬盘预先获取的一部分。
3、将拷贝OS高速缓冲存储器中获取的所有数据块并从OS高速缓冲存储器中读取数据以返回数据库进程。
数据库大小包括数据库和索引块。用于数据块(ECD)的有效高速缓冲存储器大小可以被定义为可用于数据块的高速缓冲存储器大小,因为相对小的索引块被假定为一旦置于高速缓冲存储器中就永远在高速缓冲存储器中。
因此,
ECD=CB–IB,
其中,CB(高速缓冲存储器块)=高速缓冲存储器大小/块大小;并且
IB:索引块的数目。
确定模块214用于使用数据库统计资料以为各种数据分布模式确定高速缓冲存储器缺失因子。对于UR分布(UR分布模式)和SUR分布(SUR分布模式)的情况会进一步讨论。
对于UR分布情况:在UR分布中,DKV接近表中的TotBlks。系统102假定任何范围查询终将访问所有数据块,即任何类型的访问(键>val)增加总读取但物理读取对于给定的数据库大小随着val值的增加而几乎恒定。只要DKV<ECD且TotBlks<ECD,则所有的访问将通过DB高速缓冲存储器来服务。范围访问key<=val将具有多轮顺序键值访问,即只用key=1、key=2……key=val这样的顺序获取所有行。在这种情况下有以下两种情形。
情况1:DKV<ECD且TotBlks>ECD;
情况2:DKV>ECD。
在情况1中,对于键值的一轮数据块访问将适合DB高速缓冲存储器,然而在随后的几轮中数据块可能不在DB高速缓冲存储器中。
总DB高速缓冲存储器缺失=DKV+(匹配键-1)*DKV*Prob(缺失/块/键);
Prob(缺失/块/键)=(TotBlks–DKV)/总Blks*Prob(RowBlk);
Prob(RowBlk)=NRB*Prob(块中生成的键);
Prob(块中生成的键)=1/Maxval(因为键值是在1和Maxval之间随机生成的);
总DB高速缓冲存储器缺失=DKV+(匹配键–1)x DKV x(TotBlks–DKV)/总BlksxNRBx1/Maxval。
对于情况2,DKV>ECD,每个访问实际上导致DB高速缓冲存储器缺失,因此总DB高速缓冲存储器缺失=访问数目;这可以从如对于小型数据库的“tkprof”的数据库跟踪得到并且可以线性外推以得到对于大数据库的总DB高速缓冲存储器缺失。
对于SUR分布的情况:在SUR分布模式中,时隙数目与随着数据库大小的增加而保持恒定的DKV相同。然而每个时隙的大小随着数据库大小增加。只要DKV<ECD且TotBlks<ECD,所有访问将通过DB高速缓冲存储器服务。范围访问key<=val将具有多轮顺序键值访问,即只用key=1、key=2……key=val这样的顺序获取所有行。在这种情况下,DKV<ECD一直保持适用,因为DKV随着数据库大小而保持恒定。因此只有在TotBlks>ECD时数据库高速缓冲存储器缺失才将发生。
总DB高速缓冲存储器缺失=DKV+(匹配键–1)*DKV*Prob(缺失/时隙/键);
Prob(缺失/时隙/键)=SeqSegs*Prob(RowBlk);
Prob(RowBlk)=1/NRB;
总DB高速缓冲存储器缺失=DKV+(匹配键–1)x DKV x SeqSegs/NRB。
在SUR分布模式中,由于DKV是恒定的,因此来自每个时隙的一个块将一直在DB高速缓冲存储器中,然而只有在参考该行的访问没有在高速缓冲存储器中的该时隙中的该块中发生时才将发生缺失。这取决于块中的行的数目以及块中的数据分布模式。通过一个例子,考虑到TPC-H基准中的partsupp表,其中,每个块具有在partsuspp.suppkey列上的行的四个顺序片段,即数据被用键值在4的间隙之后按顺序分布,即依次为1,201,301,401,2,202,302,402……。如果块在这些顺序片段任意之一中,那么访问将在块中。
确定模块214用于通过使用利用黑盒方式通过使用数据库统计资料确定OS高速缓冲存储器缺失因子(或简称为OS高速缓冲存储器缺失)。在黑盒方式中,DB码不用于得到高速缓冲存储器缺失因子(或高速缓冲存储器缺失)。数据库统计资料被用作黑盒以计算高速缓冲存储器缺失因子。为了确定OS高速缓冲存储器缺失因子,归因于数据块访问的第一时间的高速缓冲存储器缺失可以被忽略,因为归因于访问的第一时间的缺失将随着数据库大小的增加而线性增加。为了计算OS高速缓冲存储器缺失因子,归因于块的重复访问以及未示出线性特性的缺失是重要的。DB高速缓冲存储器缺失可以从OS高速缓冲存储器或硬盘获得服务。
对于UR访问模式的OS高速缓冲存储器缺失因子确定:
如果TotalBlks<OS高速缓冲存储器大小/块大小,那么所有DB高速缓冲存储器缺失将从OS高速缓冲存储器服务,OS高速缓冲存储器可以具有归因于预先获取或重复访问的所需要的块。否则,将因为对于每个键值的顺序数据访问而为每个数据块访问报告OS高速缓冲存储器缺失,每个键值将迫使从底层存储子系统(硬盘)读取。
总OS高速缓冲存储器缺失=访问数目,总OS高速缓冲存储器缺失可以从在小型DB上的测量被线性外推。
对于SUR分布模式的OS高速缓冲存储器缺失因子确定:在这种情况下,由于DKV<ECD,并且对于用于每个时隙的每个键的数据块是在时隙的块之间随机分布的,因此OS高速缓冲存储器缺失可以被线性外推。
在预测查询经过响应时间时高速缓冲存储器起关键作用。系统102进一步通过使用如‘strace’的工具来观察,查询执行过程在OS读取呼叫中花费99%的时间,其是对查询经过响应时间的最大贡献者。读取呼叫是指数据库中的读取索引和数据块。
一旦确定了对于UR分布模式和SUR分布模式的所有高速缓冲存储器缺失因子,计算模块216计算与数据库中的查询处理相关联的一个或多个时间分量。
查询经过响应时间具有两个广义分量:中央处理器(CPU)时间和输入输出(IO)时间。IO时间可以贡献自物理磁盘访问IO或OS高速缓冲存储器IO。还可以将CPU时间划分为用户时间和系统时间。用户时间对应于用户字段中的查询执行过程所花费的时间。并且,在从DB高速缓冲存储器中读取数据时所花费的时间可以被包含于用户时间中。系统时间对应于在执行系统呼叫中包括从OS高速缓冲存储器返回的OS读取的查询执行过程所花费的时间。因此,该的一个或多个时间分量包括用户时间、系统时间和IO时间。
计算模块216用于计算与数据库中的查询处理相关联的一个或多个时间分量。通过使用高速缓冲存储器缺失因子(即:用于多个分布模式和访问模式的DB高速缓冲存储器缺失因子和OS高速缓冲存储器缺失因子)计算该一个或多个时间分量。可以通过使用用户时间、系统时间和IO时间来预测查询经过时间。用户时间和系统时间分别考虑数据库高速缓冲存储器和OS高速缓冲存储器的影响。
用户字段中的查询执行时间可以包括以向查询客户端发送数据的运营商所花费的时间、DB高速缓冲存储器访问时间和网络时间。表2列出了用于说明确定高速缓冲存储器缺失因子的所有标记。
可以用数据库的大小来线性外推用户时间,直到总DB高速缓冲存储器缺失非线性增加为止,其导致在用户字段中所花费的用以生成额外系统读取呼叫的额外时间。因此,
用户时间=线性外推的用户时间+额外用户时间。
进一步地,服务于数据块请求时在用户空间中的查询过程所用的时间为:
用户时间=NDA*[在DB高速缓冲存储器中的检查+来自DB高速缓冲存储器的读取]+总DB缺失*[生成Pread+拷贝高速缓冲存储器中的数据DB];
用户时间=NDA*DBCacheAccessTime+总DB高速缓冲存储器缺失*GenSysReadTime…(1B)
如果所有请求由DB高速缓冲存储器提供服务,那么总DB缺失=0并且因此,
用户时间=NDA*DBCacheAccessTime……(2B)
因此,DBCacheAccessTime=用户时间/NDA;
额外用户时间=GenSysReadTime;
GenSysReadTime={用户时间(1)-用户时间(2)}/总DB高速缓冲存储器缺失,其中,用户时间(1)和用户时间(2)是分别来自方程1B和2B的用户时间。可以使用如procstat的系统性能分析工具计算两个方程的用户时间。
计算模块216执行如下步骤以计算额外用户时间:
在小于DB高速缓冲存储器大小的小型数据库上:
1、刷新OS高速缓冲存储器。刷新DB高速缓冲存储器。运行测试查询,比如“select/*+index(suppliersupp_nk)*/sum(s_acctbal)from supplier where s_nationkey>=0”。
2、用procstat进行utime1、systime1和iotime1的测量。所有访问将只从硬盘完成。
3、刷新DB高速缓冲存储器。再次运行查询。进行utime2、systime2和iotime2的测量。将是来自DB跟踪的多个物理读取(PR)的DB高速缓冲存储器缺失将从OS高速缓冲存储器提供服务。
4、再次运行查询。进行utime3、systime3和iotime3的测量。所有读取请求只从DB高速缓冲存储器提供服务。(utime3-utime2)将测量PR读取所用的时间以生成系统读取呼叫。
额外用户时间=GenSysReadTime=(utime3-utime2)/PR;
DBCacheAccessTime=utime3/NDA。
计算模块216还用于计算系统时间。除非发生DB高速缓冲存储器缺失,否则系统时间是线性外推的。DB高速缓冲存储器缺失导致归因于查询系统时间的OS高速缓冲存储器的访问。Systime=线性外推的SysTime+额外SysTime。
进一步地,SysTime=总DB高速缓冲存储器缺失*[在OS高速缓冲存储器中的检查+来自OS高速缓冲存储器读取]+NDR*[生成磁盘读取呼叫+拷贝OS高速缓冲存储器中的数据]。
当所有数据块在OS高速缓冲存储器中时,NDR=0并且因此能够被用以计算额外SysTime。系统102假定并且验证99%的内核时间花费于处理系统读取呼叫。于是每个OS读取的OS高速缓冲存储器访问可以被计算为:
SysTime=OS读取数目*OS CacheAccessTime;
因此,OS CacheAccessTime=系统时间/OS读取数目。
计算模块216还用于为大于DB高速缓冲存储器大小的数据库大小计算额外Systime。以下步骤由计算模块216执行以计算额外Systime:
1、刷新OS高速缓冲存储器。刷新DB高速缓冲存储器。用索引扫描运行测试查询。用procstat进行utime1、systime1和iotime1的测量。
2、刷新缓冲器高速缓冲存储器。运行查询。进行utime2、systime2和iotime2的测量。用DB跟踪“tkprof”测量物理读取(PR)。
3、systime2将测量PR读取所用的时间,因为这些读取是由OS高速缓冲存储器提供服务的并且计算在核心时间中。
4、OS高速缓冲存储器访问时间=(systime2)/PR。
计算模块216还用于为大于OS高速缓冲存储器大小的数据库大小计算额外Systime。以下步骤由计算模块执行以计算额外Systime:
1、刷新OS高速缓冲存储器。刷新DB高速缓冲存储器。用能够生成如“Select/*+index(partsupp pk_partsupp)*/sum(ps_availqty)from partsupp;”的大量磁盘读取的索引扫描运行测试查询。进行utime1、systime1和iotime1的测量。用使用iostat的(HR)测量硬盘读取。系统102假定每个磁盘读取请求具有DB块大小。
2、刷新DB高速缓冲存储器。运行测试查询。进行utime2、systime2和iotime2的测量。
3、systime2-systime1将测量由核心使用以生成HR磁盘读取的时间。
4、每个磁盘读取生成的时间=(systime2-systime1)/HR。
计算模块216还用于计算磁盘访问时间。只要磁盘读取是线性外推的,从足够大的数据库大小测量的IO时间就是线性外推的。当数据库大小大于OS高速缓冲存储器大小时,于是多个OS读取是实际的磁盘读取。否则,磁盘读取小于可以用如‘iostat’这样的用于小型数据库执行的系统监视工具计算以及能够为更大的数据大小线性外推的OS读取。
在计算了所有时间分量之后,预测模块218通过使用一个或多个时间分量预测查询经过响应时间。通过增加用户时间、系统时间和磁盘访问时间得到查询经过响应时间。根据数据分布和给定的数据大小,可以发生以下可能性:表格大小<DB高速缓冲存储器大小,DB高速缓冲存储器大小<表格大小<OS高速缓冲存储器大小,表格大小>OS高速缓冲存储器大小。
表格大小<DB高速缓冲存储器大小:在这种情况下,用户时间和系统时间是线性外推的。首先,用linux中的“procstat”为表示为“S”的小型数据库测量用户时间,sys时间和IO时间。对于小于“S”的所有大小,用户时间和系统时间是线性外推的。对于小于“S”的大小的查询ERT预测,可以生成以及显示数据块模式,并且可以得到IO时间。由于对于小数据大小OS高速缓冲存储器起主要作用,因此实际的磁盘读取数目可能不与数据大小的增加成比例。通过进行数据块模式测量的时间包括磁盘访问时间和OS高速缓冲存储器访问时间两者。然而,在某个大小之后,当物理读取非常高时,硬盘读取是成比例的并且因此IO时间可以是线性外推的。
DB高速缓冲存储器大小<表格大小<OS高速缓冲存储器大小。
对于UR分布模式:由查询过程生成的系统读取在数量上的增加不呈现线性特征。实际上,由查询过程生成的所有读取导致OS高速缓冲存储器读取。实际的硬盘读取只对应于所有表格数据块和叶块的第一次读取;任何后续的重复块读取从OS高速缓冲存储器提供服务。因此,用户时间和系统时间由系统读取中的增加因子非线性外推。
对于SUR分布模式:时隙的数目(每个键值的数据块)对于数据大小的增加保持不变。因此,实际的硬盘读取至少等于时隙数目。后续的系统读取(其与如之前计算的DB高速缓冲存储器缺失相同)可以从硬盘或OS高速缓冲存储器(归因于OS预先获取特征)提供服务。这些缺失导致额外用户时间和额外系统时间。
表格大小>OS高速缓冲存储器大小。
SUR分布模式查询ERT预测遵照如上所说明的相同模式。在UR分布模式中,DB高速缓冲存储器缺失也导致OS高速缓冲存储器缺失。因此由查询处理生成的物理读取实际上导致硬盘读取。用户时间从如DB高速缓冲存储器大小的DB大小线性外推。用促成这些额外磁盘读取的生成的额外系统时间从大小“S”的测量非线性外推系统时间。从乘以唯一键的数目的小型“S”线性外推硬盘读取的数目(因为对每个键值而言整个表被读取,因为OS高速缓冲存储器小于表文件大小,对每个这样的键而言,整个表将被只从硬盘读取。这是一个由系统102做出的近似值,并且实际数目可能比这略小)。将磁盘访问时间计算为硬盘读取的数目乘以从在大小“S”处取得的测量计算的每个硬盘读取的时间。
因此,查询ERT(经过的响应时间)或查询经过响应时间:
查询ERT=用户时间+系统时间+磁盘访问时间;
其中,用户时间、系统时间和磁盘访问时间是与数据库中的查询处理相关联的时间分量。
通过非限定示例性实施例的方式,DB服务器Oracle 11g用于预测高速缓冲存储器对查询经过响应时间的影响。与具有1TB存储器的光纤通道相连的具有4GB RAM的四核服务器为了由系统102执行的实验。数据库实现和数据可以用基于TPC-H基准的开源dbgen工具生成。
系统102基于由分类模块212划分的我们的查询分类用公式表示关于出现在表5中的供应商(supplier)、顾客(customer)和partsupp表的三个综合查询。数据库包括在s_nationkey字段具有索引supp_nk的表供应商、在c_nationkey字段具有索引cust_nk的表customer,以及在ps_suppkey具有索引partsupp_suppkey的partsupp。在数据库中执行创建的大小为1G的小型数据库以及表5中定义的所有查询。
表5
通过非限定示例性实施例的方式,通过系统102还需要注意的是对于从512GB开始的数据库大小的查询1、从32GB开始的数据库大小的查询2,以及从4GB开始的数据库大小的查询3的DB高速缓冲存储器缺失。
考虑具有UR数据分布模式的TPC-H基准的customer表。对于16GB数据库,customer表具有DKV=44340,TotalBlks=54981,ECD=52350;
Prob(缺失/块/键)=(10641/54981)*43*1/25=0.33288;
总DB高速缓冲存储器缺失=44340+24*44340*0.33288=398586,然而报告的实际缺失数目为408261,即:具有2.36%误差的偏差。
对于32GB数据库,表customer大小具有DKV=89561,ECD=52350,ECD<DKV,总DB高速缓冲存储器缺失与线性外推的总访问相同。
考虑具有SUR数据分布模式的TPC-H基准的表partsupp。对于4GB数据库,表partsupp具有DKV=80,Cache Size=53728,SS=4,NRB=48,Maxval=80000。
Prob(缺失/时隙/键)=4/48;
总DB高速缓冲存储器缺失=80+79999*80*4/48=533406,然而报告的实际缺失为=530968,即:具有0.4%误差的偏差。
通过另一个非限定示例性实施例的方式,对于查询1、2和3的经过的响应时间(ERT)比对结果分布出现在图4、5和6中。还需要注意的是对于Q1以及具有UR数据分布的Q2,系统102能够预测靠近实际ERT的ERT。图4示出了数据库报告的与实际DB高速缓冲存储器缺失相对的DB高速缓冲存储器缺失预测(这些都用oracle 11g的“tkprof”工具记录)。
在图4、5和6中,还需要注意的是可能归因于测量异常以及通过对于相同例子的查询的多个测量的取平均值可以降低的在低尺寸的更高的误差率。
图7描述了由系统102进行的ERT预测中的误差百分比。还需要注意的是对于所有查询而言误差百分比在10%以下并且似乎集中在2%。
参见图3,描述有方法300的顺序不用于解释为限制,并且描述的方法块的任何数字能够以任何顺序合并以实施方法300或替代方法。另外,在不脱离本文描述的主题的精神和范围的情况下,独立的块可以被从方法300中删除。而且,该方法可以实施于任何适当的硬件、软件、固件或他们的结合中。然而,为了容易说明,在以下描述的实施例中,可以认为方法300实施于以上描述的系统102中。
在方框302,将查询分类以得到查询类型。
在方框304,关于该查询类型收集数据库统计资料。
在方框306,为该查询类型确定一个或多个高速缓冲存储器缺失因子。
在方框308,关于该一个或多个高速缓冲存储器缺失因子计算一个或多个时间相关值。
在方框310,该高速缓冲存储器缺失因子被用于预测查询经过响应时间。
所写的说明书描述了本文的主题以使本领域任何技术人员能够进行并使用本发明的实施例。本主题实施例的范围由权利要求定义并且可以包括本领域技术人员想到的其他变型。这些其他的变型用于在他们具有不区别于权利要求的字面语言的相似原理或他们包括与权利要求的字面语言具有非实质性区别的等同原理时落入权利要求的范围内。

Claims (9)

1.一种在应用开发阶段期间预测高速缓冲存储器对查询经过响应时间的影响的系统,所述系统包括:
处理器;以及
耦接到所述处理器的存储器,其中,所述处理器能够执行存储在所述存储器中的多个模块,并且其中所述多个模块包括:
分类模块,其被配置为对执行于数据库上的查询分类以得到查询类型,其中,基于所述查询的数据库访问模式以及与所述查询相关联的一个或多个键之间的关系将查询分类,其中,所述键是指所述查询中所参考的一个或多个列,其中所述查询的高速缓冲存储器访问的行为取决于数据分布模式和数据访问模式,其确定用于访问数据并且使所述数据库中的相关数据具有资格的键值的顺序,并且其中,根据所述数据库中存在的表中的数据访问模式和数据分布模式,从操作系统(OS)高速缓冲存储器或从数据库(DB)高速缓冲存储器中提供重复数据访问,其中所述数据访问模式遵照均匀随机(UR)分布模式和时隙均匀随机(SUR)分布模式,其中在UR访问模式中,具有相同索引的键值的表的所有行被随机地存储在所述表的所有数据块中,其中在SUR访问模式中,键值的数据分布模式顺序地将所述表分成与具有使所述键值具有资格的行的块的数量一样多的时隙,使得每个时隙具有至少一个用于键值的行;
确定模块,其被配置为:
收集关于所述查询类型的一个或多个数据库统计资料,
其中,所述数据库统计资料是指所述数据库中的数据分布模式以及所述数据库中所述查询的数据访问模式;并且
通过使用所述数据库统计资料确定一个或多个高速缓冲存储器缺失因子,其中,所述一个或多个高速缓冲存储器缺失因子包括数据库高速缓冲存储器缺失因子和操作系统(OS)高速缓冲存储器缺失因子,其中,所述一个或多个高速缓冲存储器缺失因子预测在数据库高速缓冲存储器中没有找到的由所述查询进行的所述高速缓冲存储器的访问数目,并且其中,通过黑盒方式确定所述一个或多个高速缓冲存储器缺失因子,并且其中,所述确定模块还被配置为:
对于均匀随机(UR)访问模式确定所述数据库高速缓冲存储器缺失因子,以及对于时隙均匀随机(SUR)访问模式确定所述数据库高速缓冲存储器缺失因子;并且
对于均匀随机(UR)访问模式确定所述操作系统(OS)高速缓冲存储器缺失因子,以及对于时隙均匀随机(SUR)模式确定所述操作系统(OS)高速缓冲存储器缺失因子;
计算模块,其被配置为对于所述一个或多个高速缓冲存储器缺失因子,计算与数据库中的查询处理的相关联的一个或多个时间分量,其中,所述一个或多个时间分量包括与查询的处理相关联的中央处理器(CPU)时间和输入输出(IO)时间,其中,
CPU时间包括用户时间和系统时间;
预测模块,其被配置为通过对于不同大小的数据库使用一个或多个时间相关值来预测所述查询经过响应时间,其中,针对数据库的大小大于数据库高速缓冲存储器,预测所述数据库高速缓冲存储器缺失因子以计算所述用户时间和所述系统时间,以及针对数据库的大小大于OS高速缓冲存储器,预测所述OS高速缓冲存储器缺失因子以计算所述系统时间和所述IO时间。
2.如权利要求1所述的系统,其中,基于小型数据库执行所述查询,并且其中,所述查询包括非唯一索引扫描查询,其中,所述非唯一索引扫描查询为对于出现在数据库中的键值的数据块具有重复访问的查询,并且其中,通过非唯一索引扫描查询访问的数据察觉所述表中的行的不同布局。
3.如权利要求1所述的系统,其中,所述数据分布是指数据库中的表格行的物理布局,并且所述数据访问模式确定由所述查询用于访问所述数据库中的数据的键值的顺序。
4.如权利要求1所述的系统,其中,针对UR访问模式,所述表中的每行具有外部键的随机值,其在相应主键的<min,max>范围内,并且范围<min,max>或不同的唯一值(max-min)不随着数据库大小的增长而变化,并且每个键的有资格的行的数目随着UR访问模式的数据库大小的增加而增加,并且其中,针对SUR访问模式,所述表中的每行具有外部键的分布模式值,其在从相应主键的<min,max>范围内,其中范围<min,max>或不同的唯一值随着数据库大小的增长而增加,并且每个键的有资格的行的数目以及时隙的数目随着SUR访问模式的数据库大小的增加而保持恒定。
5.如权利要求1所述的系统,其中,所述用户时间包括对于所述查询向用户发送数据所需要的网络时间、由运营商所花费的时间和DB高速缓冲存储器访问时间。
6.如权利要求1所述的系统,其中,所述计算模块被配置为:
基于所述数据库统计资料外推所述一个或多个时间分量。
7.如权利要求1所述的系统,其中,所述预测模块被配置为:
增加所述一个或多个时间分量以预测所述查询经过响应时间。
8.一种在应用开发阶段期间预测高速缓冲存储器对查询经过响应时间的影响的方法,所述方法包括:
对执行于数据库上的查询分类以得到查询类型,其中,基于所述查询的数据库访问模式以及与所述查询相关联的一个或多个键之间的关系将查询分类,其中,所述键是指所述查询中所参考的一个或多个列,其中所述查询的高速缓冲存储器访问的行为取决于数据分布模式和数据访问模式,其确定用于访问数据并且使所述数据库中的相关数据具有资格的键值的顺序,并且其中,根据所述数据库中存在的表中的数据访问模式和数据分布模式,从操作系统(OS)高速缓冲存储器或从数据库(DB)高速缓冲存储器中提供重复数据访问,其中所述数据访问模式遵照均匀随机(UR)分布模式和时隙均匀随机(SUR)分布模式,其中在UR访问模式中,具有相同索引的键值的表的所有行被随机地存储在所述表的所有数据块中,其中在SUR访问模式中,键值的数据分布模式顺序地将所述表分成与具有使所述键值具有资格的行的块的数量一样多的时隙,使得每个时隙具有至少一个用于键值的行;
收集关于所述查询类型的一个或多个数据库统计资料,其中,所述数据库统计资料是指所述数据库中的数据分布模式以及所述数据库中所述查询的数据访问模式;并且
通过使用所述数据库统计资料确定一个或多个高速缓冲存储器缺失因子,其中,所述一个或多个高速缓冲存储器缺失因子包括数据库高速缓冲存储器缺失因子和操作系统(OS)高速缓冲存储器缺失因子,其中,所述一个或多个高速缓冲存储器缺失因子预测在数据库高速缓冲存储器中没有找到的由所述查询进行的所述高速缓冲存储器的访问的数目,并且其中,通过使用黑盒方式确定所述一个或多个高速缓冲存储器缺失因子,并且其中,
对于均匀随机(UR)访问模式确定所述数据库高速缓冲存储器缺失因子,以及对于时隙均匀随机(SUR)访问模式确定所述数据库高速缓冲存储器缺失因子;并且
对于均匀随机(UR)访问模式确定所述操作系统(OS)高速缓冲存储器缺失因子,以及对于时隙均匀随机(SUR)模式确定所述操作系统(OS)高速缓冲存储器缺失因子;
对于所述一个或多个高速缓冲存储器缺失因子计算与数据库中的查询的处理相关联的一个或多个时间相关值,其中,一个或多个时间分量包括与查询的处理相关联的中央处理器(CPU)时间和输入输出(IO)时间,其中,CPU时间包括用户时间和系统时间;并且
对于不同大小的所述数据库通过使用所述一个或多个时间相关值预测所述查询经过响应时间,其中,针对数据库的大小大于数据库高速缓冲存储器,预测所述数据库高速缓冲存储器缺失因子以计算所述用户时间和所述系统时间,以及针对数据库的大小大于OS高速缓冲存储器,预测所述OS高速缓冲存储器缺失因子以计算所述系统时间和所述IO时间。
9.一种计算机可读介质,在其上实现有用于在应用开发阶段期间预测高速缓冲存储器对查询经过响应时间的影响的计算机程序,所述计算机可读介质包括:
用于对执行于数据库上的查询分类以得到查询类型的程序代码,其中,基于所述查询的数据库访问模式以及与所述查询相关联的一个或多个键之间的关系将查询分类,其中所述查询的高速缓冲存储器访问的行为取决于数据分布模式和数据访问模式,其确定用于访问数据并且使所述数据库中的相关数据具有资格的键值的顺序,并且其中,根据所述数据库中存在的表中的数据访问模式和数据分布模式,从操作系统(OS)高速缓冲存储器或从数据库(DB)高速缓冲存储器中提供重复数据访问,其中所述数据访问模式遵照均匀随机(UR)分布模式和时隙均匀随机(SUR)分布模式,其中在UR访问模式中,具有相同索引的键值的表的所有行被随机地存储在所述表的所有数据块中,其中在SUR访问模式中,键值的数据分布模式顺序地将所述表分成与具有使所述键值具有资格的行的块的数量一样多的时隙,使得每个时隙具有至少一个用于键值的行;
用于收集关于所述查询类型的一个或多个数据库统计资料的程序代码,其中,所述数据库统计资料是指所述数据库中的数据分布模式以及所述数据库中所述查询的数据访问模式;并且
用于通过使用所述数据库统计资料确定一个或多个高速缓冲存储器缺失因子的程序代码,其中,所述一个或多个高速缓冲存储器缺失因子包括数据库高速缓冲存储器缺失因子和操作系统(OS)高速缓冲存储器缺失因子,其中,所述一个或多个高速缓冲存储器缺失因子预测由所述查询进行的所述高速缓冲存储器的访问,并且其中,通过使用黑盒方式确定所述一个或多个高速缓冲存储器缺失因子,并且其中,
对于均匀随机(UR)访问模式确定所述数据库高速缓冲存储器缺失因子,以及对于时隙均匀随机(SUR)访问模式确定所述数据库高速缓冲存储器缺失因子;并且
对于均匀随机(UR)访问模式确定所述操作系统(OS)高速缓冲存储器缺失因子,以及对于时隙均匀随机(SUR)模式确定所述操作系统(OS)高速缓冲存储器缺失因子;
用于对于所述一个或多个高速缓冲存储器缺失因子计算与数据库中的查询的处理相关联的一个或多个时间相关值的程序代码,其中,一个或多个时间分量包括与查询的处理相关联的中央处理器(CPU)时间和输入输出(IO)时间,其中,CPU时间包括用户时间和系统时间;
用于对于不同大小的所述数据库通过使用所述一个或多个时间相关值来预测所述查询经过响应时间的程序代码,其中,针对数据库的大小大于数据库高速缓冲存储器,预测所述数据库高速缓冲存储器缺失因子以计算所述用户时间和所述系统时间,以及针对数据库的大小大于OS高速缓冲存储器,预测所述OS高速缓冲存储器缺失因子以计算所述系统时间和所述IO时间。
CN201410779176.1A 2013-12-23 2014-12-15 应用开发阶段预测高速缓存对查询经过响应时间的影响的系统和方法 Active CN104731849B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
IN4016MU2013 IN2013MU04016A (zh) 2013-12-23 2013-12-23
IN4016/MUM/2013 2013-12-23

Publications (2)

Publication Number Publication Date
CN104731849A CN104731849A (zh) 2015-06-24
CN104731849B true CN104731849B (zh) 2019-09-20

Family

ID=53400228

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201410779176.1A Active CN104731849B (zh) 2013-12-23 2014-12-15 应用开发阶段预测高速缓存对查询经过响应时间的影响的系统和方法

Country Status (6)

Country Link
US (1) US10372711B2 (zh)
CN (1) CN104731849B (zh)
AU (1) AU2014271274B2 (zh)
GB (1) GB2522974A (zh)
IN (1) IN2013MU04016A (zh)
SG (1) SG10201408030TA (zh)

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7840537B2 (en) 2006-12-22 2010-11-23 Commvault Systems, Inc. System and method for storing redundant information
US8578120B2 (en) 2009-05-22 2013-11-05 Commvault Systems, Inc. Block-level single instancing
US8935492B2 (en) 2010-09-30 2015-01-13 Commvault Systems, Inc. Archiving data objects using secondary copies
US9020890B2 (en) 2012-03-30 2015-04-28 Commvault Systems, Inc. Smart archiving and data previewing for mobile devices
US9380602B2 (en) * 2012-10-16 2016-06-28 Lg Electronics Inc. Method and station for accessing channel in wireless LAN
US9633022B2 (en) 2012-12-28 2017-04-25 Commvault Systems, Inc. Backup and restoration for a deduplicated file system
US10324897B2 (en) 2014-01-27 2019-06-18 Commvault Systems, Inc. Techniques for serving archived electronic mail
US10324914B2 (en) * 2015-05-20 2019-06-18 Commvalut Systems, Inc. Handling user queries against production and archive storage systems, such as for enterprise customers having large and/or numerous files
CN108241657B (zh) * 2016-12-24 2022-01-07 北京亿阳信通科技有限公司 一种web数据列表处理方法及装置
US10936589B1 (en) * 2017-09-14 2021-03-02 Amazon Technologies, Inc. Capability-based query planning for heterogenous processing nodes
CN110019361B (zh) * 2017-10-30 2021-10-15 北京国双科技有限公司 一种数据的缓存方法及装置
US11502857B2 (en) * 2019-12-31 2022-11-15 Paypal, Inc. Generation of user-specific time-to-live values using machine learning

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5305389A (en) * 1991-08-30 1994-04-19 Digital Equipment Corporation Predictive cache system

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7139872B1 (en) * 1997-04-04 2006-11-21 Emc Corporation System and method for assessing the effectiveness of a cache memory or portion thereof using FIFO or LRU using cache utilization statistics
US6711562B1 (en) * 1999-12-01 2004-03-23 The Trustees Of Columbia University In The City Of New York Cache sensitive search (CSS) tree indexing system and method
US20020062415A1 (en) * 2000-09-29 2002-05-23 Zarlink Semiconductor N.V. Inc. Slotted memory access method
US6952664B1 (en) 2001-04-13 2005-10-04 Oracle International Corp. System and method for predicting cache performance
JP4313068B2 (ja) 2003-03-28 2009-08-12 株式会社日立製作所 記憶装置のキャッシュ管理方法
US8010337B2 (en) * 2004-09-22 2011-08-30 Microsoft Corporation Predicting database system performance
US7512591B2 (en) 2005-12-09 2009-03-31 International Business Machines Corporation System and method to improve processing time of databases by cache optimization
US8443341B2 (en) * 2006-11-09 2013-05-14 Rogue Wave Software, Inc. System for and method of capturing application characteristics data from a computer system and modeling target system
JP2010097526A (ja) 2008-10-20 2010-04-30 Hitachi Ltd キャッシュ構成管理システム、管理サーバおよびキャッシュ構成管理方法
US8332586B2 (en) 2009-03-30 2012-12-11 Hitachi, Ltd. Information processing system for measuring the cache effect in a virtual capacity

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5305389A (en) * 1991-08-30 1994-04-19 Digital Equipment Corporation Predictive cache system

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
《Extrapolation of SQL Query Elapsed Response Time at Application Development Stage》;Rekha Singhal等;《India Conference IEEE》;20130128;第8卷(第6期);第35-41页 *

Also Published As

Publication number Publication date
SG10201408030TA (en) 2015-07-30
US20150178277A1 (en) 2015-06-25
GB201421684D0 (en) 2015-01-21
US10372711B2 (en) 2019-08-06
CN104731849A (zh) 2015-06-24
AU2014271274B2 (en) 2016-09-08
AU2014271274A1 (en) 2015-07-09
IN2013MU04016A (zh) 2015-08-07
GB2522974A (en) 2015-08-12

Similar Documents

Publication Publication Date Title
CN104731849B (zh) 应用开发阶段预测高速缓存对查询经过响应时间的影响的系统和方法
US11429584B2 (en) Automatic determination of table distribution for multinode, distributed database systems
US9436734B2 (en) Relative performance prediction of a replacement database management system (DBMS)
US11176128B2 (en) Multiple access path selection by machine learning
US7945657B1 (en) System and method for emulating input/output performance of an application
US20100082599A1 (en) Characterizing Queries To Predict Execution In A Database
US8402119B2 (en) Real-load tuning of database applications
JP2016015124A (ja) コンピュータ装置、処理方法及びコンピュータプログラム
US20140282848A1 (en) System and Method to Provide Management of Test Data at Various Lifecycle Stages
CN107766568A (zh) 使用列式数据库中的直方图进行有效查询处理
Singhal et al. Performance assurance model for applications on SPARK platform
CN106033469B (zh) 用于大数据的结构化查询的高效性能预测的方法和系统
Bermbach et al. BenchFoundry: a benchmarking framework for cloud storage services
US20150067646A1 (en) System and Method to Predict Elapsed Response Time for a Query during Application Development Stage
Singhal et al. Predicting SQL query execution time for large data volume
Martinviita Time series database in Industrial IoT and its testing tool
Iyer et al. Performance, scalability and reliability issues in web applications
US11645283B2 (en) Predictive query processing
Wang et al. Turbo: Dynamic and decentralized global analytics via machine learning
US20220207048A1 (en) Signal of trust access prioritization
Gao et al. High performance graph processing with locality oriented design
Toye Towards a representative benchmark for time series
Lee et al. Datamime: Generating Representative Benchmarks by Automatically Synthesizing Datasets
Duttagupta et al. Performance mimicking benchmarks for multi-tier applications
Amos et al. Performance study of Spindle, a web analytics query engine implemented in Spark

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