CN112106038A - 在目标数据库管理系统上自动优化资源使用量以提高工作负载性能 - Google Patents

在目标数据库管理系统上自动优化资源使用量以提高工作负载性能 Download PDF

Info

Publication number
CN112106038A
CN112106038A CN201980029684.9A CN201980029684A CN112106038A CN 112106038 A CN112106038 A CN 112106038A CN 201980029684 A CN201980029684 A CN 201980029684A CN 112106038 A CN112106038 A CN 112106038A
Authority
CN
China
Prior art keywords
computer
workload
dbms
target dbms
tables
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
Application number
CN201980029684.9A
Other languages
English (en)
Inventor
S·卡梅斯瓦兰
P·本德尔
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.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
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 International Business Machines Corp filed Critical International Business Machines Corp
Publication of CN112106038A publication Critical patent/CN112106038A/zh
Pending legal-status Critical Current

Links

Images

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/21Design, administration or maintenance of databases
    • G06F16/217Database tuning
    • 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/25Integrating or interfacing systems involving database management systems
    • G06F16/254Extract, transform and load [ETL] procedures, e.g. ETL data flows in data warehouses
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3003Monitoring arrangements specially adapted to the computing system or computing system component being monitored
    • G06F11/3024Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a central processing unit [CPU]
    • 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
    • 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/3414Workload generation, e.g. scripts, playback
    • 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/3466Performance evaluation by tracing or monitoring
    • G06F11/3476Data logging
    • 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/22Indexing; Data structures therefor; Storage structures
    • G06F16/2282Tablespace storage structures; Management thereof
    • 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/23Updating
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/80Database-specific techniques

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)
  • Quality & Reliability (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • Software Systems (AREA)
  • Mathematical Physics (AREA)
  • Debugging And Monitoring (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

提供了将数据集从源数据库管理系统(DBMS)加载到目标DBMS中的功能,以提高工作负载性能并减少资源使用。使用有资格卸载到目标DBMS的表的大小和变化率,确定对应于将数据集加载到目标DBMS中的总中央处理器单元(CPU)成本以及与基于一组一个或多个加载策略在所述目标DBMS上执行一个或多个工作负载相对应的工作负载成本节省。将总CPU成本与每个加载策略的工作负载成本节省进行比较。基于将总CPU成本与每个加载策略的工作负载成本节省进行比较,来选择最优加载策略。根据所选的最优加载策略,将数据集自动从源DBMS加载到目标DBMS中。

Description

在目标数据库管理系统上自动优化资源使用量以提高工作负 载性能
技术领域
本公开总体上涉及数据库管理系统,并且更具体地涉及自动优化目标数据库管理系统所使用的计算机存储器和中央处理单元资源,以增加加速的分析查询工作负载性能。
背景技术
数据库是数据的有组织的集合。数据库管理系统(DBMS)是用于创建和管理数据库的系统软件。DBMS使用户可以创建、读取、更新和移除数据库中的数据。换句话说,DBMS充当数据库与用户或应用程序之间的接口,并确保数据被一致地组织并易于访问。
DBMS管理数据,允许访问数据的数据库引擎以及定义数据库逻辑结构的数据库模式。这些元素有助于提供并发性、安全性、数据完整性和统一的管理过程。DBMS支持的典型数据库管理任务包括变更管理、性能监视以及备份和恢复。许多数据库管理系统(DBMS)也可以执行自动回滚、重新启动和恢复以及记录活动。
在关系DBMS中,记录存储在表中。记录通常称为行,记录属性称为列。数据库通常不能跨不同的DBMS移植,但是不同的DBMS可以通过使用诸如结构化查询语言(SQL)、开放式数据库连接(ODBC)、或Java数据库连接(JDBC)之类的标准进行互操作以允许单个应用程序可以与多于一个DBMS一起工作。
技术进步导致所有领域的数据量不断增长。为了获得有价值的见解,用户要求能够对特定区域内的大量数据执行实时分析。但是,实时数据分析需要昂贵的查询操作,这些查询操作在中央处理器(CPU)上非常耗时。此外,在传统的DBMS中,CPU资源通常专用于事务性工作负载,而不是分析性工作负载。
因此,本领域中需要解决前述问题。
发明内容
从第一方面来看,本发明提供了一种计算机实现的方法,将数据集从源数据库管理系统(DBMS)加载到目标数据库管理系统中以提高工作负载性能并减少资源使用。该方法包括:由计算机使用有资格卸载到所述目标DBMS的表的大小和变化率来确定与将所述数据集加载到所述目标DBMS中相对应的总中央处理器单元(CPU)成本以及与基于一组一个或多个加载策略在所述目标DBMS上执行一个或多个工作负载相对应的工作负载成本节省;由所述计算机将所述总CPU成本与该组加载策略中每个加载策略的所述工作负载成本节省进行比较;由所述计算机基于比较所述总CPU成本与每个加载策略的所述工作负载成本节省,从该组加载策略中选择最优加载策略;以及由所述计算机根据所述选择的最优加载策略,将所诉数据集从所述源DBMS自动加载到所述目标DBMS中,以加速执行所述一个或多个工作负载,从而提高工作负载性能并降低CPU成本。
从另一方面来看,本发明提供一种计算机系统,用于将数据集从源数据库管理系统(DBMS)加载到目标DBMS中以提高工作负载性能并减少资源使用,该计算机系统包括:总线系统;连接到总线系统的存储设备,其中该存储设备存储程序指令;以及连接到总线系统的处理器,其中,处理器执行程序指令以:使用有资格卸载到所述目标DBMS的表的大小和变化率来确定与将所述数据集加载到所述目标DBMS中相对应的总中央处理器单元(CPU)成本以及与基于一组一个或多个加载策略在所述目标DBMS上执行一个或多个工作负载相对应的工作负载成本节省;将所述总CPU成本与该组加载策略中每个加载策略的所述工作负载成本节省进行比较;基于比较所述总CPU成本与每个加载策略的所述工作负载成本节省,从该组加载策略中选择最优加载策略;以及根据所述选择的最优加载策略,将所诉数据集从所述源DBMS自动加载到所述目标DBMS中,以加速执行所述一个或多个工作负载,从而提高工作负载性能并降低CPU成本。
从另一方面来看,本发明提供一种计算机程序产品,该计算机程序产品用于将数据集从源数据库管理系统(DBMS)加载到目标DBMS中以提高工作负载性能并减少资源使用。所述计算机程序产品包括可由处理电路读取的计算机可读存储介质,并存储用于由所述处理电路执行以执行用于执行本发明的步骤的方法的指令。
从另一方面来看,本发明提供了一种存储在计算机可读介质上并且可加载到数字计算机的内部存储器中的计算机程序,该计算机程序包括当所述程序在计算机上运行时,用于执行本发明的步骤的软件代码部分。
根据一个说明性实施例,提供了一种计算机实现的方法,用于将数据集从源数据库管理系统(DBMS)加载到目标数据库管理系统中以提高工作负载性能并减少资源使用。计算机使用有资格卸载到所述目标DBMS的表的大小和变化率来确定与将所述数据集加载到所述目标DBMS中相对应的总中央处理器单元(CPU)成本以及与基于一组一个或多个加载策略在所述目标DBMS上执行一个或多个工作负载相对应的工作负载成本节省。所述计算机将所述总CPU成本与该组加载策略中每个加载策略的所述工作负载成本节省进行比较。所述计算机基于比较所述总CPU成本与每个加载策略的所述工作负载成本节省,从该组加载策略中选择最优加载策略。所述计算机根据所述选择的最优加载策略,将所诉数据集从所述源DBMS自动加载到所述目标DBMS中,以加速执行所述一个或多个工作负载,从而提高工作负载性能并降低CPU成本。根据其他说明性实施例,提供了一种计算机系统和计算机程序产品,用于将数据集从源数据库管理系统(DBMS)加载到目标DBMS中以提高工作负载性能并减少资源使用。
根据其他说明性实施例,计算机收集有关在目标DBMS上运行的一组工作负载以及与在目标DBMS上运行每个相应工作负载相关的成本的信息。计算机根据该组工作负载的使用情况,获取目标DBMS中一组表的大小以及与该组表中的每个表关联的参考计数。计算机通过目标DBMS中的该组表中的每个表的该组工作负载来评估表访问的频率。计算机将与该组工作负载引用的每个表相关联的表访问频率映射到与移除具有从目标DBMS进行访问的最小频率或无频率的表相关的存储器和CPU成本节省,以识别表移除候选对象。计算机将根据映射自动从目标DBMS中移除识别的表移除候选对象,以减少存储使用并提高目标DBMS上的工作负载性能。
因此,说明性实施例通过比较用于卸载参考每个表的工作负载的CPU成本节省与通过将数据加载到目标DBMS上的每个表而产生的CPU成本来计算每个表的成本/收益平衡。另外,说明性实施例去除了在目标DBMS上未使用或最少使用的表。因此,说明性实施例优化了存储器和CPU使用率以增加工作负载性能。
附图说明
现在将仅通过举例的方式,参考附图来描述本发明的实施例,在附图中:
图1是其中可以实现说明性实施例的数据处理系统网络的图示;
图2是其中可以实现说明性实施例的数据处理系统的图;
图3A-3B是示出根据说明性实施例的用于初始加载表数据的过程的流程图;
图4A-4B是示出根据说明性实施例的用于刷新分区表的数据的过程的流程图;
图5A-5B是示出了根据说明性实施例的用于评估使得能够递增更新表数据的表的过程的流程图;
图6是示出根据说明性实施例的用于移除未引用或最小引用表的过程的流程图;
图7是示出根据说明性实施例的用于选择最优加载策略的过程的流程图;以及
图8是示出根据说明性实施例的用于将表访问频率映射到存储器和CPU成本节省的过程的流程图。
具体实施方式
本发明可以是处于任何可能的技术细节集成水平的系统、方法和/或计算机程序产品。该计算机程序产品可以包括其上具有用于使处理器执行本发明的各方面的计算机可读程序指令的计算机可读存储介质。
计算机可读存储介质可以是有形的设备,其可以保留和存储由指令执行设备使用的指令。计算机可读存储介质可以是例如但不限于电子存储设备、磁存储设备、光存储设备、电磁存储设备、半导体存储设备或前述的任何合适的组合。计算机可读存储介质的更具体示例的非详尽列表包括以下内容:便携式计算机磁盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦可编程只读存储器(EPROM或闪存)、静态随机存取存储器(SRAM)、便携式光盘只读存储器(CD-ROM)、数字多功能磁盘(DVD)、记忆棒、软盘、机械编码设备(例如打孔卡或凹槽中的凸起结构,上面记录了指令)、以及上述内容的任何合适组合。如本文所使用的,计算机可读存储介质不应被理解为本身是瞬时信号,例如无线电波或其他自由传播的电磁波,通过波导或其他传输介质(例如,穿过光纤电缆的光脉冲)传播的电磁波,或通过电线传输的电信号。
本文所述的计算机可读程序指令可以从计算机可读存储介质下载到相应的计算/处理设备,或者通过网络(例如,互联网、局域网、广域网和/或无线网络)下载到外部计算机或外部存储设备。网络可以包括铜传输电缆、光传输纤维、无线传输、路由器、防火墙、交换机、网关计算机和/或边缘服务器。每个计算/处理设备中的网络适配器卡或网络接口从网络接收计算机可读程序指令,并转发该计算机可读程序指令以存储在各个计算/处理设备内的计算机可读存储介质中。
用于执行本发明的操作的计算机可读程序指令可以是汇编程序指令、指令集架构(ISA)指令、机器指令、机器相关指令、微代码、固件指令、状态设置数据、用于集成电路的配置数据,或以一种或多种编程语言(包括诸如Smalltalk、C++等之类的面向对象的编程语言以及诸如“C”编程语言之类的过程编程语言)或类似的编程语言的任意组合编写的源代码或目标代码。计算机可读程序指令可以完全在用户计算机上、部分在用户计算机上、作为独立软件包执行,部分在用户计算机上并且部分在远程计算机上或完全在远程计算机或服务器上执行。在后一种情况下,远程计算机可以通过任何类型的网络(包括局域网(LAN)或广域网(WAN))连接到用户计算机,或者可以与外部计算机建立连接(用于例如通过使用因特网服务提供商的因特网)。在一些实施例中,电子电路包括:例如,可编程逻辑电路、现场可编程门阵列(FPGA)或可编程逻辑阵列(PLA),其可以通过利用计算机可读程序指令的状态信息来执行计算机可读程序指令,以个性化电子电路,以便执行本发明的各方面。
在此参考根据本发明实施例的方法、装置(系统)和计算机程序产品的流程图和/或框图描述了本发明的各方面。将理解的是,流程图图示和/或框图的每个框以及流程图图示和/或框图中的框的组合可以通过计算机可读程序指令来实现。
可以将这些计算机可读程序指令提供给通用计算机、专用计算机或其他可编程数据处理设备的处理器以产生机器,使得经由计算机的处理器或其他可编程数据处理设备执行的指令,创建用于实现流程图和/或框图方框中指定的功能/动作的装置。这些计算机可读程序指令还可以存储在计算机可读存储介质中,该计算机可读存储介质可以指导计算机、可编程数据处理装置和/或其他设备以特定方式起作用,从而使得其中存储有指令的计算机可读存储介质包括人工制品,该制品包括实现在流程图和/或框图方框中指定的功能/动作的各方面的指令。
计算机可读程序指令还可被加载到计算机,其他可编程数据处理设备或其他设备上,以使得在计算机、其他可编程设备或其他设备上执行一系列操作步骤以产生计算机实现的处理,使得在计算机、其他可编程装置或其他设备上实现流程图和/或框图方框中指定的功能/动作的指令。
附图中的流程图和框图示出了根据本发明的各个实施例的系统、方法和计算机程序产品的可能的实现的架构、功能和操作。就这一点而言,流程图或框图中的每个方框可以代表指令的模块、片段或部分,其包括用于实现指定的逻辑功能的一个或多个可执行指令。在一些替代实施方式中,方框中指出的功能可以不按图中指出的顺序发生。例如,取决于所涉及的功能,实际上可以基本上同时执行连续示出的两个框,或者有时可以以相反的顺序执行这些框。还应注意,框图和/或流程图的每个方框以及框图和/或流程图的方框的组合可以由执行指定功能或动作的基于硬件的专用系统或特殊用途的硬件和计算机指令的组合来实现。
现在参考附图,特别是参考图1和图2,其提供了可以在其中实现说明性实施例的数据处理环境的图。应当理解,图1和图2仅是示例性的,并不意图主张或暗示对可以实现不同实施例的环境的任何限制。可以对所描绘的环境进行许多修改。
图1描绘了其中可以实现说明性实施例的数据处理系统网络的图示。网络数据处理系统100是可以在其中实现说明性实施例的计算机、数据处理系统和其他设备的网络。网络数据处理系统100包含网络102,网络102是用于在计算机、数据处理系统和其他设备之间在网络数据处理系统100内连接在一起的提供通信链接的介质。网络102可以包括连接,例如,有线通信链路、无线通信链路和光纤电缆。
在所描绘的示例中,服务器104、服务器106和服务器108以及存储器110连接到网络102。服务器104、服务器106和服务器108可以是,例如,具有高速连接到网络102的服务器计算机。此外,服务器104是源DBMS服务器,服务器106是目标DBMS服务器,服务器108是卸载管理服务器。应当注意,源DBMS服务器104、目标DBMS服务器106和卸载管理服务器108可以各自代表一组一个或多个计算机。此外,DBMS服务器104、目标DBMS服务器106和卸载管理服务器108可以是数据中心中的计算机。替代地,DBMS服务器104、目标DBMS服务器106和卸载管理服务器108可以是云环境中的计算节点。
源DBMS服务器104代表一个关系数据库,该数据库将数据存储在表中,并且是对该数据的请求的源。换句话说,源DBMS服务器104为来自客户端设备的与该数据相对应的查询提供服务。该数据可以是任何类型的数据。目标DBMS服务器106表示用于加速对源DBMS服务器104上包含的数据的查询的加速器,并且包括表的关系数据库。卸载管理器服务器108控制将查询工作负载从源DBMS服务器104卸载到目标DBMS服务器106的过程。
卸载管理器服务器108通过比较用于从源DBMS服务器104卸载引用每个表的查询工作负载的CPU成本节省和通过将数据加载到目标DBMS上的每个引用表中所产生的CPU成本,确定查询工作负载所引用的每个表的资源成本和资源成本节省之间的平衡。另外,卸载管理器服务器108从目标DBMS 106移除未被引用或被最小引用的表(例如,与特定表相对应的引用数目低于定义的引用阈值数目),以释放目标DBMS 106上的存储器。因此,卸载管理器服务器108优化目标DBMS 106的内存和CPU使用率,以提高加速的分析查询工作负载性能。
客户端112、客户端114和客户端116也连接到网络102。客户端112、114和116是源DBMS服务器104的客户端。客户端112、114和116的用户可以利用客户端112、114和116以向源DBMS服务器104查询数据。该查询可以是例如需要在源DBMS服务器104中增加CPU使用率的分析查询。在此示例中,客户端112、114和116被显示为具有到网络102的有线通信链接的台式或个人计算机。应当注意,客户端112、114和116可以表示为其他类型的数据处理系统,例如,网络计算机、膝上型计算机、手持计算机、智能电话、智能手表、智能电视、游戏设备、信息亭等,具有链接到网络102的有线或无线通信。
存储器110代表能够以结构化格式或非结构化格式存储任何类型的数据的网络存储设备。另外,存储设备110可以代表多个网络存储设备。存储器110可以存储例如多个源DBMS服务器的标识符和网络地址、多个目标DBMS服务器的标识符和网络地址、多个客户端设备的标识符和网络地址、实时数据库统计信息等等。此外,存储器110可以存储其他类型的数据,例如可以包括用户名、密码和与客户端设备用户和系统管理员相关联的生物统计数据的认证或凭证数据。
另外,应当注意,网络数据处理系统100可以包括任意数量的附加服务器、客户端设备、存储设备以及其他未示出的设备。位于网络数据处理系统100中的程序代码可以存储在计算机可读存储介质上,并下载到计算机或其他数据处理设备上以供使用。例如,程序代码可以存储在源DBMS服务器104上的计算机可读存储介质上,并通过网络102下载到客户端112以在客户端112上使用。
在所描绘的示例中,网络数据处理系统100可以被实现为许多不同类型的通信网络,例如互联网、内联网、局域网(LAN)、广域网(WAN)或其任何组合。图1仅是示例性的,而不受不同说明性实施例的体系结构限制。
现在参考图2,根据说明性实施例描述了数据处理系统的图。数据处理系统200是计算机的示例,例如图1中的卸载管理服务器108,可以在其中放置实现说明性实施例的过程的计算机可读程序代码或指令。在该说明性示例中,数据处理系统200包括通信结构202,该通信结构202提供处理器单元204、存储器206、持久性存储器208、通信单元210、输入/输出(I/O)单元212和显示器214之间的通信。
处理器单元204用于执行可加载到存储器206中的软件应用程序和程序的指令。处理器单元204可以是一个或多个硬件CPU设备的集合,或者可以是多处理器内核,具体取决于特定的实现。
存储器206和持久性存储器208是存储设备216的示例。计算机可读存储设备是任何能够存储信息的硬件,例如但不限于数据、功能形式上的计算机可读程序代码、和/或其他合适的信息,既可以是暂时的,也可以是永久的。此外,计算机可读存储设备不包括传播介质。在这些示例中,存储器206可以是例如随机存取存储器或任何其他合适的易失性或非易失性存储设备。持久性存储器208可以采取各种形式,这取决于特定的实现。例如,持久性存储器208可以包含一个或多个设备。例如,持久性存储器208可以是硬盘驱动器、闪存、可重写光盘、可重写磁带或上述的某种组合。持久性存储器208使用的介质可以是可移动的。例如,可移动硬盘驱动器可用于持久性存储器208。
在此示例中,持久性存储器208存储卸载管理器218。但是,应当注意到即使卸载管理器218被示为驻留在持久性存储器208中,在替代说明性实施例中,卸载管理器218可以是数据处理系统200的单独组件。例如,卸载管理器218可以是耦合到通信结构202的硬件组件,也可以是硬件和软件组件的组合。在另一替代说明性实施例中,卸载管理器218的第一部分可以位于数据处理系统200上,卸载管理器218的第二部分可以位于第二数据处理系统上,例如图1中的目标DBMS服务器106。在又一个替代说明性实施例中,卸载管理器218可以位于目标DBMS服务器中,代替或者补充位于目标DBMS服务器中。
卸载管理器218控制将长期运行的分析查询工作负载从源DBMS(例如图1中的源DBMS服务器104)卸载到目标DBMS(例如目标DBMS服务器106)的过程。卸载管理器218通过在目标DBMS上(而不是源DBMS上)运行工作负载来确定CPU工作负载成本的节省,并且确定对应于将数据加载到目标DBMS上工作负载所引用的表中的CPU成本的节省。卸载管理器218还确定可以确定目标DBMS上哪些已加载的表,从而节省目标DBMS的内存资源并提高目标DBMS的工作负载性能。
在该示例中,持久性存储器208还存储源DBMS 220、总CPU成本222、工作负载成本节省224、实时统计数据226、目标DBMS 228和加载策略建议230。源DBMS 220表示标识符以及源DBMS的网络地址。卸载管理器218使用标识符和网络地址来连接并获取与源DBMS相对应的信息。该信息可以包括例如工作负载232。工作负载232表示在源DBMS上运行的一组一个或多个工作负载。工作负载232例如可以是需要在源DBMS上增加的CPU使用的分析查询。表234表示由源DBMS引用的一组表以执行工作负载232。大小236表示为工作负载232所引用的一组表中的每个相应表的大小。变化率238表示对工作负载232引用的一组表中的每个相应表的修改频率。
卸载管理器218利用大小236和变化率238来计算对应于工作负载232的总CPU成本222。总CPU成本222表示用于将表234加载到目标DBMS上以在目标DBMS上执行工作负载232的总CPU使用成本。工作负载成本节省224表示通过将工作负载232从源DBMS卸载到目标DBMS的CPU使用的减少。
实时统计数据226代表与表234相对应的当前实时信息,例如大小、变化率、错误等。目标DBMS 228代表目标DBMS的标识符和网络地址。卸载管理器218使用标识符和网络地址来连接并获取与目标DBMS相对应的信息。
表访问阈值240表示对加载到目标DBMS上的表的引用或访问的预定义的最小数量。卸载管理器218将访问次数小于或等于表访问阈值240的对应表识别为表移除候选242。表移除候选242表示一个或多个表的集合,卸载管理器218可以将这些表从目标DBMS中移除以增加内存,从而提高目标DBMS的工作负载性能。
加载策略建议230表示表加载计划,卸载管理器218可以利用该表加载计划将数据加载到目标DBMS的表上。加载策略建议230可以是例如基于UNLOAD的刷新策略和/或增量更新策略。基于UNLOAD的刷新策略在特定的时间点更新目标DBMS上的工作负载引用的表分区和整个表。增量更新策略不断更新目标DBMS上的工作负载所引用的表上的数据。
在此示例中,通信单元210经由网络(例如,图1中的网络102)提供与其他计算机、数据处理系统和设备的通信。通信单元210可以通过使用物理和无线通讯链接来提供通信。物理通信链路可以利用例如电线、电缆、通用串行总线或任何其他物理技术来建立用于数据处理系统200的物理通信链路。无线通信链路可以利用例如短波、高频、超高频、微波、无线保真(Wi-Fi)、
Figure BDA0002755542290000091
技术、全球移动通信系统(GSM)、码分多址(CDMA)、第二代(2G)、第三代(3G)、第四代(4G)、4G长期演进(LTE)、LTE高级或任何其他无线通信技术或标准来建立用于数据处理系统200的无线通信链路。
输入/输出单元212允许与可以连接到数据处理系统200的其他设备进行数据的输入和输出。例如,输入/输出单元212可以通过小键盘、键盘、鼠标和/或其他合适的输入设备为用户输入提供连接。显示器214提供了一种向用户显示信息的机制,并且可以包括触摸屏功能,以允许用户通过例如用户界面或输入数据进行屏幕上的选择。
用于操作系统、应用程序和/或程序的指令可以位于存储设备216中,该存储设备通过通信结构202与处理器单元204通信。在该说明性示例中,这些指令在持久存储器208上为功能形式。这些指令可以被加载到存储器206中以由处理器单元204运行。不同实施例的处理可以由处理器单元204使用计算机实现的指令来执行,该计算机实现的指令可以位于诸如存储器206的存储器中。这些程序指令被称为程序代码、计算机可用程序代码或计算机可读程序代码,其可由处理器单元204中的处理器读取并运行。在不同实施例中,程序指令可以体现在不同的物理计算机可读存储设备上,例如存储器206或持久性存储器208。
程序代码244以功能形式位于计算机可读介质246上,该计算机可读介质246是有选择地可移动的,并且可以被加载到或传输到数据处理系统200上以由处理器单元204运行。程序代码244和计算机可读介质246构成计算机程序产品248。在一个示例中,计算机可读介质246可以是计算机可读存储介质250或计算机可读信号介质252。计算机可读存储介质250可以包括例如插入或放置在驱动器中的光盘或磁盘或作为持久性存储器208的一部分的其他设备,以传输到作为持久性存储器208的一部分(例如硬盘驱动器)的存储设备。计算机可读存储介质250也可以采用持久性存储器的形式,例如硬盘驱动器、拇指驱动器或连接到数据处理系统200的闪存。在某些情况下,计算机可读存储介质250可能无法从数据处理系统200中移除。
备选地,可以使用计算机可读信号介质252将程序代码244传送到数据处理系统200。计算机可读信号介质252可以是例如包含程序代码244的传播数据信号。例如,计算机可读信号介质252可以是电磁信号、光信号和/或任何其他合适类型的信号。这些信号可以通过诸如无线通信链路、光纤电缆、同轴电缆、电线和/或任何其他合适类型的通信链路之类的通信链路来发送。换句话说,在说明性示例中,通信链路和/或连接可以是物理的或无线的。计算机可读介质还可以采取非有形介质的形式,例如包含程序代码的通信链路或无线传输。
在一些说明性实施例中,程序代码244可以从另一设备或数据处理系统通过计算机可读信号介质252通过网络下载到持久性存储器208,以供在数据处理系统200中使用。例如,可以通过网络将数据处理系统中的计算机可读存储介质中存储的程序代码从数据处理系统下载到数据处理系统200。提供程序代码244的数据处理系统可以是服务器计算机、客户端计算机或其他能够存储并发送程序代码244的设备。
为数据处理系统200图示的不同组件并不意味着对可以实现不同实施例的方式提供架构限制。可以在数据处理系统中实现不同的说明性实施例,该数据处理系统包括除了针对数据处理系统200而示出的那些组件之外的组件或代替针对数据处理系统200所示出的组件的组件。图2所示的其他组件可以与所示的说明性示例不同。可以使用能够执行程序代码的任何硬件设备或系统来实现不同的实施例。作为一个示例,数据处理系统200可以包括与无机组件集成的有机组件和/或可以完全由除了人类之外的有机组件组成。例如,存储设备可以包括有机半导体。
作为另一个示例,数据处理系统200中的计算机可读存储设备是可以存储数据的任何硬件设备。存储器206、持久性存储器208和计算机可读存储介质250是有形形式的物理存储设备的示例。
在另一示例中,总线系统可以用于实现通信结构202,并且可以由一个或多个总线组成,例如系统总线或输入/输出总线。当然,可以使用提供在附接到总线系统的不同组件或设备之间的数据传输的任何适当类型的架构来实现总线系统。另外,通信单元可以包括一个或多个用于发送和接收数据的设备,例如调制解调器或网络适配器。此外,存储器可以是例如存储器206或诸如在接口和存储器控制器集线器中发现的高速缓存,其可以存在于通信结构202中。
加速器用于卸载要加速的长时间运行的分析查询。为了加速查询,需要将查询所引用表的数据加载到加速器中。当多个此类查询卸载到加速器时,内存消耗增加,而查询性能下降。
资源限制(例如CPU、存储器和持久性存储)要求加速器高度优化资源使用,以增强加速的查询性能。在许多情况下,将表数据无限制地卸载到加速器使用的系统硬件中会消耗不必要的更多系统资源。结果,表数据的智能表加载和卸载将改善工作负载或查询性能。
当前,工作负载调谐器提供关于哪些表和数据在卸载到加速器时产生改进的性能的建议。但是,工作负载调谐器仅基于查询统计信息提供建议。换句话说,工作负载调整器取决于如何得出所考虑的查询工作负载。如果属于工作负载的部分的查询来自语句高速缓存,则知道在DBMS上运行查询的实际成本。
但是,当工作负载调谐器通过建议将表卸载到加速器来提出查询优化见解时,不考虑将数据加载到加速器中的实际CPU使用成本。随着时间的流逝,由于将用于多个表的数据加载到加速器中,加速器使用的内存资源也被耗尽,从而降低了性能。
说明性实施例通过考虑用于将数据加载到要从源DBMS卸载的工作负载引用的每个表中的CPU使用成本,将数据加载到目标DBMS(即加速器)的表中。因此,说明性实施例通过比较用于卸载参考每个表的工作负载/查询的CPU成本节省与通过将数据加载到目标DBMS上的每个表所产生的CPU成本来计算每个表的“成本/收益平衡”。此外,说明性实施例提供建议以去除目标DBMS未使用或最少使用的数据(即表)。因此,说明性实施例通过优化目标DBMS所使用的存储器和CPU资源以增加加速的分析工作负载/查询性能来提供系统资源优化。
说明性实施例提供了一种用于优化从源DBMS到目标DBMS的数据加载策略的计算机实现的方法,该目标DBMS包含源DBMS数据集的子集。目标DBMS使用数据集来运行一个或多个工作负载(例如,分析查询)。说明性实施例收集关于命中源DBMS的工作负载、与在源DBMS上运行工作负载相对应的成本、工作负载引用的表以及要卸载到目标DBMS的工作负载引用的表的资格的信息。说明性实施例获取了适合被卸载到目标DBMS的表的大小。另外,说明性实施例评估有资格被卸载到目标DBMS的表的改变率。说明性实施例使用有资格于卸载到目标DBMS的表的大小和变化率,确定与将数据集加载到目标DBMS相对应的总CPU成本,以及与基于一组一个或多个加载策略执行一项或多项目标DBMS上的工作负载相对应的成本节省。为特定表确定的工作负载成本节省包括与该特定表相对应的预计未来工作负载。说明性实施例将总CPU成本与该组加载策略中的每个加载策略的工作负载成本节省进行比较。说明性实施例基于将总成本与每个加载策略的工作负载成本节省进行比较,从该组加载策略中选择最优加载策略。说明性实施例根据所选择的最优加载策略自动地将数据集加载到目标DBMS中,以加速一个或多个工作负载的执行。
此外,说明性实施例提供了一种计算机实现的方法,用于优化与目标DBMS对应的数据移除策略,从而加快了工作负载性能。说明性实施例收集有关在目标DBMS上运行的一组工作负载以及与在目标DBMS上运行每个相应工作负载相关的成本的信息。说明性实施例基于工作负载集的使用来获取目标DBMS中的一组表中的每个表的大小以及与该组表中的每个表相关联的参考计数。说明性实施例通过针对目标DBMS中的表集合中的每个表的工作负载集合来评估表访问的频率。说明性实施例将与由工作负载载集合引用的每个表相关联的表访问的频率映射到与从目标DBMS以最小或没有访问频率的移除表相关联的存储器和CPU成本节省以标识表移除候选者。说明性实施例基于该映射自动从目标DBMS中移除所标识的表以及移除候选者。
加速器(即目标DBMS)特别适合于快速执行特定类型的数据库工作负载(例如分析查询)。说明性实施例将全部或部分数据从源数据库复制到目标数据库以增加工作负载(例如,查询)性能。说明性实施例动态地确定由源数据库接收的查询是在源数据库中执行还是被卸载到目标数据库。说明性实施例是否将查询卸载到目标数据库,取决于工作负载的类型(例如,分析查询工作负载)。当说明性实施例确定或预测将在目标数据库而不是源数据库中的原始数据表上更快地执行工作负载时,说明性实施例将工作负载分发到目标数据库。因此,说明性实施例利用目标数据库来加速工作负载/查询执行。
先前的将数据加载和卸载到目标数据库中的方法一直是手动过程,这由数据库管理员自行决定。尽管已指出一些最优实践,但是以前的方法无法支持数据库管理员就数据加载和卸载策略做出决策。
源DBMS中的数据组织在表之间可能有所不同。有些表是未分区的表,有些表是按范围或增长分区的。这些表中数据的变化率也根据表的目的而有很大的不同。因此,需要一种建议并实施最优加载策略的过程。
说明性实施例通过在目标DBMS上(而不是源DBMS上)运行工作负载来摄取关于工作负载成本节省,以及数据初始加载到引用的表中相对应的CPU成本的信息。然后,说明性实施例确定这些表中数据的变化率,并计算与可用于给定表的不同加载策略相关联的CPU成本。利用摄取和计算的该信息,说明性实施例向用户(例如,数据库管理员)呈现实际成本,该实际成本包括目标DBMS上的工作负载性能节省以及与将数据加载到目标DBMS的表相关的成本,以及建议的/选择的加载策略的成本,其包括将所有相关数据负载开销降至最低的理由。说明性实施例还使用建议的/选择的加载策略在目标DBMS上自动执行加载操作。
说明性实施例例如在参数设置为“是”时,通过在目标DBMS上运行工作负载来收集有关工作负载成本节省的数据。给定特定工作负载,说明性实施例确定直接在源DBMS上运行工作负载的工作负载成本,并响应于说明性实施例确定性实施例确定在目标DBMS上运行工作负载时将减少工作负载成本,建议在目标DBMS上运行工作负载。因此,说明性实施例基于工作负载成本节省建议。说明性实施例从源DBMS目录表中获取有关工作负载所引用的每个表的大小以及加载到目标DBMS上的资格的信息。
说明性实施例可以执行两种类型的数据加载/刷新策略,以同步目标DBMS上的数据,即基于UNLOAD的刷新策略和增量更新策略。基于UNLOAD的刷新策略在特定的时间点更新表分区和整个表。基于UNLOAD的刷新功能对源DBMS上的数据进行快照,并将数据传输到目标DBMS。增量更新策略通过应用源DBMS日志中记录的更改来不断更新目标DBMS上的数据。与将数据从源DBMS加载到目标DBMS的表相关的总CPU成本根据所选择的加载策略而有所不同。
用于增量更新或基于UNLOAD的刷新中的数据同步的CPU成本取决于要传输到目标DBMS的数据的总大小。对于增量更新,要传输的数据的总大小是已应用于源DBMS中的表的字节更改的净量。对于基于UNLOAD的刷新,要传输的数据的总大小取决于已更改的分区的数量和大小,因为只能刷新整个分区。由于增量更新功能将读取整个源DBMS子系统的日志,因此,CPU成本的估算必须基于该子系统的日志中记录的总体活动。必须区分范围内和范围外的更改。范围内的更改表示与目标DBMS上的增量更新表相关的日志活动,而范围外的更改表示所有其他活动。使用基于UNLOAD的刷新进行数据加载的CPU成本是主题表的所更改的行数和平均行长的函数。对于增量更新,当需要扫描源DBMS时,数据刷新的CPU成本是主题表的平均行长,插入、更新和移除的数量以及与范围外变化筛选相关的时间的函数。
当前,用户计算并手动执行步骤以转移考虑中的每个参考表,这既费时又容易出错,因此使当前过程次优。这是说明性实施例通过包括使多个因素的自动计算的逻辑并整合结果以生成具体成本数据以及建议的问题而考虑和解决的问题的一部分。另外,说明性实施例具有基于所生成的建议自动采取动作的能力。
现在参考图3A-3B,示出了根据说明性实施例的示出了用于初始加载表数据的过程的流程图。在此过程中,可以通过在目标DBMS上运行工作负载/查询来获得工作负载/查询的成本节省,但是尚无法获得使工作负载/查询在目标DBMS上运行所需的表数据。图3A-3B所示的过程可以在计算机中实现,例如,图1中的卸载管理器服务器108或图2中的数据处理系统200。
当计算机从源DBMS收集有关在源DBMS上运行的工作负载以及与在源DBMS上运行该工作负载相关的成本的信息时,该过程开始(步骤302)。这是通过针对源DBMS生成工作负载的执行计划来执行的。源DBMS可以是例如图1中的源DBMS服务器104。随后,计算机使用收集的信息来识别由工作负载所引用的一组表(步骤304)。
随后,计算机从该组表中选择一个表(步骤306)。该计算机确定所选择的表是否位于目标DBMS中(步骤308)。目标DBMS可以是例如图1中的目标DBMS服务器106。如果计算机确定所选表位于目标DBMS中,则步骤308的输出为是,则过程进行至图4中的步骤410。如果计算机确定所选表不在目标DBMS中,则步骤308的输出为否,然后计算机通过参考源DBMS的目录表确定初始加载到所选表中的数据量(步骤310)。
另外,计算机计算用于将数据量加载到所选择的表中的CPU成本值(步骤312)。计算机还使CPU成本计数器增加所计算的CPU成本值(步骤314)。之后,计算机确定在该组表中是否存在另一个表(步骤316)。如果计算机确定该表集合中确实存在另一个表,则步骤316的输出为是,则该过程返回到步骤306,在该步骤中,计算机从该表集合中选择另一个表。如果计算机确定该组表中不存在另一个表,则步骤316的输出为否,则计算机将根据基于CPU成本计数器确定用于将数据加载到目标DBMS上的总CPU成本(步骤318)。
计算机将将数据加载到目标DBMS上的总CPU成本与在目标DBMS上运行工作负载所节省的工作负载成本进行比较(步骤320)。此外,计算机通过将表数据加载到目标DBMS中来考虑将来的工作负载成本节省。响应于计算机将总CPU成本与工作负载成本节省进行比较,计算机确定总CPU成本是否大于工作负载成本节省(步骤322)。如果计算机确定总CPU成本大于工作负载成本节省,则返回步骤322,则此后过程终止。如果计算机确定总CPU成本小于工作负载成本节省(步骤322输出为否),则计算机会生成一个加载策略建议,以将数据加载到目标DBMS的表上(步骤324)。生成加载策略建议的过程将在下面的图7的说明描述中进行详细说明。
此外,计算机确定是否可以移除目标DBMS上任何已加载的表(步骤326)。如果计算机确定可以移除目标DBMS上已经加载的表,则执行步骤326的是输出,则过程前进到图6中的步骤602。如果计算机确定无法移除目标DBMS上已经加载的表,步骤326输出为否,则计算机将收集与加载策略建议中的表相对应的实时统计数据,以确定该表的更新模式(步骤328)。
之后,计算机基于所收集的实时统计数据来确定加载策略建议中的表是否有资格进行增量更新(步骤330)。如果计算机基于所收集的实时统计数据确定加载策略建议中的表无资格进行增量更新,步骤330输出为否,则计算机对加载策略建议中的无资格在目标DBMS上进行增量更新的表执行基于卸载的刷新(步骤332)。如果计算机基于所收集的实时统计数据确定加载策略建议中的表有资格进行增量更新则步骤330的输出为是,则计算机对加载策略建议中的目标DBMS上有资格进行增量更新的表启用增量更新(步骤334)。此外,计算机将加载策略建议及理由发送给用户以供审查(步骤336)。此后,该过程终止。
现在参考图4A-4B,示出了根据说明性实施例的示出用于刷新分区表的数据的过程的流程图。在此过程中,可获得可以通过在目标DBMS上运行工作负载来的工作负载成本节省,并且需要刷新在目标DBMS上运行工作负载所需的表数据。图4A-4B所示的过程可以在计算机中实现,例如,图1中的卸载管理器服务器108或图2中的数据处理系统200。
当计算机从源DBMS收集有关在源DBMS上运行的工作负载以及与在源DBMS上运行该工作负载相关的成本的信息时,该过程开始(步骤402)。计算机使用所收集的信息来识别工作负载所引用的一组表(步骤404)。计算机从该组表中选择一个表(步骤406)。
计算机确定所选择的表是否位于目标DBMS中(步骤408)。如果计算机确定所选表不在目标DBMS中,步骤408输出为否,则过程返回到图3A的步骤310。如果计算机确定所选表位于目标DBMS中,步骤408的输出为是,则计算机确定是否在所选表上启用了增量更新(步骤410)。如果计算机确定在所选表上启用增量更新,步骤410的输出为是,则过程进行到图5A的步骤512。如果计算机确定在所选表上未启用增量更新,步骤410输出为否,则计算机确定所选表是否被分区(步骤412)。
如果计算机确定所选表被分区,步骤412的输出为是,则计算机计算用于所选表的分区重新加载的CPU成本值(步骤414)。该计算机可以利用例如SYSPROC.ACCEL_LOAD_TABLES存储过程来识别当表数据已预先加载到目标DBMS中时从上次加载/刷新后以来更改了哪些分区。此后,过程进行到步骤418。如果计算机确定所选表未被分区,步骤412输出为否,则计算机计算用于完全重新加载所选表的CPU成本值(步骤416)。
此后,计算机将CPU成本计数器增加计算出的CPU成本值(步骤418)。另外,计算机确定在该组表中是否存在另一个表(步骤420)。如果计算机确定该表集合中确实存在另一个表,则步骤420的输出为是,则该过程返回到步骤406,在该步骤中,计算机在该表集合中选择另一个表。如果计算机确定该组表中不存在另一个表,步骤420的输出为否,则该计算机基于CPU成本计数器确定用于将数据重新加载到目标DBMS的表上的总CPU成本(步骤422)。
计算机将将数据重新加载到目标DBMS的表上的总CPU成本与在目标DBMS上运行工作负载的工作负载成本节省进行比较(步骤424)。响应于计算机将总CPU成本与工作负载成本节省进行比较,计算机确定总CPU成本是否大于工作负载成本节省(步骤426)。如果计算机确定总CPU成本大于工作负载成本节省,步骤426输出为是,则此后过程终止。如果计算机确定总的CPU成本小于工作负载成本节省,步骤426输出为否,则计算机生成用于将数据重新加载到目标DBMS的表的加载策略建议(步骤428)。
此外,计算机自动执行加载策略建议(步骤430)。此外,计算机确定是否可以移除目标DBMS上任何已加载的表(步骤432)。如果计算机确定可以移除目标DBMS上已经加载的表,步骤432的输出为是,则处理进行到图6的步骤602。如果计算机确定不能移除目标DBMS上已经加载的表,步骤432的输出为否,则此后过程终止。
现在参考图5A-5B,示出了根据说明性实施例的用于评估启用表数据的增量更新的表的过程的流程图。在此过程中,可获得通过在目标DBMS上运行工作负载的工作负载成本节省,并且当前由于启用了表的增量更新,因此还可以获得在目标DBMS上运行工作负载所需的表数据。图5A-5B所示的过程可以在计算机中实现,例如,图1中的卸载管理器服务器108或图2中的数据处理系统200。
当计算机从源DBMS收集有关在源DBMS上运行的工作负载以及与在源DBMS上运行该工作负载相关的成本的信息时,该过程开始(步骤502)。计算机使用所收集的信息来识别工作负载所引用的一组表(步骤504)。计算机从该组表中选择一个表(步骤506)。
计算机确定所选择的表是否位于目标DBMS中(步骤508)。如果计算机确定所选表不在目标DBMS中则步骤508输出为否,则过程返回到图3A的步骤310。如果计算机确定所选表位于目标DBMS中,步骤508的输出为是,则计算机确定是否在所选表上启用了增量更新(步骤510)。
如果计算机确定在所选表上未启用增量更新,步骤510输出为否,则过程返回图4A的步骤412。如果计算机确定在所选表上启用了增量更新,步骤510的输出为是,则计算机收集与所选表相对应的实时统计数据(步骤512)。之后,计算机基于所收集的实时统计数据来确定所选择的表是否仍然有资格进行增量更新(步骤514)。
如果计算机基于所收集的实时统计数据确定所选表仍没资格进行增量更新,步骤514输出为否,则计算机停止所选表的增量更新(步骤516)。此后,过程进行到步骤520。如果计算机基于所收集的实时统计数据确定所选表仍有资格进行增量更新,则步骤514的输出为是,则计算机继续进行所选表的增量更新(步骤518)。
计算机计算到目前为止所选表的增量更新的当前CPU成本值(步骤520)。另外,计算机使CPU成本计数器增加所计算的当前CPU成本值(步骤522)。此外,计算机确定在该组表中是否存在另一个表(步骤524)。
如果计算机确定该表集合中确实存在另一个表,步骤524的输出为是,则该过程返回到步骤506,在该步骤中,计算机在该表集合中选择另一个表。如果计算机确定该组表中不存在另一个表,步骤524的输出为否,则计算机基于CPU成本计数器确定目标DBMS上表的增量更新的总CPU成本(步骤526)。
计算机将目标DBMS上的表的增量更新的总CPU成本与在目标DBMS上运行工作负载的工作负载成本节省进行比较(步骤528)。响应于计算机将总CPU成本与工作负载成本节省进行比较,计算机确定总CPU成本是否大于工作负载成本节省(步骤530)。如果计算机确定总CPU成本大于工作负载成本节省,步骤530的输出为是,则计算机生成建议以停止目标DBMS上的表的增量更新(步骤532)。此后,过程进行到步骤536。如果计算机确定总CPU成本小于工作负载成本节省,步骤530的输出为否,则计算机生成建议以继续在目标DBMS上对表进行增量更新(步骤534)。此外,计算机自动执行建议(步骤536)。此后,该过程终止。
现在参考图6,示出了根据说明性实施例的用于去除未引用或最小引用的表的过程的流程图。在此过程中,可获得有关需要加载到目标DBMS中以实现工作负载加速的表数据的信息,并且需要检查目标DBMS中是否有可从目标DBMS中移除的候选表,以维持系统负载。图6所示的过程可以在计算机中实现,例如,图1中的卸载管理器服务器108或图2中的数据处理系统200。
当计算机针对与每个相应表相对应的多个工作负载命中评估计算机加载在目标DBMS上的表时,过程开始(步骤602)。响应于计算机评估表,计算机确定是否理由对应的工作负载命数小于工作负载命中数阈值的表(步骤604)。如果计算机确定没有一个表的工作负载命中数小于工作负载命中数阈值,步骤604输出为否,则此后过程终止。如果计算机确定一个或多个表具有对应的工作负载命中数小于工作负载命中数阈值,步骤604的输出为是,则计算机生成一个表列表,其中的表具有的工作负载命中数小于工作负载命中阈值数(步骤606)。
计算机从表列表中选择一个表(步骤608)。计算机确定是否可以从目标DBMS中移除所选表(步骤610)。如果计算机确定不能从目标DBMS中移除所选表,步骤610的输出为否,则计算机将所选表保留在目标DBMS上(步骤612)。此后,过程进行到步骤618。如果计算机确定可以从目标DBMS中移除所选表,步骤610的输出为是,则计算机将所选表添加到表移除列表中(步骤614)。此外,计算机通过从目标DBMS中移除所选表来计算存储器和CPU成本的节省(步骤616)。
计算机确定表列表中是否存在另一个表(步骤618)。如果计算机确定表列表中确实存在另一个表,步骤618的输出为是,则该过程返回到步骤608,在该步骤中,计算机在表列表中选择另一个表。如果计算机确定表列表中不存在另一个表,步骤618输出为否,则计算机通过从目标DBMS中移除表移除列表中的表来计算总的内存和CPU成本节省(步骤620)。
此外,计算机生成具有总存储器和CPU成本节省的目标DBMS的表移除建议(步骤622)。此外,计算机自动执行表移除建议(步骤624)。此后,该过程终止。
现在参考图7,示出了根据说明性实施例的用于选择最优加载策略的过程的流程图。图7中所示的过程可以在计算机中实现,例如,图1中的卸载管理器服务器108或图2中的数据处理系统200。
当计算机收集有关命中源DBMS的工作负载、与在源DBMS上运行工作负载相对应的成本、工作负载所引用的表以及工作负载所引用的要卸载到目标DBMS的表的资格的信息时,该过程开始(步骤702)。计算机还获取有资格被卸载到目标DBMS的表的大小(步骤704)。另外,计算机评估有资格被卸载到目标DBMS的表的变化率(步骤706)。
使用有资格卸载到目标DBMS的表的大小和变化率,计算机确定与将数据集加载到目标DBMS相对应的总CPU成本以及与基于一组一个或多个加载策略执行目标DBMS上的一个或多个工作负载相对应的工作负载成本节省(步骤708)。该计算机将总CPU成本与该组加载策略中的每个加载策略的工作负载成本节省进行比较(步骤710)。
基于将总CPU成本与每个加载策略的工作负载成本节省进行比较,计算机从该组加载策略中选择最优加载策略(步骤712)。然后,计算机根据所选择的最优加载策略自动地将数据集加载到目标DBMS中,以加速一个或多个工作负载的执行(步骤714)。此后,该过程终止。
现在参考图8,示出了根据说明性实施例的用于将表访问频率映射到存储器和CPU成本节省的过程的流程图。图8中所示的过程可以在计算机中实现,例如,图1中的卸载管理器服务器108或图2中的数据处理系统200。
当计算机收集有关在目标DBMS上运行的一组工作负载以及与在目标DBMS上运行每个相应工作负载相关的成本的信息时,该过程开始(步骤802)。另外,计算机基于该组工作负载的使用来获取目标DBMS中的表集合的大小以及与该集合中的每个表相关联的参考计数(步骤804)。此外,计算机评估目标DBMS中的表集合中的每个表的工作负载集的表访问的频率(步骤806)。
此后,计算机将与工作负载集引用的每个表相关联的表访问频率映射到与从目标DBMS进行访问的频率最小或无频率的移除表相关的内存和CPU成本节省,以识别表移除候选者(步骤808)。然后,计算机基于该映射从目标DBMS自动移除所标识的表,以减少目标DBMS上的内存使用并增加工作负载性能(步骤810)。此后,该过程终止。
因此,本发明的说明性实施例提供了一种计算机实现的方法、计算机系统和计算机程序产品,用于自动优化目标数据库管理系统所使用的计算机存储器和中央处理单元资源以增加工作负载性能。已经出于说明的目的给出了本发明的各种实施例的描述,但是这些描述并不旨在是详尽的或限于所公开的实施例。在不脱离所描述的实施例的范围的情况下,许多修改和变化对于本领域普通技术人员将是显而易见的。选择这里使用的术语是为了最好地解释实施例的原理,对市场上发现的技术的实际应用或技术上的改进,或者使本领域的其他普通技术人员能够理解这里公开的实施例。

Claims (28)

1.一种计算机实现的用于将数据集从源数据库管理系统(DBMS)加载到目标数据库管理系统中以提高工作负载性能并减少资源使用的方法,该计算机实现的方法包括:
由计算机使用有资格卸载到所述目标DBMS的表的大小和变化率来确定与将所述数据集加载到所述目标DBMS中相对应的总中央处理器单元(CPU)成本以及与基于一组一个或多个加载策略在所述目标DBMS上执行一个或多个工作负载相对应的工作负载成本节省;
由所述计算机将所述总CPU成本与该组加载策略中每个加载策略的所述工作负载成本节省进行比较;
由所述计算机基于比较所述总CPU成本与每个加载策略的所述工作负载成本节省,从该组加载策略中选择最优加载策略;以及
由所述计算机根据所述选择的最优加载策略,将所诉数据集从所述源DBMS自动加载到所述目标DBMS中,以加速执行所述一个或多个工作负载,从而提高工作负载性能并降低CPU成本。
2.如权利要求1所述的计算机实现的方法,还包括:
由所述计算机收集关于命中所述源DBMS的所述工作负载、与在所述源DBMS上运行所述工作负载相对应的成本、要被卸载到所述目标DBMS的由所述工作负载引用的所述表的资格的信息;
由所述计算机获取要被卸载到所述目标DBMS的每个所述表的大小;以及
由所述计算机评估要被卸载到所述目标DBMS的每个所述表的变化率。
3.如前述权利要求中的任一项所述的计算机实现的方法,还包括:
由所述计算机收集与在所述目标DBMS上运行的一组工作负载以及与在所述目标DBMS上运行各个工作负载相关的成本有关的信息;
由所述计算机基于该组工作负载的使用,获取所述目标DBMS中一组表的大小以及与该组表中的每个表相关的参考计数;
由所述计算机通过所述目标DBMS中的该组表中的每个表的该组工作负载来评估表访问频率;
由所述计算机将与该组工作负载所引用的每个表相关联的所述表访问频率映射到与移除从所述目标DBMS进行访问的频率最小或无频率的表相关的内存存储器和CPU成本节省,以识别表移除候选者;以及
由所述计算机基于所述映射,从所述目标DBMS中自动移除所述识别的表移除候选者以减少存储器使用并提高所述目标DBMS上的工作负载性能。
4.如权利要求1所述的计算机实现的方法,还包括:
由所述计算机从源DBMS收集有关在所述源DBMS上运行的工作负载以及与在所述源DBMS上运行所述工作负载相关的成本的信息;
由所述计算机使用收集的所述信息识别所述工作负载所引用的一组表;
由所述计算机从该组表中选择一个表;以及
由所述计算机确定所述选择的表是否位于所述目标DBMS中。
5.如权利要求4所述的计算机实现的方法,还包括:
响应所述计算机确定所述选择的表不在所述目标DBMS中,由所述计算机通过参考所述源DBMS的目录表确定要加载到所述选择的表中的数据量;
由所述计算机计算用于将所述数据量加载到所述选择的表中的CPU成本值;以及
由所述计算机将CPU成本计数器增加计算出的所述CPU成本值。
6.如权利要求5所述的计算机实现的方法,还包括:
由所述计算机基于所述CPU成本计数器确定用于将数据加载到所述目标DBMS上的该组表中的总CPU成本;
由所述计算机将将数据加载到所述目标DBMS上的该组表中的所述总CPU成本与在所述目标DBMS上运行所述工作负载的工作负载成本节省进行比较;
响应于所述计算机比较所述总CPU成本与所述工作负载成本节省,由所述计算机确定所述总CPU成本是否大于所述工作负载成本节省;以及
响应于所述计算机确定所述总CPU成本小于所述工作负载成本节省,由所述计算机生成一个加载策略建议以将所述数据加载到所述目标DBMS中的该组表上。
7.如权利要求4所述的计算机实现的方法,还包括:
响应于所述计算机确定所述选择的表位于所述目标DBMS中,由所述计算机确定是否在所述选择的表上启用了增量更新;
响应于所述计算机确定未在所述选择的表上启用增量更新,由所述计算机确定所述选择的表是否被分区;
响应于所述计算机确定所述选择的表被分区,由所述计算机计算用于重新加载所述选择的表的分区重新加载的CPU成本值;以及
由所述计算机为所述选择的表的分区重新加载计算的CPU成本值来增加CPU成本计数器。
8.如权利要求7所述的计算机实现的方法,还包括:
响应所述计算机确定所述选择的表未被分区,由所述计算机计算用于完全重新加载所述选择的表的CPU成本值;以及
由所述计算机将所述CPU成本计数器增加计算出的所述CPU成本值,以完全重新加载所述选择的表。
9.如权利要求7或8所述的计算机实现的方法,还包括:
响应于所述计算机确定在所述选择的表上启用了增量更新,由所述计算机收集与所述选择的表相对应的实时统计数据;
由所述计算机根据收集的与所述选择的表相对应的所述实时统计数据,确定所述选择的表是否仍有资格进行增量更新;
响应于所述计算机基于收集的所述实时统计数据确定所述选择的表仍没有资格进行增量更新,由所述计算机停止所述选择的表的增量更新;
由所述计算机计算到目前为止所述选择的表的所述增量更新的当前CPU成本值;以及
由所述计算机将所述CPU成本计数器增加计算出的所述当前CPU成本值,以进行到目前为止所述选择的表的所述增量更新。
10.如权利要求9所述的计算机实现的方法,还包括:
响应于所述计算机基于收集的所述实时统计数据确定所述选择的表仍然具有资格进行增量更新,由所述计算机继续进行所述选择的表的增量更新;
由所述计算机计算到目前为止所述选择的表的所述增量更新的所述当前CPU成本值;以及
由所述计算机将所述CPU成本计数器增加计算出的所述当前CPU成本值,以进行到目前为止所述选择的表的所述增量更新。
11.如权利要求1所述的计算机实现的方法,还包括:
由所述计算机评估在所述目标DBMS上加载的表,以获取与每个相应表相对应的多个工作负载命中数;
响应所述计算机对表的评估,由所述计算机确定是否有任何表的工作负载命中数小于阈值工作负载命中数;以及
响应于所述计算机确定一个或多个表具有对应的工作负载命中数小于所述阈值工作负载命中数,由所述计算机生成具有对应的工作负载命中数小于所述阈值工作负载命中数的表的列表。
12.如权利要求11所述的计算机实现的方法,还包括:
由所述计算机通过从所述目标DBMS中移除表移除列表中的表来计算总的存储器和CPU成本节省;
由所述计算机对所述目标DBMS针对所述总的存储器和CPU成本节省生成表移除建议;以及
由所述计算机自动执行所述表移除建议。
13.如前述权利要求中的任一项所述的计算机实现的方法,其中,为特定表确定的工作负载成本节省包括对所述特定表的预测的未来查询。
14.一种用于将数据集从源数据库管理系统(DBMS)加载到目标DBMS中以提高工作负载性能并减少资源使用的计算机系统,该计算机系统包括:
总线系统;
连接到所述总线系统的存储设备,其中所述存储设备存储程序指令;以及
连接到所述总线系统的处理器,其中所述处理器执行所述程序指令以:
使用有资格卸载到所述目标DBMS的表的大小和变化率来确定与将所述数据集加载到所述目标DBMS中相对应的总中央处理器单元(CPU)成本以及与基于一组一个或多个加载策略在所述目标DBMS上执行一个或多个工作负载相对应的工作负载成本节省;
将所述总CPU成本与该组加载策略中每个加载策略的所述工作负载成本节省进行比较;
基于比较所述总CPU成本与每个加载策略的所述工作负载成本节省,从该组加载策略中选择最优加载策略;以及
根据所述选择的最优加载策略,将所诉数据集从所述源DBMS自动加载到所述目标DBMS中,以加速执行所述一个或多个工作负载,从而提高工作负载性能并降低CPU成本。
15.如权利要求14所述的计算机系统,其中,所述处理器还执行所述程序指令以:
收集关于命中所述源DBMS的所述工作负载、与在所述源DBMS上运行所述工作负载相对应的成本、要被卸载到所述目标DBMS的由所述工作负载引用的所述表的资格的信息;
获取要被卸载到所述目标DBMS的每个所述表的大小;以及
评估要被卸载到所述目标DBMS的每个所述表的变化率。
16.如权利要求14或15所述的计算机系统,其中,所述处理器还执行所述程序指令以:
收集与在所述目标DBMS上运行的一组工作负载以及与在所述目标DBMS上运行各个工作负载相关的成本有关的信息;
基于该组工作负载的使用,获取所述目标DBMS中一组表的大小以及与该组表中的每个表相关的参考计数;
通过所述目标DBMS中的该组表中的每个表的该组工作负载来评估表访问频率;
将与该组工作负载所引用的每个表相关联的所述表访问频率映射到与移除从所述目标DBMS进行访问的频率最小或无频率的表相关的内存存储器和CPU成本节省,以识别表移除候选者;以及
根据映射自动移除标识的表,从目标DBMS中移除候选项,以减少内存使用并提高目标DBMS上的工作负载性能。
17.如权利要求14所述的系统,其中,所述处理器还执行所述程序指令以:
从源DBMS收集有关在所述源DBMS上运行的工作负载以及与在所述源DBMS上运行所述工作负载相关的成本的信息;
使用收集的所述信息识别所述工作负载所引用的一组表;
从该组表中选择一个表;以及;
确定所述选择的表是否位于所述目标DBMS中。
18.如权利要求17所述的系统,其中,所述处理器还执行所述程序指令以:
响应所述计算机确定所述选择的表不在所述目标DBMS中,通过参考所述源DBMS的目录表确定要加载到所述选择的表中的数据量;
计算用于将所述数据量加载到所述选择的表中的CPU成本值;以及
将CPU成本计数器增加计算出的所述CPU成本值。
19.如权利要求18所述的系统,其中,所述处理器还执行所述程序指令以:
基于所述CPU成本计数器确定用于将数据加载到所述目标DBMS上的该组表中的总CPU成本;
将将数据加载到所述目标DBMS上的该组表中的所述总CPU成本与在所述目标DBMS上运行所述工作负载的工作负载成本节省进行比较;
响应于所述计算机比较所述总CPU成本与所述工作负载成本节省,确定所述总CPU成本是否大于所述工作负载成本节省;以及
响应于所述计算机确定所述总CPU成本小于所述工作负载成本节省,生成一个加载策略建议以将所述数据加载到所述目标DBMS中的该组表上。
20.如权利要求17所述的系统,其中,所述处理器还执行所述程序指令以:
计算机确定所述选择的表位于所述目标DBMS中,由所述计算机确定是否在所述选择的表上启用了增量更新;
响应于所述计算机确定未在所述选择的表上启用增量更新,确定所述选择的表是否被分区;
响应于所述计算机确定所述选择的表被分区,计算用于重新加载所述选择的表的分区重新加载的CPU成本值;以及
为所述选择的表的分区重新加载计算的CPU成本值来增加CPU成本计数器。
21.如权利要求20所述的系统,其中,所述处理器还执行所述程序指令以:
响应所述计算机确定所述选择的表未被分区,计算用于完全重新加载所述选择的表的CPU成本值;以及
将所述CPU成本计数器增加计算出的所述CPU成本值,以完全重新加载所述选择的表。
22.如权利要求20或21所述的系统,其中,所述处理器还执行所述程序指令以:
响应于所述计算机确定在所述选择的表上启用了增量更新,收集与所述选择的表相对应的实时统计数据;
根据收集的与所述选择的表相对应的所述实时统计数据,确定所述选择的表是否仍有资格进行增量更新;
响应于所述计算机基于收集的所述实时统计数据确定所述选择的表仍没有资格进行增量更新,停止所述选择的表的增量更新;
计算到目前为止所述选择的表的所述增量更新的当前CPU成本值;以及
将所述CPU成本计数器增加计算出的所述当前CPU成本值,以进行到目前为止所述选择的表的所述增量更新。
23.如权利要求22所述的系统,其中,所述处理器还执行所述程序指令以:
响应于所述计算机基于收集的所述实时统计数据确定所述选择的表仍然具有资格进行增量更新,继续进行所述选择的表的增量更新;
计算到目前为止所述选择的表的所述增量更新的所述当前CPU成本值;以及
将所述CPU成本计数器增加计算出的所述当前CPU成本值,以进行到目前为止所述选择的表的所述增量更新。
24.如权利要求14所述的系统,其中,所述处理器还执行所述程序指令以:
评估在所述目标DBMS上加载的表,以获取与每个相应表相对应的多个工作负载命中数;
响应所述计算机对表的评估,确定是否有任何表的工作负载命中数小于阈值工作负载命中数;以及
响应于所述计算机确定一个或多个表具有对应的工作负载命中数小于所述阈值工作负载命中数,生成具有对应的工作负载命中数小于所述阈值工作负载命中数的表的列表。
25.如权利要求24所述的系统,其中,所述处理器还执行所述程序指令以:
通过从所述目标DBMS中移除表移除列表中的表来计算总的存储器和CPU成本节省;以及
对所述目标DBMS针对所述总的存储器和CPU成本节省生成表移除建议;以及
自动执行所述表移除建议。
26.如权利要求14至24中的任一项所述的系统,其中,为特定表确定的工作负载成本节省包括对所述特定表的预测的未来查询。
27.一种计算机程序产品,用于将数据集从源数据库管理系统(DBMS)加载到目标DBMS中以提高工作负载性能并减少资源使用,该计算机程序产品包括:
一种计算机可读存储介质,该计算机可读存储介质可由处理电路读取并存储由处理电路执行以执行如权利要求1至13中任一项所述的方法的指令。
28.一种存储在计算机可读介质上并且可加载到数字计算机的内部存储器中的计算机程序,该计算机程序包括当所述程序在计算机上运行时用于执行权利要求1至13中任一项所述的方法的软件代码部分。
CN201980029684.9A 2018-05-09 2019-05-07 在目标数据库管理系统上自动优化资源使用量以提高工作负载性能 Pending CN112106038A (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US15/974,828 2018-05-09
US15/974,828 US10691658B2 (en) 2018-05-09 2018-05-09 Automatically optimizing resource usage on a target database management system to increase workload performance
PCT/IB2019/053720 WO2019215601A1 (en) 2018-05-09 2019-05-07 Automatically optimizing resource usage on a target database management system to increase workload performance

Publications (1)

Publication Number Publication Date
CN112106038A true CN112106038A (zh) 2020-12-18

Family

ID=68463578

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201980029684.9A Pending CN112106038A (zh) 2018-05-09 2019-05-07 在目标数据库管理系统上自动优化资源使用量以提高工作负载性能

Country Status (6)

Country Link
US (1) US10691658B2 (zh)
JP (1) JP7291719B2 (zh)
CN (1) CN112106038A (zh)
DE (1) DE112019001480B4 (zh)
GB (1) GB2586109B (zh)
WO (1) WO2019215601A1 (zh)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10915517B2 (en) * 2018-11-26 2021-02-09 Bank Of America Corporation Database tool
US11271994B2 (en) * 2018-12-28 2022-03-08 Intel Corporation Technologies for providing selective offload of execution to the edge
US11100087B2 (en) * 2019-04-26 2021-08-24 Microsoft Technology Licensing, Llc Data tokenization system maintaining data integrity
US11093477B1 (en) * 2020-03-17 2021-08-17 International Business Machines Corporation Multiple source database system consolidation
US11423025B2 (en) 2020-07-27 2022-08-23 International Business Machines Corporation Direct data loading of middleware-generated records
US11379456B2 (en) 2020-10-01 2022-07-05 Oracle International Corporation Efficient adjustment of spin-locking parameter values
US11868261B2 (en) 2021-07-20 2024-01-09 Oracle International Corporation Prediction of buffer pool size for transaction processing workloads
US11494397B1 (en) * 2021-09-16 2022-11-08 Accenture Global Solutions Limited Data digital decoupling of legacy systems
US11874751B2 (en) * 2021-12-09 2024-01-16 International Business Machines Corporation Operating a data center

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1595365A (zh) * 2003-07-16 2005-03-16 国际商业机器公司 自动和动态优化应用数据资源以满足业务目标的系统和方法
CN102893273A (zh) * 2010-05-25 2013-01-23 微软公司 基于资源的自适应服务器加载
US20140136512A1 (en) * 2012-11-09 2014-05-15 International Business Machines Corporation Relative performance prediction of a replacement database management system (dbms)
CN107408126A (zh) * 2015-01-30 2017-11-28 甲骨文国际公司 用于集群中的基于联接的查询处理的工作负载感知的数据放置

Family Cites Families (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3449326B2 (ja) * 1999-12-08 2003-09-22 日本電気株式会社 データ検索システム及びパケット処理装置並びに制御方法
US6950848B1 (en) 2000-05-05 2005-09-27 Yousefi Zadeh Homayoun Database load balancing for multi-tier computer systems
US7233998B2 (en) 2001-03-22 2007-06-19 Sony Computer Entertainment Inc. Computer architecture and software cells for broadband networks
US7010521B2 (en) 2002-05-13 2006-03-07 Netezza Corporation Optimized database appliance
KR20040009126A (ko) 2002-07-22 2004-01-31 엘지전자 주식회사 데이터 베이스 시스템의 저부하 통계처리 장치 및 방법
US7395537B1 (en) 2003-12-08 2008-07-01 Teradata, Us Inc. Administering the workload of a database system using feedback
US8126870B2 (en) 2005-03-28 2012-02-28 Sybase, Inc. System and methodology for parallel query optimization using semantic-based partitioning
US7734615B2 (en) 2005-05-26 2010-06-08 International Business Machines Corporation Performance data for query optimization of database partitions
US8386463B2 (en) 2005-07-14 2013-02-26 International Business Machines Corporation Method and apparatus for dynamically associating different query execution strategies with selective portions of a database table
US8752055B2 (en) 2007-05-10 2014-06-10 International Business Machines Corporation Method of managing resources within a set of processes
US7885969B2 (en) * 2007-09-17 2011-02-08 International Business Machines Corporation System and method for executing compute-intensive database user-defined programs on an attached high-performance parallel computer
US9165032B2 (en) 2007-11-21 2015-10-20 Hewlett-Packard Development Company, L.P. Allocation of resources for concurrent query execution via adaptive segmentation
EP2073118A1 (en) 2007-12-17 2009-06-24 Nokia Siemens Networks Oy Load distribution in distributed database system
US8145652B2 (en) 2008-10-09 2012-03-27 International Business Machines Corporation Automated propagation of non-conflicting queries in distributed databases
US10803066B2 (en) 2010-06-29 2020-10-13 Teradata Us, Inc. Methods and systems for hardware acceleration of database operations and queries for a versioned database based on multiple hardware accelerators
US8356027B2 (en) 2010-10-07 2013-01-15 Sap Ag Hybrid query execution plan generation and cost model evaluation
CA2843320A1 (en) 2011-07-25 2013-01-31 Servergy, Inc. Method and system for building a low power computer system
US10430391B2 (en) 2012-09-28 2019-10-01 Oracle International Corporation Techniques for activity tracking, data classification, and in database archiving
GB2510429A (en) 2013-02-05 2014-08-06 Ibm Assessing response routes in a network
US9830354B2 (en) 2013-08-07 2017-11-28 International Business Machines Corporation Accelerating multiple query processing operations
US9495418B2 (en) 2013-08-07 2016-11-15 International Business Machines Corporation Scalable acceleration of database query operations
CA2867589A1 (en) 2013-10-15 2015-04-15 Coho Data Inc. Systems, methods and devices for implementing data management in a distributed data storage system
US10585887B2 (en) * 2015-03-30 2020-03-10 Oracle International Corporation Multi-system query execution plan
US10552453B2 (en) 2015-11-25 2020-02-04 International Business Machines Corporation Determining data replication cost for cloud based application
JP6644637B2 (ja) * 2016-05-25 2020-02-12 株式会社日立製作所 高速化装置、計算機システム及びデータ処理方法
US11048701B2 (en) 2016-09-13 2021-06-29 International Business Machines Corporation Query optimization in hybrid DBMS

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1595365A (zh) * 2003-07-16 2005-03-16 国际商业机器公司 自动和动态优化应用数据资源以满足业务目标的系统和方法
CN102893273A (zh) * 2010-05-25 2013-01-23 微软公司 基于资源的自适应服务器加载
US20140136512A1 (en) * 2012-11-09 2014-05-15 International Business Machines Corporation Relative performance prediction of a replacement database management system (dbms)
CN107408126A (zh) * 2015-01-30 2017-11-28 甲骨文国际公司 用于集群中的基于联接的查询处理的工作负载感知的数据放置

Also Published As

Publication number Publication date
US20190347342A1 (en) 2019-11-14
GB2586109B (en) 2021-07-14
US10691658B2 (en) 2020-06-23
WO2019215601A1 (en) 2019-11-14
GB202018112D0 (en) 2020-12-30
JP2021521507A (ja) 2021-08-26
DE112019001480T5 (de) 2021-01-07
DE112019001480B4 (de) 2022-08-04
JP7291719B2 (ja) 2023-06-15
GB2586109A (en) 2021-02-03

Similar Documents

Publication Publication Date Title
US10691658B2 (en) Automatically optimizing resource usage on a target database management system to increase workload performance
US10691722B2 (en) Consistent query execution for big data analytics in a hybrid database
US10083179B2 (en) Adjusting extension size of a database table using a volatile database table attribute
US11468073B2 (en) Techniques for maintaining statistics in a database system
US8825959B1 (en) Method and apparatus for using data access time prediction for improving data buffering policies
US20110055201A1 (en) System, method, and computer-readable medium for automatic index creation to improve the performance of frequently executed queries in a database system
US20170116222A1 (en) Parallel processing of large data files on distributed file systems with dynamic workload balancing
US9235590B1 (en) Selective data compression in a database system
US10909116B2 (en) Optimizing query processing and routing in a hybrid workload optimized database system
US10169411B2 (en) Forecasting query access plan obsolescence
US11138038B1 (en) Adaptive freepool size prediction
US11645281B1 (en) Caching query plans in database systems
US20240168946A1 (en) Management of object dependency records in a cloud system
US11609910B1 (en) Automatically refreshing materialized views according to performance benefit
US11144527B2 (en) Optimizing database table scans in the presence of ordered data
Abebe et al. Tiresias: enabling predictive autonomous storage and indexing
CN117472873A (zh) 数据迁移方法、装置、计算设备集群及存储介质
Munir et al. Intermediate results materialization selection and format for data-intensive flows
US11789951B2 (en) Storage of data structures
US20240176775A1 (en) Datastore workload isolation
US20230376485A1 (en) Distributed query plan generation

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination