CN115769198A - 用于查询优化的自动反馈和连续学习 - Google Patents
用于查询优化的自动反馈和连续学习 Download PDFInfo
- Publication number
- CN115769198A CN115769198A CN202180047556.4A CN202180047556A CN115769198A CN 115769198 A CN115769198 A CN 115769198A CN 202180047556 A CN202180047556 A CN 202180047556A CN 115769198 A CN115769198 A CN 115769198A
- Authority
- CN
- China
- Prior art keywords
- model
- query
- feedback
- program instructions
- computer
- 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
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2453—Query optimisation
- G06F16/24534—Query rewriting; Transformation
- G06F16/24549—Run-time optimisation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/28—Databases characterised by their database models, e.g. relational or object models
- G06F16/284—Relational databases
- G06F16/288—Entity relationship models
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N20/00—Machine learning
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Data Mining & Analysis (AREA)
- General Physics & Mathematics (AREA)
- Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- Software Systems (AREA)
- Evolutionary Computation (AREA)
- Computing Systems (AREA)
- Medical Informatics (AREA)
- Mathematical Physics (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Computational Linguistics (AREA)
- Artificial Intelligence (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
在用于改进数据库管理系统中的查询优化的方法中,各实施例使用工作负载反馈过程、使用在查询编译期间执行的查询反馈来识别用于改进基数估计的机会。该方法基于查询反馈的结构和所执行的运行时反馈来识别相关性和关系,并且从查询的执行中收集数据以识别查询优化器的估计中的误差。进一步,各实施例将查询反馈和运行时反馈提交给机器学习引擎以更新模型的集合。另外,各实施例基于所提交的查询反馈和运行时反馈来更新模型的集合,并基于从查询的执行中收集的数据来输出新的、经更新的或重新训练的模型,以识别查询优化器的估计、所提交的查询反馈和运行时反馈、或经训练的生成的模式中的误差。
Description
背景技术
本发明总体上涉及查询优化领域,并且更具体地涉及用于在分布式计算环境中执行的查询优化。
查询优化是许多关系数据库管理系统的特征。查询优化器通过考虑可能的查询计划尝试确定最有效的方式来执行给定查询。通常,一旦查询被提交到数据库服务器并且查询被解析器解析,查询优化器就不能由用户直接访问。一旦查询被提交并解析,它们就被传递到查询优化器以进行优化;然而,一些数据库引擎允许使用来自用户或源代码的提示或指令来引导查询优化器。
查询是对来自数据库的信息的请求。通过访问相关的数据库数据并以产生所请求的信息的方式操纵该数据库数据来生成查询结果。在大多数情况下,数据库结构是复杂的,从而通过以不同的方式、通过不同的访问路径以及不同的加入方法和加入顺序访问数据库来从数据库收集用于查询的所需数据。每个不同的路径和/或方法通常需要不同的处理时间。取决于选择查询的方式,同一查询的处理时间可以包含大的差异,从几分之一秒到几小时。作为自动化过程,查询优化的目的是找到在可能的最少时间量下处理给定查询的方式。查询处理时间中的大的可能的差异证明执行查询优化是合理的,尽管在所有可能性中找出执行查询的确切最优方式通常过于复杂、耗时、昂贵并且经常几乎不可能。
发明内容
本发明的实施例公开了一种用于查询优化的方法、计算机程序产品和系统,所述实施例包括:由查询优化器使用包括在查询编译期间执行的查询反馈的工作负荷反馈过程来识别用于改进基数(cardinality)估计的机会;基于所述查询反馈的结构和所执行的运行时反馈来识别相关性和关系;由所述查询优化器从查询的执行中收集数据以识别所述查询优化器的估计中的误差;由所述查询优化器将所述查询反馈和所述运行时反馈提交给机器学习引擎以更新模型的集合;由机器学习引擎基于所提交的查询反馈和运行时反馈来更新模型的集合;以及基于从所述查询的执行中收集的数据输出新的、经更新的或经重新训练的模型,以识别所述查询优化器的估计、所提交的查询反馈和所述运行时反馈或经训练的生成的模型中的误差。
附图说明
现在将参考附图仅通过示例的方式来描述本发明的实施例,在附图中:
图1是示出根据本发明的实施例的分布式数据处理环境的功能框图;
图2示出了根据本发明的实施例的描绘用于查询优化的自动反馈和连续学习的在图1的分布式数据处理环境内的在服务器计算机上执行的自动反馈和连续学习组件的框图;
图3示出了根据本发明的实施例的用于查询优化的自动反馈和连续学习的在图1的分布式数据处理环境内的计算设备上的自动反馈和连续学习组件的操作步骤;
图4示出了根据本发明的实施例的用于查询优化的自动反馈和连续学习的在图1的分布式数据处理环境内的计算设备上的自动反馈和连续学习组件的操作步骤;以及
图5描绘了根据本发明的实施例的在图1的分布式数据处理环境内执行自动反馈和连续学习组件的服务器计算机的组件的框图。
具体实施方式
本发明的实施例认识到,现有技术(例如,累积频率函数(CFF)模型)已经显示,通过多于一个数量级的估计截止可能导致次优计划(例如,低于预定阈值和/或在预定范围之外的计划),而在一个数量级内的估计通常给出合理的计划(例如,高于预定阈值和/或在预定范围之内的计划)。因此,本发明的实施例认识到需要模型从其误差中学习并适应可能在采样步骤期间错过的关键数据点。本发明的实施例通过使用机器学习(ML)来实现对数据库关系随时间累积的变化的适应性来改进现有技术。
本发明的实施例认识到,现有技术可适于与本领域已知的任何模型(例如,统计模型或小样本模型)无缝地工作。此外,与本发明的实施例关联的方法不限于基数估计,而是可以用于查询优化的任何方面。例如,与本发明的实施例关联的方法可以容易地适于估计不同成本,诸如性能成本和/或经济成本(例如,操作的输入/输出(I/O)、中央处理单元(CPU)和/或网络或存储器使用)。此外,本发明的各实施例认识到,涉及使用统计作为反馈的不同解决方案在过去已由不同数据库供应商实现;然而,所实现的解决方案中没有一个带来用以查询优化的机器学习能力。
此外,本发明的各实施例认识到,现有技术使用深度神经网络来通过从先前执行的查询连续地学习来构建查询执行计划。本发明的实施例认识到,本领域已知的当前使用的方法的主要缺点是本领域已知的当前使用的方法依赖于通过数据中的词语相似性来学习相关性,这可以产生可以比数据本身的大小增长更大的模型;此外,本发明的实施例认识到,应用本领域当前已知的方法可能演示并产生不准确的结果。
本发明的各实施例认识到,当前数据库系统可在自动或手动模式下收集列统计和多列统计,以便通过考虑多个值之间的统计相关性来对数据改变更稳健。类似地,在本发明的实施例中建议的CFF模型在发生较大数据改变并且模型的预测开始累积较大误差时可被完全再训练。此时,自动反馈有利于触发模型的重新训练动作。本发明的实施例相对于从执行的访问计划的每个单独组件收集的实际基数来测量模型的估计的基数的性能,其中从该性能测量接收的反馈被称为观察到的反馈。此外,一旦优化器识别出没有模型被预先构建在列的关系或组上,观察到的反馈就可以确定并识别哪个关系以及哪个单独的列或列的组具有构建新模型的可能性。
例如,两个列中的值之间的强统计相关性可以是候选(即,包含构建新模型的可能性),因为那些列上的谓词的组合将产生与可能导致低估的默认独立性假设相比更准确的估计。考虑一对谓词TREE=‘APPLE’AND TYPE=‘RED APPLE’,其中TREE中的40个不同值和TYPE中的2000个不同值累积在10000行的表中。相同类型的苹果可能出现在两个不同树中,并且假设存在TREE和TYPE值的2500个唯一组合,即,具有唯一组合的平均4行。如果使用单独列上的概率(即,naively(1/40)*(1/2000)*10000=0.125行),则数据库优化器可能低估基数。然而,使用不同组合的数量,本发明的实施例生成(1/2500)*10000=4行的更现实的估计。本发明的实施例在数据库表中保存模型的列表和用于构建模型的列的列表。在本发明的不同实施例中,所保存的模型的列表和列的列表可以包括新的和历史的(例如,先前使用或生成的)模型和列,和/或包含构建新模型的可能性的新的列和历史的列。另外,在数据库用户需要向数据库供应商报告查询性能问题的情况下,本发明的实施例实现可服务性各方面。
可服务性各方面使得能够在重新训练之后测试或退回到先前模型,其中模型版本和训练时间戳被维持(例如存储)以使得模型能够基于维持的模型版本和训练时间戳从其当前模型版本恢复到先前模型版本。例如,如果模型的当前模型版本是2.2以及当前训练时间戳是2020年5月1日,并且最近维护的模型版本是2.1以及训练时间戳是2020年4月29日,则该模型将回退到模型版本2.1。或者,在另一实施例中,本发明的实施例使得模型能够从先前模型版本恢复到最当前的模型版本。
本发明的不同实施例认识到,现有技术要求实现从运行时组件到优化器组件或从反馈回路到优化器组件本身的反馈回路,以考虑ML模型的重新训练。此外,本发明的实施方式认识到,当与所建议的发明相比时,现有技术对于训练是昂贵的。本发明的实施例认识到,为了训练现有技术中的系统,现有技术中的系统必须等待用户的查询(例如,取决于查询速率和数据的多样性(即,数据如何代表实际分布),可能花费更长的时间来训练模型),或者通过随机生成查询并且执行查询,这将导致大量的开销。本发明的实施例通过以下操作来改进现有技术:通过训练一个或多个样本来解决上述训练和开销问题,通过预定数据库接口来发现(即,识别)候选列而不执行针对全部数据(即,预定数据的整个集合)的查询,使用来自实际查询执行的反馈来细化重新训练努力以使重新训练的模型与工作负荷更相关,并且对ML模型的重新训练更高效。
此外,本发明的实施例提出使用ML以具有随时间累积数据库关系变化的适应性。在本发明的不同实施例中,如果估计超过或落入来自实际查询执行、实际基数和/或实际分布的预定值或预定值范围内,则对模型中涉及的数据的改变可以触发重新训练。本发明的实施例通过呈现查询优化的系统来构建、有效地训练、维护、评估和使用所学习或以其他方式的模型来改进现有技术。此外,本发明的实施例通过使本发明能够应用于本领域已知的任何统计/学习模型来改进现有技术,并且本发明的实施例可以桥接数据发现与反馈之间的间隙。本发明的实施例认识到,回环(loop back)误差点将使模型更复杂并增加模型大小和推断时间。
本发明的实施例认识到,连续学习对使用新数据点的模型重新训练或对内部加权的模型调整敏感。另外,本发明的不同实施例认识到,循环来自运行时反馈的所有或随机选择的查询可使模型预测偏差。例如,本发明的实施例经由谓词逻辑中的模型选择性地学习大部分模型的误差具有较低选择性。在此示例中,循环那些点将使模型偏向较低选择性。本发明的实施例可以使用分层采样,其中类别表示选择性的组(例如,在0.0至1.0之间的值),以改进领域并减少模型偏差。例如,对来自运行时反馈的所有或随机选择的查询使用分层采样改善了对未使用分层采样的相同测试查询的模型性能。
本发明的实施例的实现方式可以采取多种形式,并且示例性实施方式细节随后参见图3(即,图1-图5)讨论。
图1是示出根据本发明的一个实施例的通常由100表示的分布式数据处理环境的功能框图。本说明书中使用的术语“分布式”描述了包括多个物理上不同的设备的计算机系统,这些设备一起操作为单个计算机系统。图1仅提供一个实施方式的图示并且不暗示关于其中可以实现不同实施例的环境的任何限制。本领域技术人员可对所描绘的环境作出许多修改,而不脱离权利要求书所述的本发明的范围。分布式数据处理环境100包括通过网络130互连的计算设备110和服务器计算机120。
网络130可以是例如存储区域网络(SAN)、电信网络、局域网(LAN)、广域网(WAN)(诸如互联网)、用于在短距离上交换数据的无线技术(使用来自固定和移动设备的从2.4至2.485GHz的工业、科学和医疗(ISM)频带中的短波长超高频(UHF)无线电波,以及建立个域网(PAN)、或这三者的组合),并且可以包括有线、无线或光纤连接。网络130可以包括一个或多个有线和/或无线网络,其可接收和发送数据、语音和/或视频信号,包括包含语音、数据、文本和/或视频数据的多媒体信号。通常,网络130可以是将支持计算设备110和服务器计算机120与分布式数据处理环境100内的任何其他计算设备和/或存储设备(图1中未示出)之间的通信的连接和协议的任何组合。
在本发明的一些实施例中,计算设备110可以是但不限于独立设备、客户端、服务器、膝上型计算机、平板计算机,上网本计算机、个人计算机(PC)、智能电话、桌上型计算机、智能电视、智能手表、无线电、立体声系统、基于云的服务(例如,基于认知云的服务)、AR眼镜、虚拟现实头盔、本领域已知的任何HUD、和/或经由网络130能够与分布式数据处理环境100内的各个组件和设备通信的任何可编程电子计算设备、或其中的任何组合。一般而言,计算设备110可以表示能够执行机器可读程序指令并且经由网络130与其他计算设备的用户通信和/或能够执行机器可读程序指令并与服务器计算机120通信的任何可编程计算设备或可编程计算设备的组合。在一些实施例中,计算设备110可以表示多个计算设备。
在本发明的一些实施例中,计算设备110可以表示能够执行机器可读程序指令、操纵可执行机器可读指令和经由网络(诸如网络130)与服务器计算机120和分布式数据处理环境100内的其他计算设备(未示出)通信的任何可编程电子计算设备或可编程电子计算设备的组合。计算设备110可以包括用户接口(接口)106和本地存储装置104的实例。在图1中未描述的各种实施例中,计算设备110可以具有多个用户界面。在图1中未描述的其他实施例中,分布式数据处理环境100可以包括多个计算设备、多个服务器计算机和/或多个网络。计算设备110可以包括内部和外部硬件组件,如关于图5所描绘和进一步详细描述的。
用户接口(接口)106向自动反馈和连续学习组件(组件)112提供接口。计算设备110可经由用户接口106使得用户和/或客户端能够以不同方式与组件112和/或服务器计算机120交互,诸如发送程序指令、接收程序指令、发送和/或接收消息、更新数据、发送数据、输入数据、编辑数据、收集数据和/或接收数据。在一个实施例中,接口106可以是图形用户接口(GUI)或web用户接口(WUI),并且可以至少显示文本、文档、web浏览器窗口、用户选项、应用接口和操作指令。接口106可以包括呈现给用户的数据(诸如图形、文本和声音)以及用户用来控制操作的控制序列。在另一实施例中,接口106可以是在计算设备110的用户和服务器计算机120之间提供接口的移动应用软件。移动应用软件或“app”可以被设计为在智能电话、平板计算机和其他计算设备上运行。在一实施例中,接口106可使计算设备110的用户至少能够发送数据、输入数据、编辑数据(注释)、收集数据和/或接收数据。
服务器计算机120可以是独立计算设备、管理服务器、web服务器、移动计算设备、一个或多个客户端服务器、或能够接收、发送、和处理数据的任何其他电子设备或计算系统。在其他实施例中,服务器计算机120可以表示利用多个计算机的服务器计算系统,诸如但不限于诸如在云计算环境中的服务器系统。在另一实施例中,服务器计算机120可以表示利用集群计算机和组件(例如,数据库服务器计算机、应用服务器计算机等)的计算系统,所述集群计算机和组件在分布式数据处理环境100内被访问时充当单个无缝资源池。服务器计算机120可以包括内部和外部硬件组件,如相对于图5所描绘和进一步详细描述的。在一些实施例中,服务器计算机120可以表示多个服务器计算机。
共享存储装置124和本地存储装置104中的每一个可以是可由组件112、服务器计算机120和计算设备110中的一个或其组合写入和/或读取的数据/知识储存库和/或数据库。在所描绘的实施例中,共享存储装置124驻留在服务器计算机120上并且本地存储装置104驻留在计算设备110上。在另一实施例中,共享存储装置124和/或本地存储装置104可驻留在分布式数据处理环境100内的其他地方,条件是每个可访问计算设备110和服务器计算机120并可由计算设备110和服务器计算机120访问。共享存储装置124和/或本地存储装置104可各自用能够存储可由服务器计算机120访问和利用的数据和配置文件的任何类型的存储设备来实现,诸如但不限于数据库服务器、硬盘驱动器或闪存。
在本发明的一些实施例中,共享存储装置124和/或本地存储装置104可以各自是硬盘驱动器、存储卡、计算机输出到激光盘(冷存储装置)、和/或本领域已知的任何形式的数据存储装置。在一些实施例中,共享存储装置124和/或本地存储装置104可以各自是链接到云网络的一个或多个云存储系统和/或数据库。在不同实施例中,共享存储装置124和/或本地存储装置104可以访问、存储和/或保存用户数据、物理房间数据和会议数据和/或贯穿分布式数据处理环境100共享的数据。
在所描绘的实施例中,数据库引擎140在服务器计算机120上执行。在其他实施例中,数据库引擎140可以在计算设备110上执行。在图1中未描述的本发明的各种实施例中,数据库引擎140可以在多个服务器计算机120上和/或在多个计算设备110上执行。如本领域所理解的,数据库引擎140是数据库管理系统(DBMS)用来从数据库创建、读取、更新和删除(CRUD)数据的底层软件组件。在本发明的不同实施例中,数据库引擎140(即,数据库管理系统)包括应用编程接口(API),该API允许用户与其底层引擎进行交互而无需通过DBMS用户接口。
在所描绘的实施例中,组件112在服务器计算机120上的数据库引擎140上执行。在其他实施例中,组件112可以在计算设备110上执行。在本发明的各种实施例(图1中未描绘)中,组件112可以在多个数据库引擎140、多个服务器计算机120上和/或在多个计算设备110上执行。在一些实施例中,组件112可位于和/或在分布式数据处理环境100内的任何地方执行,只要组件112经由网络130与数据库引擎140、计算设备110和/或服务器计算机120连接和/或与它们通信。
在本发明的不同实施例中,组件112实现自动反馈方法,其中一旦查询已被执行,组件112可以识别和/或检索查询中的每个关系或执行计划中的运算符的实际行数,并将检索的行数与基于预测的基数的一个或多个行进行比较。高于或低于预定阈值的基数估计可以保持在独立的表中。包含估计的基数异常对比实际基数异常的表被聚集以通过不同算法滤除不频繁和次级反馈数据(例如,滤除的不频繁和次级反馈数据可包括:相关性、使用频率和对性能的影响,以保持数据紧凑并馈送至决定何时以及如何重新训练模型的组件)。在本发明的不同实施例中,组件112可以滤除不频繁的和预定的反馈,该反馈可以包括:相关性、使用频率和对性能的影响,以保持数据紧凑并且被馈送给决定何时以及如何重新训练模型的组件。在本发明的不同实施例中,组件112可以仅保留谓词文字。下一次重新训练模型时,组件112可将保留的文字添加到物化样本或从原始关系随机收集的新样本。
在本发明的不同实施例中,取决于所建议模型(例如,CFF模型)的实际实施,还可使用错过预测的所收集的点来调整模型参数,而不是完全重新训练。在本发明的不同实施例中,组件112可以自动或手动模式收集列统计和多列统计以通过考虑多个值之间的统计相关性而对数据改变更稳健。在本发明的不同实施例中,当发生较大数据改变并且模型的预测开始累积较大误差时,可以完全重新训练所建议模型,其中较大数据改变包括需要更多存储器和/或计算能力的数据的改变。在本发明的另一实施例中,其中ML模型被用于预测操作成本或存储器,所使用的实际操作成本或存储器可被检索并且用于与所估计的成本和/或存储器进行比较,以便确定所估计的成本和/或存储器的准确性和/或识别是否存在任何成本或存储器节省或是否存在可被减少以证明成本或存储器节省的区域。
在本发明的不同实施例中,组件112可以识别模型的预测何时开始累积误差,并且可以激活自动反馈以触发模型重新训练动作。组件112可以相对于从所执行的访问计划的每个单独的组件收集的实际基数来测量模型的性能。另外,在本发明的不同实施例中,如果优化器组件基于列的关系或组识别出没有模型被预先构建,则组件112可以使用观察到的反馈来确定列的关系或组具有构建新模型的可能性。组件112可以将用于构建模型的模型的列表和列的列表存储在本地存储装置104和/或共享存储装置124上的数据库表中,其中所存储的模型的列表和列的列表可以与用于构建模型的模型的未来列表和列的列表一起被检索、引用和/或比较。在本发明的不同实施例中,组件112可以在数据库服务期间在重新训练之后测试新的或重新训练的模型和/或回退到先前模型,其中模型版本和训练时间戳被维持(例如,存储)以使得模型能够基于维持的模型版本和训练时间戳从其当前模型版本恢复到先前模型版本。
图2示出了根据本发明的实施例的描绘用于查询优化的自动反馈和连续学习的在图1的分布式数据处理环境100内与计算设备110和/或服务器计算机120通信的组件112的框图。图2提供了一个实施方式的图示,并且不暗示关于其中可以实施不同实施例的环境的任何限制。本领域技术人员可对所描绘的环境作出许多修改,而不脱离权利要求书所述的本发明的范围。
在本发明的不同实施例中,组件112可以是自适应且连续学习的;此外,组件112可以使基数估计的性能反馈自动化(例如,通过查询执行计划中的不同操作输入和输出的预测的行数)。在本发明的不同实施例中,组件112包括两个主要过程:数据发现和工作负荷反馈。数据发现过程由发现组件142执行,发现组件142执行对存储在数据库中和/或从数据输入接收的数据和元数据(目录210)的分析,以识别每个表内和多个表之间的关系和/或相关性。在先前发明的不同实施例中,组件112可以从在线搜索引擎和/或在线数据库中搜索和检索目录210。数据发现过程预先准备具有在查询编译和优化期间可用的现有模型(例如,模型212)的系统。
工作负荷反馈过程通过查询优化器反馈和运行时反馈识别用于改进基数估计的机会。由查询优化器组件(优化器组件)148在查询编译期间执行查询优化器反馈,其中优化器组件148可以基于查询结构来识别相关性和关系。例如,如果模型存在于列C1、C2、C3上的表“T”上,但是多个查询包括引用C2和C3上的表达式的谓词,诸如,C2=‘xyz’AND C4=10AND MOD(C3,5)=0,则查询反馈将识别C4和表达式MOD(C3,5)缺失并且当重新训练和评估时应当被添加到模型。在所描绘的实施例中,运行时反馈由运行时引擎146执行,其中运行时引擎146可从查询的执行中收集数据以识别对性能至关重要的误差(例如,如先前描述的优化器的估计中的错过预测的点与实际执行反馈相对)。也可使用错过预测的点来调整模型参数,而不是重新训练完整模型。
在所描绘的实施例中,机器学习引擎(引擎)144可执行以下步骤:评估144a、生成或修改一个或多个模型144b、以及训练一个或多个模型144c。在评估步骤(即,评估144a)期间,来自发现过程数据和反馈过程数据两者的输入数据被累积,从这些数据中识别要构建或修改的模型的集合(例如,模型212)。如果数据或工作负荷改变了预定量,或者模型212缺乏与工作负荷相关的属性(即,列)的覆盖,则可能需要重新训练一个或多个模型。评估步骤(即,评估144a)包括识别现有和/或运行/操作模型(即,适当模型)已经存在,但是如果模型不再实现所需的性能水平,或者如果模型最近被更新,则可能需要重新训练操作,从而自动恢复到先前模型。如果模型不再实现所需的性能水平,则评估144a可以识别是否需要重新训练操作。在本发明的不同实施例中,在评估144a期间,引擎144可以识别最近经更新的模型是否实现比先前模型更低的性能,在经更新的模型实现更低性能的情况下,引擎144可以自动恢复到先前模型。
在本发明的不同实施例中,在评估144a期间,引擎144可以确定现有模型是否可以用将花费更多时间重新训练的附加预定列来增强,并且可以识别现有模型是否需要被适当地分裂成两个或更多个模型来减少训练时间或模型大小。在本发明的不同实施例中,在生成步骤(生成或修改模型144b)期间,引擎144基于来自评估步骤的输入要求来构建或更新模型(即,模型212)。模型212可以是数据库管理系统中的一个或多个模型或模型的集合。在本发明的不同实施例中,在训练步骤144c期间,引擎144可以发起新模型的完全初始训练,或者可以发起现有模型的重新训练,或者可以执行对模型的增量更新,这取决于在评估步骤中执行的评估。
在本发明的不同实施例中,在查询编译期间,查询编译器可以查找存储在数据库(共享和/或本地存储)或在线的模型,并且检索一个或多个可用模型,并且使它们可用于在查询优化期间使用。应当理解,该系统不视CFF模型而定。这是本发明的一个实施例,并且该系统可适于与任何模型无缝地工作,例如,学习、开发、检索和/或指示(例如,统计模型或小样本)。此外,本发明的一些实施例不限于基数估计,而是可以用于查询优化的任何方面。例如,该方法可以容易地适于估计操作的不同成本,诸如I/O、CPU、网络和/或存储器使用。
在本发明的不同实施例中,运行时引擎146可以执行运行时反馈的实施方式。在本发明的不同实施例中,在基数估计的上下文中,运行时引擎146可识别并检索查询中的每个关系或执行计划中的运算符的实际行数,其中实际行数可被预先确定。在本发明的不同实施例中,运行时引擎146可将检索到的实际行数与预测的基数进行比较,其中高于或低于预定阈值的基数估计作为点存储在一个或多个独立的表中,并且在预定阈值内或等于预定阈值的基数估计被存储和维持在当前表中。在本发明的各种实施例中,下一次重新训练模型时,可以将存储的点添加到物化样本或新的随机收集的样本。用于在数据库表中构建一个或多个模型的模型的列表和列的列表被存储在本地存储装置104和/或共享存储装置124上,其中所存储的模型的列表和列的列表可被检索并被用于解决未来查询、模型重新训练、模型构建、和/或本领域已知的任何其他动作。在本发明的不同实施例中,组件112可以存储和/或维持新的或经重新训练的模型的模型版本和训练时间戳。在本发明的不同实施例中,组件112可以基于所存储的模型版本和训练时间戳在重新训练之后执行到先前模型(即,所存储的模型)的回退命令(即,回退)。
在本发明的不同实施例中,优化器组件148可以执行连续学习的实施方式。在本发明的不同实施例中,在基数估计的上下文中,组件112可以在通知由优化器组件148选择的任何计划改变之前确定和识别一个或多个查询是否落入误差阈值(例如,一个或多个查询中一个数量级的误差带宽被认为是可接受的)之下。未能落入误差阈值的查询被认为是用于连续学习的候选。
图3示出了根据本发明实施例的用于查询优化的自动反馈和连续学习的在图1的分布式数据处理环境100内的与计算设备110通信的组件112的操作步骤(一般指定为300)。图3提供了一个实施方式的图示,并且不暗示关于其中可以实施不同实施例的环境的任何限制。本领域技术人员可对所描述的环境作出许多修改,而不脱离权利要求书所述的本发明的范围。
在步骤302中,组件112对数据和目录执行数据发现。在本发明的不同实施例中,组件112经由发现组件142对接收和/或检索的目录210执行数据发现,其中数据发现过程包括发现组件142对数据库内的数据和元数据(即,目录210)执行分析以识别多个表内和多个表之间的关系、偏斜和/或相关性。这使系统预先准备好在查询编译和优化期间可用的模型。在本发明的不同实施例中,发现组件142可以从本地存储装置104、共享存储装置124和/或在线搜索引擎检索和/或接收目录210。
在步骤304中,组件112识别在数据库中的每个表内和多个表之间的感兴趣的关系和相关性的集合。在本发明的各种实施例中,组件112可使用数据发现过程(类似于图2)经由发现组件142识别数据库中的一个或多个表内和多个表之间的感兴趣的关系和相关性的一个或多个集合,其中数据发现过程使用预定标准执行对数据库中的数据和元数据的分析。在本发明的不同实施例中,可基于预先确定的数据、参数和/或标准来识别感兴趣的关系和相关性的一个或多个集合。
在步骤306中,组件112生成模型或模型的集合。在本发明的不同实施例中,组件112可以经由机器学习引擎144使用利用预定标准识别的感兴趣的关系和相关性的集合来生成模型的集合。在一些实施例中,模型的集合可以是潜在有用的模型的集合,意味着生成的模型在某个时间点在某个兼容性中可以是有用的或被使用的。在本发明的不同实施例中,组件112可以经由机器学习引擎144(例如,基于来自评估步骤的输入要求)构建或更新一个或多个模型。
在步骤308中,组件112执行运行时反馈。在本发明的不同实施例中,组件112经由运行时引擎146来执行运行时反馈。在本发明的各个实施例中,组件112可以经由运行时引擎146从查询的执行中收集数据以识别优化器的估计中的误差。可使用错过预测的点来调整模型参数,而不是完全重新训练整个模型。
在步骤310中,组件112执行查询反馈。在不同实施例中,组件112经由优化器组件148在查询编译期间执行查询反馈。在不同实施例中,组件112经由优化器组件148可以基于一个或多个查询优化器反馈结构和运行时引擎146所执行的运行时反馈来识别相关性和关系。
在步骤312中,组件112识别用于改进基数估计的机会。在本发明的不同实施例中,组件112可以经由优化器组件148使用包括在查询编译期间由查询优化器(例如,优化器组件148)执行的查询反馈的工作负荷反馈过程(如上所述)来识别用于改进基数估计的机会。在本发明的不同实施例中,组件112可经由优化器组件148基于查询反馈和运行时反馈来识别用于改进基数估计的机会。在本发明的不同实施例中,组件112可以经由机器学习引擎144累积和评估来自发现和反馈过程(类似于图2,评估步骤(评估144a))的输入数据,从这些数据中识别要构建或修改的模型的集合。评估步骤(即,评估144a)包括识别适当的模型已经存在,但是如果模型不再实现所需的性能水平,则可能需要重新训练操作,或者如果模型最近被更新,则自动恢复到先前模型。如果模型不再实现所需的性能水平,则评估144a可以识别是否需要重新训练操作。
在步骤314中,组件112基于查询的结构和运行时反馈来识别相关性和关系。在本发明的不同实施例中,组件112可以经由运行时引擎146基于查询的结构和运行时反馈来识别感兴趣的相关性和关系。
在步骤316中,组件112从查询的执行中收集数据以识别查询优化器的估计中的误差。在本发明的不同实施例中,组件112可以经由优化器组件148从查询的执行收集数据以识别查询优化器(即,优化器组件148)的估计中的误差;以及向机器学习引擎144提交查询反馈和运行时反馈以更新潜在有用的模型的集合。
在步骤318中,组件112训练生成的模型。在本发明的不同实施例中,组件112可以经由机器学习引擎144来训练一个或多个生成的模型。在本发明的不同实施方式中,组件112可以经由机器学习引擎144发起新模型的完全初始训练、发起现有模型的重新训练、或者执行模型的增量更新,这取决于在图2中的评估步骤中执行的评估。
在步骤320中,组件112输出新的、更新的或重新训练的模型。在本发明的不同实施例中,组件112可以经由机器学习引擎144基于从查询的执行中收集的数据来输出一个或多个新的、经更新的或经重新训练的模型,以识别查询优化器的估计、所提交的查询反馈和运行时反馈、和/或一个或多个经训练的生成的模型中的误差。
图4示出了根据本发明实施例的用于查询优化的自动反馈和连续学习的的在图1的分布式数据处理环境100内的与计算设备110通信的组件112的操作步骤(整体指定为400)。图4提供了一个实施方式的图示并且不暗示关于其中可以实施不同实施例的环境的任何限制。本领域技术人员可对所描绘的环境作出许多修改,而不脱离权利要求书所述的本发明的范围。
在步骤402中,组件112检索查询中的每个关系或执行计划中的运算符的实际行数。在本发明的不同实施例中,组件112可以检索查询中的一个或多个关系和/或执行计划中的运算符的行数,其中实际行数可以针对查询中的一个或多个关系和/或执行计划中的运算符而预先确定。
在步骤404中,组件112识别在预定阈值内的基数估计。在本发明的不同实施例中,组件112可通过将检索到的行数与预测的基数进行比较来确定和识别基数估计是否在预定阈值内。
在步骤406中,组件112将基数估计存储在独立的表中。在所描绘的实施例中,组件112可将高于或低于特定阈值(例如,在特定预定阈值内)的基数估计存储在存储器中的单独压缩结构中。在本发明的不同实施例中,组件112可以仅保留谓词文字和谓词信息。
在步骤408,组件112将所存储的谓词文字添加到物化样本。在本发明的不同实施例中,组件112可以将一个或多个保留的文字添加到物化样本或从原始关系中随机收集的新样本。
在步骤410中,组件112识别误差累积。在本发明的不同实施例中,组件112可以识别模型的预测何时开始累积误差。在本发明的不同实施例中,取决于所建议的模型的实际实施,还可使用错过预测的所收集的点来调整模型参数,而不是再次完全重新训练模型。在本发明的不同实施例中,组件112可以自动或手动模式收集列统计和多列统计,以通过考虑多个值之间的统计相关性而对数据改变更稳健。在本发明的不同实施例中,当发生较大数据变化时,可以完全重新训练所建议的CFF模型,并且该模型的预测开始累积较大误差。
在步骤412中,组件112激活自动反馈。在本发明的不同实施例中,组件112可以激活自动反馈以触发模型重新训练动作。
在步骤414中,组件112测量模型的性能。在本发明的不同实施例中,组件112可以相对于从所执行的访问计划的一个或多个单独组件收集的实际基数来测量一个或多个模型的性能。
在步骤416中,组件112识别列的哪个关系组具有构建新模型的可能性。在本发明的不同实施例中,一旦优化器认识到没有模型被预先构建在列的关系或组上,组件112就可以利用观察到的反馈来确定和识别哪些列的关系或组具有构建新模型的可能性。
在步骤418中,组件112将模型的列表存储在数据库上。在本发明的不同实施例中,组件112可以将模型的一个或多个列表和用于构建模型的列的列表存储在本地存储装置104和/或共享存储装置124上的数据库表中。
在步骤420中,组件112测试模型。在本发明的不同实施例中,组件112可以测试一个或多个新的或重新训练的模型和/或在重新训练之后回退到先前模型,有可能避免对数据库供应商的数据库服务调用。另外,在不同实施例中,模型版本和训练时间戳被维持以自动地或如数据库供应商所指导地恢复到先前模型版本(如果存在可能的问题)。
在步骤422中,组件112输出模型。在本发明的不同实施例中,组件112可以基于所存储的模型的列表和所测试的模型来输出和执行一个或多个模型和/或输出和执行先前执行的模型(即,回退到先前模型)。
图5描绘了根据本发明的实施例的在图1的分布式数据处理环境100内的服务器计算机120的组件的框图。应当理解,图5仅提供一个实施方式的图示并且不暗示关于其中可以实现不同实施例的环境的任何限制。可以对所描绘的环境做出许多修改。
图5描绘了计算机系统500,其中服务器计算120表示包括组件112的计算机系统500的示例。计算机系统包括处理器501、高速缓存503、存储器502、永久性存储装置505、通信单元507、输入/输出(I/O)接口506、显示器509、外部设备508和通信结构504。通信结构504提供高速缓存503、存储器502、永久性存储装置505、通信单元507和输入/输出(I/O)接口506之间的通信。通信结构504可以用被设计用于在处理器(诸如微处理器、通信和网络处理器等)、系统存储器、外围设备和系统内的任何其他硬件组件之间传递数据和/或控制信息的任何架构来实施。例如,通信结构504可用一个或多个总线或纵横开关来实施。
存储器502和永久性存储装置505是计算机可读存储介质。在该实施例中,存储器502包括随机存取存储器(RAM)。通常,存储器502可以包括任何合适的易失性或非易失性计算机可读存储介质。高速缓存503是通过保存来自存储器502的最近访问的数据和最近访问的数据附近的数据来增强处理器501的性能的快速存储器。
用于实践本发明的实施例的程序指令和数据可以存储在永久性存储装置505和存储器502中,用于由相应处理器501中的一个或多个经由高速缓存503执行。在实施例中,永久性存储装置505包括磁性硬盘驱动器。可替代地,或除了磁性硬盘驱动之外,永久性存储装置505可以包括固态硬盘驱动、半导体存储设备、只读存储器(ROM)、可擦除可编程只读存储器(EPROM)、闪存、或能够存储程序指令或数字信息的任何其他计算机可读存储介质。
永久性存储装置505所使用的介质也可以是可移除的。例如,可移动硬盘驱动器可以用于永久性存储装置505。其他示例包括光盘和磁盘、拇指驱动器和智能卡,它们被插入到驱动器中以便转移到也是永久性存储装置505的一部分的另一计算机可读存储介质上。
在这些示例中,通信单元507提供与其他数据处理系统或设备的通信。在这些示例中,通信单元507包括一个或多个网络接口卡。通信单元507可以通过使用物理和/或无线通信链路提供通信。用于实践本发明的实施例的程序指令和数据可以通过通信单元507下载到永久性存储装置505。
I/O接口506使得能够与可以连接到每个计算机系统的其他设备进行数据的输入和输出。例如,I/O接口506可以提供至外部设备508(诸如键盘、小键盘、触摸屏和/或一些其他合适的输入设备)的连接。外部设备508还可包括便携式计算机可读存储介质,诸如例如拇指驱动器、便携式光盘或磁盘、以及存储卡。用于实践本发明的实施例的软件和数据可以存储在这种便携式计算机可读存储介质上并且可以经由I/O接口506加载到永久性存储装置505上。I/O接口506还连接到显示器509。
显示器509提供将数据显示给用户的机制并且可以是例如计算机监视器。
本文描述的程序是基于应用在本发明的具体实施例中实施的来识别的。然而,应当理解,本文中的任何特定程序术语仅为了方便而使用,并且因此本发明不应局限于仅在由这样的术语标识和/或暗示的任何特定应用中使用。
本发明可以是系统、方法和/或计算机程序产品。计算机程序产品可包括其上具有用于使处理器执行本发明的各方面的计算机可读程序指令的计算机可读存储介质(或多个介质)。
计算机可读存储介质可以使可保留和存储供指令执行装置使用的指令的任何有形装置。计算机可读存储介质可以是,例如但不限于,电子存储设备、磁存储设备、光存储设备、电磁存储设备、半导体存储设备、或者上述的任意合适的组合。计算机可读存储介质的更具体的示例的非穷尽列表包括以下各项:便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、静态随机存取存储器(SRAM)、便携式紧凑盘只读存储器(CD-ROM)、数字通用盘(DVD)、记忆棒、软盘、诸如穿孔卡之类的机械编码设备或者凹槽中具有记录在其上的指令的凸起结构、以及上述各项的任何合适的组合。如本文所使用的计算机可读存储介质不应被解释为暂时性信号本身,例如无线电波或其他自由传播的电磁波、通过波导或其他传输介质传播的电磁波(例如,穿过光纤电缆的光脉冲)或通过电线发射的电信号。
本文描述的计算机可读程序指令可以经由网络(例如,互联网、局域网、广域网和/或无线网络)从计算机可读存储介质下载到相应的计算/处理设备,或者下载到外部计算机或外部存储设备。网络可以包括铜传输电缆、光传输纤维、无线传输、路由器、防火墙、交换机、网关计算机和/或边缘服务器。每个计算/处理设备中的网络适配器卡或网络接口接收来自网络的计算机可读程序指令,并转发计算机可读程序指令以存储在相应计算/处理设备内的计算机可读存储介质中。
用于执行本发明的操作的计算机可读程序指令可以是汇编指令、指令集架构(ISA)指令、机器指令、机器相关指令、微代码、固件指令、状态设置数据、或以一种或多种程序设计语言的任何组合编写的源代码或目标代码,这些程序设计语言包括面向对象的程序设计语言(诸如Smalltalk、C++等)和常规的过程式程序设计语言(诸如“C”程序设计语言或类似程序设计语言)。计算机可读程序指令可以完全地在用户计算机上执行、部分在用户计算机上执行、作为独立软件包执行、部分在用户计算机上部分在远程计算机上执行或者完全在远程计算机或服务器上执行。在后一种情况下,远程计算机可通过任何类型的网络(包括局域网(LAN)或广域网(WAN))连接至用户计算机,或者可连接至外部计算机(例如,使用互联网服务提供商通过互联网)。在一些实施例中,包括例如可编程逻辑电路、现场可编程门阵列(FPGA)或可编程逻辑阵列(PLA)的电子电路可以通过利用计算机可读程序指令的状态信息来使电子电路个性化来执行计算机可读程序指令,以便执行本发明的各方面。
下面将参照根据本发明实施例的方法、装置(系统)和计算机程序产品的流程图和/或框图描述本发明。应当理解,流程图和/或框图的每个框以及流程图和/或框图中各框的组合,都可以由计算机可读程序指令实现。
这些计算机可读程序指令可被提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器以产生机器,使得经由计算机或其他可编程数据处理装置的处理器执行的指令创建用于实现在流程图和/或框图的或多个框中指定的功能/动作的装置。也可以把这些计算机可读程序指令存储在计算机可读存储介质中,这些指令使得计算机、可编程数据处理装置、和/或其他设备以特定方式工作,从而其中存储有指令的计算机可读存储介质包括包含实现流程图和/或框图中的或多个框中规定的功能/动作的方面的指令的制造品。
也可以把计算机可读程序指令加载到计算机、其他可编程数据处理装置、或其他设备上,使得在计算机、其他可编程装置或其他设备上执行一系列操作步骤,以产生计算机实现的处理,使得在计算机、其他可编程装置或其他设备上执行的指令实现流程图和/或框图中的或多个框中规定的功能/动作。
图中的流程图和框图示出了根据本发明的各种实施方式的系统、方法和计算机程序产品的可能的实施方式的架构、功能和操作。对此,流程图或框图中的每个框可表示包括用于实现指定的逻辑功能的一个或多个可执行指令的模块、段或指令的一部分。在一些可替换的实施方式中,框中标注的功能可以不按照图中标注的顺序发生。例如,取决于所涉及的功能,连续示出的两个框实际上可以基本上同时执行,或者这些框有时可以以相反的顺序执行。也要注意的是,框图和/或流程图中的每个框、以及框图和/或流程图中的框的组合,可以用执行规定的功能或动作或执行专用硬件与计算机指令的组合的专用的基于硬件的系统来实现。
已经出于说明的目的呈现了本发明的各种实施方式的描述,但并不旨在是详尽的或者限于所公开的实施方式。在不脱离本发明的范围和精神的情况下,许多修改和变化对于本领域普通技术人员来说是显而易见的。本文所使用的术语被选择来最好地解释实施例的原理、实际应用、或优于市场中所发现的技术的技术改进、或使得本领域普通技术人员能够理解本文所披露的实施例。
Claims (25)
1.一种用于查询优化的计算机实施的方法,所述方法包括:
由查询优化器使用包括在查询编译期间执行的查询反馈的工作负荷反馈过程来识别用于基数估计的改进的机会;
由运行时引擎基于所述查询反馈的结构和所执行的运行时反馈来识别相关性和关系;
由所述查询优化器从查询的执行中收集数据以识别所述查询优化器的估计中的误差;
由所述查询优化器将所述查询反馈和所述运行时反馈提交给机器学习引擎以更新模型的集合;
由机器学习引擎基于所提交的查询反馈和运行时反馈来更新模型的集合;以及
基于从所述查询的执行中收集的数据来输出新的、经更新的或经重新训练的模型,以识别所述查询优化器的估计、所提交的查询反馈和所述运行时反馈或经训练的生成的模型中的误差。
2.根据权利要求1所述的计算机实施的方法,还包括:
由所述机器学习引擎使用利用预定第一标准识别的感兴趣的列关系或相关性的集合来生成所述模型的集合;
由发现组件使用预定第二标准对接收的数据和元数据执行数据发现,其中所述数据发现包括执行对所述数据和所述元数据的分析以识别表中的列之间的关系和相关性;以及
由数据发现过程识别在数据库中的多个表内和多个表之间的具有感兴趣的关系或相关性的列的集合。
3.根据权利要求1所述的计算机实施的方法,还包括:
由所述运行时引擎执行所述运行时反馈,其中所述运行时引擎从所述查询的执行中收集数据以识别所述查询优化器的估计中的误差,并且使用错过预测的点来调整一个或多个模型参数,而不是重新训练整个模型;以及
由所述查询优化器在所述查询编译期间执行查询反馈。
4.根据权利要求1所述的计算机实施的方法,还包括:
通过机器学习引擎训练所述模型的集合,其中,所述机器学习引擎可以根据评估发起新模型的完全初始训练、发起现有模型的重新训练或者执行模型的增量更新。
5.根据权利要求1所述的计算机实施的方法,还包括:
确定用将花费更多时间来重新训练的附加预定列来增强现有模型;以及
将所述现有模型分裂成两个或两个以上模型以减小训练时间或模型大小。
6.根据权利要求1所述的计算机实施的方法,其中,训练包括:
识别候选列而不需要通过预定数据库接口执行针对预定数据的整个集合的查询。
7.根据权利要求1所述的计算机实施的方法,还包括:
在重新训练之后回退到先前模型,其中模型版本和训练时间戳被维持以恢复到当前模型的先前版本。
8.一种用于查询优化的计算机实施的方法,所述方法包括:
通过将一个或多个检索到的行数与基于预测的基数的一个或多个行进行比较来识别在预定阈值内的基数估计;
将一个或多个保留的文字添加到物化样本或随机收集的新样本;
识别模型的预测何时开始累积误差,其中使用错过预测的所收集的点来调整模型参数,而不是完全重新训练所述模型;
通过考虑多个值之间的统计相关性,以自动或手动模式收集列和多列统计以对数据改变更稳健;
激活自动反馈以触发模型中的重新训练动作;
相对于从执行的访问计划的一个或多个个别组件收集的实际基数,测量一个或多个模型估计的基数的性能;
基于来自所测量的性能的观察到的反馈,识别具有构建新模型的可能性的列的关系或列的组,其中一旦优化器识别没有模型被预先构建在所述列的关系或组上,观察到的反馈用于识别哪个列的关系或列的组具有构建所述新模型的可能性;
测试新构建的模型或经重新训练的模型;以及
基于存储的模型的列表和所测试的模型来执行模型。
9.根据权利要求8所述的计算机实施的方法,还包括:
检索查询中的一个或多个关系或执行计划中的运算符的行数;以及
识别在预定阈值内的基数估计,其中识别在所述预定阈值内的所述基数估计包括:
将检索到的行与所述一个或多个预测的基数进行比较。
10.根据权利要求8所述的计算机实施的方法,还包括:
在存储器中的单独的压缩结构中存储高于或低于特定阈值的所述基数估计;以及
基于存储的模型的列表和测试的模型来输出所述一个或多个模型。
11.根据权利要求8所述的计算机实施的方法,还包括:
在所述模型的重新训练之后回退到先前模型,其中模型版本和训练时间戳被维持以恢复到当前模型的先前版本。
12.根据权利要求8所述的计算机实施的方法,还包括:
确定用将花费更多时间重新训练的附加预定列来增强现有模型;以及
将所述现有模型分裂成两个或更多个模型以减小训练时间或模型大小。
13.一种用于查询优化的计算机程序产品,所述计算机程序产品包括:
一个或多个计算机可读存储设备以及存储在所述一个或多个计算机可读存储设备上的程序指令,所存储的程序指令包括:
用于由查询优化器使用包括在查询编译期间执行的查询反馈的工作负荷反馈过程来识别用于改进基数估计的机会的程序指令;
用于由运行时引擎基于所述查询反馈的结构和所执行的运行时反馈来识别相关性和关系的程序指令;
用于由所述查询优化器从查询的执行中收集数据以识别所述查询优化器的估计中的误差的程序指令;
用于由所述查询优化器将所述查询反馈和所述运行时反馈提交给机器学习引擎以更新所述模型的集合的程序指令;
用于由所述机器学习引擎基于所提交的查询反馈和运行时反馈来更新所述模型的集合的程序指令;以及
用于基于从所述查询的执行中收集的数据输出新的、经更新的、或经重新训练的模型来识别所述查询优化器的估计、所提交的查询反馈和运行时反馈、或经训练的生成的模型中的误差的程序指令。
14.根据权利要求13所述的计算机程序产品,还包括:
由所述运行时引擎执行所述运行时反馈的程序指令,其中所述运行时引擎从所述查询的执行中收集数据以识别所述查询优化器的估计中的误差,并且使用错过预测的点来调整一个或多个模型参数,而不是重新训练整个模型;以及
用于由所述查询优化器在所述查询编译期间执行查询反馈的程序指令。
15.根据权利要求13所述的计算机程序产品,还包括:
用于确定用将花费更多时间重新训练的附加预定列来增强现有模型的程序指令;以及
用于将所述现有模型分割成两个或更多个模型以减少训练时间或模型大小的程序指令。
16.根据权利要求13所述的计算机程序产品,还包括:
用于在数据库服务期间在重新训练之后回退到先前模型的程序指令,其中模型版本和训练时间戳被维持以恢复到当前模型的先前版本。
17.一种用于查询优化的计算机系统,所述计算机系统包括:
一个或多个计算机处理器;
一个或多个计算机可读存储设备;
存储在所述一个或多个计算机可读存储设备上的用于由所述一个或多个计算机处理器中的至少一个执行的程序指令,所存储的程序指令包括:
用于由查询优化器使用包括在查询编译期间执行的查询反馈的工作负荷反馈过程来识别用于改进基数估计的机会的程序指令;
用于由运行时引擎基于所述查询反馈的结构和所执行的运行时反馈来标识相关性和关系的程序指令;
用于由所述查询优化器从查询的执行中收集数据以识别所述查询优化器的估计中的误差的程序指令;
用于由所述查询优化器将所述查询反馈和所述运行时反馈提交给机器学习引擎以更新模型的集合的程序指令;
用于由所述机器学习引擎基于所提交的查询反馈和运行时反馈来更新所述模型的集合的程序指令;以及
用于基于从所述查询的执行中收集的数据输出新的、经更新的、或经重新训练的模型以识别所述查询优化器的估计、所提交的查询反馈和运行时反馈、或经训练的生成的模型中的误差的程序指令。
18.根据权利要求17所述的计算机系统,还包括:
用于由所述机器学习引擎使用利用预定第一标准识别的感兴趣的关系或相关性的集合来生成模型的集合的程序指令;
用于由发现组件使用预定第二标准对接收的数据和元数据执行数据发现的程序指令,其中所述数据发现包括执行对所述数据和所述元数据的分析以识别表之间的关系和相关性;以及
用于由数据发现过程识别数据库中的多个表内和多个表之间的感兴趣的关系或相关性的集合的程序指令。
19.根据权利要求17所述的计算机系统,还包括:
由所述运行时引擎执行所述运行时反馈的程序指令,其中所述运行时引擎从所述查询的执行中收集数据以识别所述查询优化器的估计中的误差,并且使用错过预测的点来调整一个或多个模型参数,而不是重新训练整个模型;以及
用于由所述查询优化器在所述查询编译期间执行查询反馈的程序指令。
20.根据权利要求17所述的计算机系统,还包括:
用于确定用将花费更多时间重新训练的附加预定列来增强现有模型的程序指令;以及
将所述现有模型分裂成两个或更多个模型以减少训练时间或模型大小的程序指令。
21.根据权利要求17所述的计算机系统,还包括:
用于在数据库服务期间在重新训练之后回退到先前模型的程序指令,其中模型版本和训练时间戳被维持以恢复到当前模型的先前版本。
22.一种用于查询优化的计算机系统,所述计算机系统包括:
一个或多个计算机处理器;
一个或多个计算机可读存储设备;
存储在所述一个或多个计算机可读存储设备上的用于由所述一个或多个计算机处理器中的至少一个执行的程序指令,所存储的程序指令包括:
用于将一个或多个检索到的行数与通过基于预测的基数的一个或多个行进行比较来识别在预定阈值内的基数估计的程序指令;
用于将一个或多个保留的文字添加到物化样本或随机收集的新样本的程序指令;
用于识别模型的预测何时开始累积误差的程序指令,其中使用错过预测的收集的点来调整模型参数,而不是完全重新训练所述模型;
用于通过考虑多个值之间的统计相关性来以自动或手动模式收集列统计和多列统计以对数据改变更稳健的程序指令;
用于激活自动反馈以触发所述模型中的重新训练动作的程序指令;
用于测量一个或多个模型估计的基数相对于从执行的访问计划的一个或多个个别组件收集的实际基数的性能的程序指令;
用于基于来自所测量的性能的观察到的反馈来识别具有构建新模型的可能性的列的关系或组的程序指令,其中一旦优化器识别出没有模型被预先构建在所述列的关系或组上,观察到的反馈就被用于识别具有构建新模型的可能性的列的关系或组;
用于测试新构建的模型或经重新训练的模型的程序指令;以及
用于基于所存储的模型的列表和所测试的模型来执行模型的程序指令。
23.根据权利要求22所述的计算机系统,还包括:
检索查询中的一个或多个关系或执行计划中的运算符的行数;
识别在预定阈值内的基数估计,其中识别在所述预定阈值内的基数估计包括:
将所述一个或多个检索到的行数与预测的基数进行比较;
在存储器中的单独的压缩结构中存储高于或低于特定阈值的所述基数估计;以及
基于所存储的模型的列表和所测试的模型来输出所述一个或多个模型。
24.根据权利要求22所述的计算机系统,还包括:
在所述模型的所述重新训练之后回退到先前模型,其中模型版本和训练时间戳被维持以恢复到当前模型的先前版本。
25.根据权利要求22所述的计算机系统,还包括:
确定用将花费更多时间重新训练的附加预定列来增强现有模型;以及
将所述现有模型分裂成两个或两个以上模型以减小训练时间或模型大小。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US16/917,987 US11593372B2 (en) | 2020-07-01 | 2020-07-01 | Automated feedback and continuous learning for query optimization |
US16/917,987 | 2020-07-01 | ||
PCT/IB2021/055328 WO2022003469A1 (en) | 2020-07-01 | 2021-06-16 | Automated feedback and continuous learning for query optimization |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115769198A true CN115769198A (zh) | 2023-03-07 |
Family
ID=79166991
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202180047556.4A Pending CN115769198A (zh) | 2020-07-01 | 2021-06-16 | 用于查询优化的自动反馈和连续学习 |
Country Status (6)
Country | Link |
---|---|
US (1) | US11593372B2 (zh) |
JP (1) | JP2023530947A (zh) |
CN (1) | CN115769198A (zh) |
DE (1) | DE112021002883T5 (zh) |
GB (1) | GB2611727A (zh) |
WO (1) | WO2022003469A1 (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116108072A (zh) * | 2023-04-04 | 2023-05-12 | 阿里巴巴(中国)有限公司 | 数据查询方法及查询预测模型训练方法 |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11593372B2 (en) | 2020-07-01 | 2023-02-28 | International Business Machines Corporation | Automated feedback and continuous learning for query optimization |
US11797353B2 (en) * | 2020-10-29 | 2023-10-24 | EMC IP Holding Company LLC | Method and system for performing workloads in a data cluster |
US11921719B1 (en) | 2022-09-14 | 2024-03-05 | International Business Machines Corporation | Automated query selectivity predictions using query graphs |
Family Cites Families (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6763359B2 (en) * | 2001-06-06 | 2004-07-13 | International Business Machines Corporation | Learning from empirical results in query optimization |
US8185519B2 (en) | 2009-03-14 | 2012-05-22 | Microsoft Corporation | Techniques for exact cardinality query optimization |
CN103365885B (zh) | 2012-03-30 | 2016-12-14 | 国际商业机器公司 | 用于数据库查询优化的方法和系统 |
US10437843B2 (en) | 2014-07-29 | 2019-10-08 | Microsoft Technology Licensing, Llc | Optimization of database queries via transformations of computation graph |
US11507624B2 (en) | 2014-11-18 | 2022-11-22 | Yahoo Assets Llc | Method and system for providing query suggestions based on user feedback |
US10706354B2 (en) | 2016-05-06 | 2020-07-07 | International Business Machines Corporation | Estimating cardinality selectivity utilizing artificial neural networks |
US20190203475A1 (en) | 2018-01-04 | 2019-07-04 | Vkr Holding A/S | Skylight diffuser accessory |
US11074256B2 (en) * | 2018-03-30 | 2021-07-27 | Microsoft Technology Licensing, Llc | Learning optimizer for shared cloud |
US11334538B2 (en) * | 2019-05-31 | 2022-05-17 | Microsoft Technology Licensing, Llc | System and method for cardinality estimation feedback loops in query processing |
US11748350B2 (en) * | 2020-02-21 | 2023-09-05 | Microsoft Technology Licensing, Llc | System and method for machine learning for system deployments without performance regressions |
US11593372B2 (en) | 2020-07-01 | 2023-02-28 | International Business Machines Corporation | Automated feedback and continuous learning for query optimization |
-
2020
- 2020-07-01 US US16/917,987 patent/US11593372B2/en active Active
-
2021
- 2021-06-16 DE DE112021002883.9T patent/DE112021002883T5/de active Pending
- 2021-06-16 JP JP2022577155A patent/JP2023530947A/ja active Pending
- 2021-06-16 CN CN202180047556.4A patent/CN115769198A/zh active Pending
- 2021-06-16 WO PCT/IB2021/055328 patent/WO2022003469A1/en active Application Filing
- 2021-06-16 GB GB2301286.7A patent/GB2611727A/en active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116108072A (zh) * | 2023-04-04 | 2023-05-12 | 阿里巴巴(中国)有限公司 | 数据查询方法及查询预测模型训练方法 |
CN116108072B (zh) * | 2023-04-04 | 2023-09-19 | 阿里巴巴(中国)有限公司 | 数据查询方法及查询预测模型训练方法 |
Also Published As
Publication number | Publication date |
---|---|
DE112021002883T5 (de) | 2023-03-09 |
GB202301286D0 (en) | 2023-03-15 |
WO2022003469A1 (en) | 2022-01-06 |
US11593372B2 (en) | 2023-02-28 |
GB2611727A (en) | 2023-04-12 |
JP2023530947A (ja) | 2023-07-20 |
US20220004553A1 (en) | 2022-01-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP3889777A1 (en) | System and method for automating fault detection in multi-tenant environments | |
US11593372B2 (en) | Automated feedback and continuous learning for query optimization | |
US20200050942A1 (en) | Deep learning model for cloud based technical support automation | |
US11409645B1 (en) | Intermittent failure metrics in technological processes | |
US11544621B2 (en) | Cognitive model tuning with rich deep learning knowledge | |
US11403303B2 (en) | Method and device for generating ranking model | |
WO2016018942A1 (en) | Systems and methods for an sql-driven distributed operating system | |
JP5791149B2 (ja) | データベース・クエリ最適化のためのコンピュータで実装される方法、コンピュータ・プログラム、およびデータ処理システム | |
US10474675B2 (en) | Explain tool for optimizing SPARQL queries | |
US20160139961A1 (en) | Event summary mode for tracing systems | |
US8832653B2 (en) | Centralized, object-level change tracking | |
RU2640637C2 (ru) | Способ и сервер проведения контролируемого эксперимента с использованием прогнозирования будущего пользовательского поведения | |
AU2021244852B2 (en) | Offloading statistics collection | |
US20120078912A1 (en) | Method and system for event correlation | |
Cheng et al. | Logai: A library for log analytics and intelligence | |
US11829890B2 (en) | Automated machine learning: a unified, customizable, and extensible system | |
US20220058519A1 (en) | Open feature library management | |
CN113656391A (zh) | 数据检测方法及装置、存储介质及电子设备 | |
US20230068513A1 (en) | Testing models in data pipeline | |
US20230308369A1 (en) | Data migration in application performance monitoring | |
US20230010433A1 (en) | Automatic high-speed display control method for web content | |
CN117520132A (zh) | 系统性能测试的瓶颈分析方法及装置 | |
WO2022271351A1 (en) | Shifting left database degradation detection | |
Hamberg | Association Rule Discovery from Collaborative Mobile Data | |
CN114139091A (zh) | 处理延迟的评估方法、装置、介质及电子设备 |
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 |