CN105138597A - 分析查询优化器性能的设备和方法 - Google Patents

分析查询优化器性能的设备和方法 Download PDF

Info

Publication number
CN105138597A
CN105138597A CN201510468387.8A CN201510468387A CN105138597A CN 105138597 A CN105138597 A CN 105138597A CN 201510468387 A CN201510468387 A CN 201510468387A CN 105138597 A CN105138597 A CN 105138597A
Authority
CN
China
Prior art keywords
information
database
query optimizer
reproduced objects
inquiry
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.)
Granted
Application number
CN201510468387.8A
Other languages
English (en)
Other versions
CN105138597B (zh
Inventor
布莱恩·哈根布赫
西瓦拉姆克里斯南·纳拉亚南
威廉·C·惠普奇
弗洛里安·瓦斯
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.)
Bi Wei Opens Up Software Co
Greenplum Inc
Original Assignee
Bi Wei Opens Up Software Co
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 Bi Wei Opens Up Software Co filed Critical Bi Wei Opens Up Software Co
Publication of CN105138597A publication Critical patent/CN105138597A/zh
Application granted granted Critical
Publication of CN105138597B publication Critical patent/CN105138597B/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/2453Query optimisation
    • G06F16/24534Query rewriting; Transformation
    • G06F16/24542Plan optimisation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0706Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
    • G06F11/0709Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment in a distributed system consisting of a plurality of standalone computer nodes, e.g. clusters, client-server systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0766Error or fault reporting or storing
    • G06F11/0775Content or structure details of the error report, e.g. specific table structure, specific error fields
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0766Error or fault reporting or storing
    • G06F11/0778Dumping, i.e. gathering error/state information after a fault for later diagnosis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0766Error or fault reporting or storing
    • G06F11/0784Routing of error reports, e.g. with a specific transmission path or data flow
    • 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
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/362Software debugging
    • G06F11/366Software debugging using diagnostics
    • 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/24Querying
    • G06F16/245Query processing
    • G06F16/2453Query optimisation
    • G06F16/24534Query rewriting; Transformation
    • G06F16/24537Query rewriting; Transformation of operators
    • 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
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/86Event-based monitoring

Abstract

一种分析查询优化器性能的方法包括识别事件触发。构造表征事件触发时用户计算机的运行参数的再现对象。将该再现对象从用户计算机传送到测试计算机。在测试计算机上分析该再现对象来表征查询优化器的性能。

Description

分析查询优化器性能的设备和方法
本申请是申请日为2010年12月13日、申请号为201080059390.X、发明名为“分析查询优化器性能的设备和方法”的中国专利申请的分案申请。
技术领域
本发明涉及数字数据处理。更具体地,本发明涉及分析查询优化器的性能。
背景技术
查询优化包括将数据库查询转化为在存储于数据库中的数据上执行的高效的程序或者查询方案。数据库查询通常以查询语言表述,如结构化查询语言(SQL)、通用查询语言(CQL)或者多维表达式(MDX)等等,数据库查询被转化为一种或多种可行的查询方案。查询方案列明了一组步骤,用来访问或者修改与查询有关的数据。诸如如何访问给定的数据关系、以何种顺序连接数据关系、排序顺序等详情都有可能形成查询方案的一部分。
对于给定的查询,查询方案的各个不同的组成部分,如访问路径、连接方法和排序顺序,可以产生很多查询方案。典型的数据仓库查询可以形成数亿种可行的方案。可以根据不同的参数,包括例如访问磁盘的次数和取回数据所需的响应时间,来建立查询方案的成本模型。查询优化器可估计已给定查询的所有可行的查询方案的成本,并确定最佳方案,也就是执行该查询的最有效的方案。
一般来说,用户不能直接访问查询优化器。因此,用户看不到优化过程。然而,用户能识别任意多个的情形中的次优性能,包括优化器进程崩溃、优化器产生的查询方案产生错误的结果、低效率的查询方案或者相较于系统改造前的系统操作的次等方案。不能访问查询优化器限制了用户对在不同情况下方案在何处产生的假设分析能力。
评估查询优化器的性能包括对多个参数的理解。通常,查询优化器的用户不愿意让查询优化器的供应商看见自己的系统,尤其是用户的数据。即使能够访问数据,获取正确的数据也很难。此外,用户通常也不愿允许任何形式的评估干扰正在进行的业务流程。所以,尽管需要了解所使用的系统中查询优化器的性能,但是这么做的机会很有限。因此,就需要提供技术来评估所部署的查询优化器的性能。
发明内容
分析查询优化器的性能的方法包括识别事件触发。构造表征事件触发时用户计算机的运行参数的再现对象。将该再现对象从用户计算机传输到测试计算机。在测试计算机中分析该再现对象以表征查询优化器的性能。
用户计算机具有连接到处理器的存储器。该存储器存储采集模块,该采集模块包括指令,该指令使处理器识别事件触发,构造表征事件触发时用户计算机的运行参数的再现对象,并将再现对象从用户计算机传输到测试计算机。
测试计算机具有连接到处理器的存储器。该存储器存储包括指令的分析模块,以使处理器分析表征事件触发时用户计算机的运行参数的再现对象,以表征查询优化器的性能。
附图说明
通过以下结合附图的详细描述能够更充分地理解本发明,其中:
图1示出根据本发明一实施例配置的计算机系统。
图2示出根据本发明一实施例配置的再现对象。
图3示出与本发明一实施例相关的运行过程。
在所有图中相同的参考标号表示对应的部分。
具体实施方式
图1示出根据本发明一实施例配置的系统100。系统100包括用通信信道106连接起来的用户计算机102-1和测试计算机104-1,该通信信道可以是有线或者无线信道。用户计算机102-1包括标准构件,例如通过总线114连接的中央处理单元110和输入/输出设备112。所述输入/输出设备可以包括键盘、鼠标、显示器和打印机等等。总线114还连接到网络接口卡116,网络接口卡116提供与其他计算机如计算机104-1的连接。存储器120也连接到总线114。该存储器存储数据和可执行模块,以执行本发明的操作。特别地,存储器120存储数据库122和一组相关的数据库应用程序或者工具124。数据库应用程序或者工具124用于构建数据库查询。每个数据库查询被施加到查询优化器126,所述查询优化器生成查询方案,该查询方案被施加到数据库122以产生数据结果。这些构件是现有技术中已知的。
本发明集中在采集模块128和再现对象130上。采集模块128包括可执行指令,用于在预定情形下采集查询、数据库和系统信息。所述预定情形可以包括优化过程崩溃、被跟踪的优化过程和假设分析等等。采集模块128将该查询、数据库和系统信息加载到再现对象130中。然后再现对象130会被传送到测试计算机104-1。所以,采集模块128可以包括用来加载和传送再现对象130的可执行的指令。
图1示出用户计算机102-1至102-N。在典型的实施例中,存储器120中的数据库122和其他模块分布在多个机器中。类似地,测试计算机104-1可以是单个机器或者它的功能可以分布在多个机器104-1至104-N中。
测试计算机104-1包括标准构件,该标准构件包括通过总线162连接到输入/输出设备164和中央处理单元160的网络接口卡166。存储器170也连接到总线162。存储器170存储从用户计算机102-1接收到的再现对象130。此外,存储器170还存储分析模块174,该分析模块包括用来分析再现对象130的可执行指令。可以将任意数目的分析编码为分析模块174,下面提供其例子。
因此,本发明提供一种分析查询优化器性能的技术。优势在于,所述分析的执行是与用户计算机分开的,因此不会中断所使用的用户计算机的运行。此外,配置再现对象来提供用户愿意分享的系统信息。另有优点是,再现对象不需要包含实际用户数据。再现对象的分析与所使用的用户系统分开执行。分析的结果可以和推荐的软件修复一起发送给用户。特别地,分析模块174可将查询优化器报告反馈给用户。在某些情况下,分析模块174提供软件补丁和/或推荐的设置以提高系统性能。
图2示出再现对象130的一个实施例。再现对象130包括输入查询202,其是查询优化处理的主体。输入查询用于从数据源中检索数据的正式表达。
再现对象130还包括查询方案对象204,所述查询方案对象是应用于数据库122以执行指定的输入查询202的查询方案。也就是说,该查询方案是针对数据库的输入查询的最佳执行的一组操作。
再现对象130还包括数据库模式信息206。数据库模式至少包括关系数据库的各个表的描述。
再现对象130还包括数据库统计208。数据库统计是表征数据库内的条目的指标。最后,再现对象130包括系统数据210。系统数据210包括表征处理查询方案对象的物理机器和物理机器的性能的指标。所述数据可以包括机器的数目、可用的存储器和散列集合等等。
图3示出与本发明一实施例相关的运行过程。在300,监视事件触发。特别地,采集模块128监视事件触发。事件触发可能是指定的查询、假设情景分析、系统崩溃、对再现对象的请求或任何其他预定事件的提交。在302,响应于该事件触发,构造再现对象。然后在304,传送该再现对象。例如,将再现对象130从用户计算机102-1传送到测试计算机104-1。然后在306,分析再现对象。例如,测试计算机104-1的分析模块174可以被用于分析再现对象130。
在一个实施例中,再现对象130是根据称为数据交换语言(DXL)的语法定义的以可扩展标记语言(XML)编码的对象。在附录中提供了此种再现对象的标有注释的例子。根据本发明的实施例也可以使用其他编码。
除了图2中所示的构件以外,再现对象还可包括上下文信息,比如配置参数、与内部优化步骤的顺序和结果有关的追踪信息(如定时信息)和相关信息。
优选地,针对可扩展性优化该再现对象以发展多个版本。非常可取的格式是详细的、人可读的,并且支持标准查询语言,如Xpath或者Xquery,以便于统计分析。
再现对象格式的优选性能包括:版本控制,以明确识别软件和协议的版本;压缩,以通过邮件或其他介质传送;加密;人可读;适于利用标准XML编辑器分析;适于通过标准XML查询工具查询;以及易于在支持存储XML的任何数据库中归档。
一旦触发,采集模块128将询问优化器的所有软件构件,并请求将所有相关数据序列化。例如,查询优化器126可包括优化上下文信息、元数据缓存、语法分析程序和搜索模块,询问每个构件均的信息。在一个实施例中,所有组件使用标准抽象API连接在一起;每个构件独立地判定什么信息是相关的。理想地,任何新加的构件都提供回调函数。优选地,采集模块128不干扰实际查询的执行,也就是说,好像采集模块没有运行一样执行或中断查询。
在一个实施例中,通过例如作为数据访问协议的一部分的SQL或者其他通用配置机制来显示用于生成再现对象的句法。例如,作为一种开放源码的对象关系数据库管理系统的PostgreSQL(Postges)支持通过如下句法改变配置:
SETEXPLAIN_DXL=on
这中开启所有后续语句的再现对象,直到配置改变为:
SETEXPLAIN_DXL=off
该配置改变独立于工作负载,也就是说,实际工作负载的句法不需要被改变。
由内部事件(例如崩溃)触发的再现对象的产生可以被下列语句调用:
SETEXPLAIN_DXL=on
<offendingstatement>
SETEXPLAIN_DXL=off.
该再现对象格式便于将最后得到的结构存储/记录在标准记录设施中,例如数据中心监控基础设施。使用这些外部设施、额外的后处理如将再现对象自动发送到测试计算机104-1(如供应商的支持部门)变得可能。
分析模块174可以作为匹配或相似软件版本的独立优化过程来实现。载入机构读取再现对象并从再现对象获取的地方开始重演优化。通过向语法分析程序发送原始查询表达来开始该重演。可选地,可以利用来自再现对象的信息,例如优化上下文和元数据缓存信息,来准备优化器中的构件。在优化重演期间,不同的优化器构件可使用标准回调机制来请求额外的信息,标准回调机制能够从其它数据库处理导入该信息,如优化上下文信息或元数据。载入器截取这些请求并以从再现对象提取的信息来响应。
该截取机制将正在重演的优化与其它数据库处理断开。这就使得不需要访问数据库系统就可以孤立地重演优化,包括在不同硬件平台上重演(不同硬件配置、不同的操作系统等等)。
分析模块174可包括用于支持许多再现对象分析的可执行指令。例如,分析模块174可以包括分析查询优化器崩溃的可执行指令。在这种情况下,优化器在SQL语句优化期间由于软件缺陷而崩溃。内部错误处理机制开始运行并自动激活再现对象的采集和导出。再现对象被发送至测试计算机104_1。最终得到的再现对象可被用于在相同软件版本的优化器的单独副本上再现该事件。该问题能够被解决而不需要工程师访问生产系统,也不需要停机时间。工程部门开发出修复,并且在最终传送给客户之前检验该修复。在一个实施例中,再现对象提供一种完整的并且完全自主的退化测试,该退化测试能够被编入工程部门的日常退化测试中。
分析模块174还可以被编码用来评定次优的查询方案。在这种情形下,用户注意意外的查询行为,例如,意外地执行缓慢,这可能因为是次优方案。理解这种行为变化是非琐细的并且通常不表明是软件缺陷,而仅是由于用户数据中的重大变化。用户使用句法扩展生成再现对象。该再现对象被传送至测试计算机104-1中的分析模块174。分析模块174能够评估感知到的缺陷。
分析模块174也能够用可执行指令编码来评估不正确的方案。在这种情形下,用户在执行特定查询时候注意到错误结果。用户使用句法扩展来明确地请求再现对象。该再现对象被传送至测试计算机104-1中的分析模块174。分析模块174研究原因并辨别是优化器存在缺陷还是由于正确的查询方案的执行错误导致错误结果。在优化器存在缺陷的情况下,可以调用上面讨论的优化器崩溃工作流。在执行错误的情况下,可以应用传统的故障排除技术。
分析模块174也可被执行用于支持工作流监视和记录。典型的工作流由每隔一段时间运行的几百个查询组成。通常认为“重要”查询的一个小子集是性能关键。在调整该系统之后,用户为该关键查询生成再现对象并将其归档(例如,将它们存储到数据库中)。在数据库软件升级之后发生方案退化(查询的性能降低)的情况下,用户可以将一新的再现对象和归档的再现对象进行比较,并确定性能降低是否归因于软件退化。
分析模块174也可被执行来支持假设分析。为了调整的目的,理解哪个数据库对象以何种方式和频率使用是非常有帮助的。原始的查询文本包含对数据库对象如表格的引用,但是优化器根据附加的对象引用如索引来做决定。为了正确调整系统,需要理解对这些对象的准确应用。用户可以记录工作流并将最终得到的再现对象归档到数据库中。之后,数据可被查询来确定对象的某些特征。实例包括:根据索引的有用性将索引分级,确定等同性谓词中那些列被频繁使用以产生它们的索引,以及基于在记录的工作流上的查询识别调整机会。也可通过改变环境设置,比如添加存储器、添加机器等,来执行假设情景分析。
本领域技术人员能够得知本发明的很多相关优点。再现对象允许“重演”问题并对其分析。例如,当识别出软件缺陷时,再现对象能够被用来开发工作区作为临时措施或者被用来帮助开发优化器代码的修复并且在发布给客户之前验证该修复。一旦开发出修复,再现对象就获取关键测试案例用于退化测试。再现对象是自主的,并且在没有人工干预的情况下生成,因而消除了管理上的错误。如果优化器为系统请求额外的元数据,那么在优化期间再现对象可能增大。尽管再现对象一般是响应于触发的事件而产生的,但是也可以综合生成再现对象与产生测试案例。再现对象可被存储和分析以用于统计目的,例如,用于检测查询或模式特性与崩溃或次优结果之间的相互关系。
错误报告提供当系统故障或者崩溃时的瞬态信息。这种报告可以满足简单处理的需要,例如在单个机器上运行的单个应用程序。另一方面,这种工具对复杂的应用程序或者在多个机器上运行的应用程序没有太大帮助。在这种情境下,需要随时跟踪各种系统参数。如下所示的示例性的再现对象,不仅仅是在系统崩溃时,而是随时跟踪系统参数。因此,该再现对象不仅用于故障检测,也适用于优化运行(也就是不包含系统崩溃,而是结果似乎是次优的)。
本发明的一实施例涉及具有计算机可读存储介质的计算机存储产品,该介质上具有用于进行各种计算机执行的操作的计算机代码。该媒介和计算机代码可以是特别为本发明的目的设计和构造的,或者可以是在计算机软件领域的技术人员广泛知晓和可用的。例如计算机可读介质的例子包括但不限于:磁性介质,如硬盘、软盘和磁带;光学介质,如CD-ROM、DVD和全息装置;磁光介质;专门配置用来存储和执行程序代码的硬件装置,如专用集成电路(“ASIC”)、可编程逻辑器件(“PLD”)、ROM和RAM装置。计算机代码的例子包括机器代码,如由编译器产生的,以及由计算机使用解释器来执行的包含高级代码的文件。例如,本发明一实施例可用、C++、其他面向对象编程语言和开发工具来实现。本发明的另一实施例可以使用硬连线电路代替或者结合机器可执行的软件指令来实现。
为了解释的目的,前面的描述使用了特定的术语以提供对本发明的全面理解。然而,对于本领域技术人员来讲很明显,不需要具体的细节就能够实现本发明。因此,前面对本发明的具体实施例的描述是为了说明和描述的目的而给出的。它们不意图是详尽的或者将本发明限制于所公开的精确形式;显然,鉴于上述教导,很多修改和变化都是可能的。这些实施例被选定和描述是为了最好地解释本发明的原理及其实际应用,因此它们使本领域技术人员能够最好地应用本发明以及具有各种修改的各种实施例,以适合于特定的预期应用。所附权利要求及其等价定义意图限定出本发明的范围。
附录

Claims (18)

1.一种方法,包括:
通过计算设备并且响应于事件触发而收集查询优化器信息,所述查询优化器信息包括查询信息、数据库信息以及系统信息,其中:
所述查询信息包括提交至所述计算设备的用于优化的查询优化器的关于输入查询的信息,所述优化包括为所述输入查询生成查询计划;
所述数据库信息包括由所述输入查询和数据库统计查询的数据库模式,所述数据库统计包括数据库中条目的指标;
所述系统信息包括关于所述计算设备的信息,以及
所述事件触发包括以下事件中的至少一个:
所述查询优化器崩溃;
所述输入查询是特定查询;
系统崩溃;或者
对一个或多个再现对象的请求;
通过所述计算设备将收集到的信息加载至再现对象,所述加载包括存储所述输入查询、所述查询计划、所述数据库模式、所述数据库统计以及所述系统信息作为所述再现对象的构件;以及
将所述再现对象提交至用于分析所述查询优化器性能的一个或多个测试计算机。
2.根据权利要求1所述的方法,其中收集所述查询优化器信息包括:
询问所述查询优化器的优化上下文模块、元数据缓存模块、语法模块或搜索模块中的至少一个以收集所述查询优化器信息。
3.根据权利要求1所述的方法,其中所述再现对象是可扩展标记语言(XML)编码的对象,所述再现对象包括与所述查询优化器的优化步骤的顺序和结果有关的追踪信息。
4.根据权利要求1所述的方法,包括利用配置命令开启所述收集和加载,其中开启所述收集和加载之后,所述收集和加载发生以用于每个后续的数据库查询,直到所述收集和加载由另一个配置命令关闭。
5.一种非暂时性存储设备,存储可操作以使计算设备执行操作的指令,所述非暂时性存储设备包括:
通过计算设备并且响应于事件触发而收集查询优化器信息,所述查询优化器信息包括查询信息、数据库信息以及系统信息,其中:
所述查询信息包括提交至所述计算设备的用于优化的查询优化器的关于输入查询的信息,所述优化包括为所述输入查询生成查询计划;
所述数据库信息包括由所述输入查询和数据库统计查询的数据库模式,所述数据库统计包括数据库中条目的指标;
所述系统信息包括关于所述计算设备的信息,以及
所述事件触发包括以下事件中的至少一个:
所述查询优化器崩溃;
所述输入查询是特定查询;
系统崩溃;或者
对一个或多个再现对象的请求;
通过所述计算设备将收集到的信息加载至再现对象,所述加载包括存储所述输入查询、所述查询计划、所述数据库模式、所述数据库统计以及所述系统信息作为所述再现对象的构件;以及
将所述再现对象提交至用于分析所述查询优化器性能的一个或多个测试计算机。
6.根据权利要求5所述的非暂时性存储设备,其中收集所述查询优化器信息包括:
询问所述查询优化器的优化上下文模块、元数据缓存模块、语法模块或搜索模块中的至少一个以收集所述查询优化器信息。
7.根据权利要求5所述的非暂时性存储设备,其中所述再现对象是可扩展标记语言(XML)编码的对象,所述再现对象包括与所述查询优化器的优化步骤的顺序和结果有关的追踪信息。
8.根据权利要求5所述的非暂时性存储设备,所述操作包括利用配置命令开启所述收集和加载,其中开启所述收集和加载之后,所述收集和加载发生以用于每个后续的数据库查询,直到所述收集和加载由另一个配置命令关闭。
9.一种方法,包括:
通过一个或多个测试计算机从源计算机接收再现对象,所述再现对象存储序列化查询优化器信息,所述序列化查询优化器信息包括提交至所述源计算机的查询优化器的一个或多个输入查询、由所述查询优化生成的用于查询的查询计划、由所述查询指向的数据库模式、数据库统计以及所述源计算机的系统信息;以及
在有事件触发时通过一个或多个测试计算机并且利用所述查询优化器信息确定所述源计算机的所述查询优化器的性能评估,所述事件触发使所述源计算机将所述查询优化器信息存储在所述再现对象中,其中所述事件触发包括以下事件中的至少一个:
所述查询优化器崩溃;
所述输入查询是特定查询;
系统崩溃;或者
对一个或多个再现对象的请求。
10.根据权利要求9所述的方法,包括基于所述再现对象调整所述数据库,其中调整所述数据库包括:
执行所述查询优化器信息上的假设分析,所述假设分析包括:
查询用于工作流的再现对象,所述工作流包括以有规律的间隔运行的一系列输入查询;
从所述工作流中确定数据库表中的在所述一系列查询中的等同性谓词中被频繁使用的列;以及
在所述被频繁使用的列上产生索引以被创建在数据库中。
11.根据权利要求9所述的方法,其中确定所述性能评估包括根据数据库索引中的每一个的有用性将多个数据库索引分级。
12.一种非暂时性存储设备,存储可操作以使测试计算机执行操作的指令,所述非暂时性存储设备包括:
通过一个或多个测试计算机从源计算机接收再现对象,所述再现对象存储序列化查询优化器信息,所述序列化查询优化器信息包括提交至所述源计算机的查询优化器的一个或多个输入查询、由所述查询优化生成的用于查询的查询计划、由所述查询指向的数据库模式、数据库统计以及所述源计算机的系统信息;以及
在有事件触发时通过一个或多个测试计算机并且利用所述查询优化器信息确定所述源计算机的所述查询优化器的性能评估,所述事件触发使所述源计算机将所述查询优化器信息存储在所述再现对象中,其中所述事件触发包括以下事件中的至少一个:
所述查询优化器崩溃;
所述输入查询是特定查询;
系统崩溃;或者
对一个或多个再现对象的请求。
13.根据权利要求12所述的非暂时性存储设备,所述操作包括基于所述再现对象调整所述数据库,其中调整所述数据库包括:
执行所述查询优化器信息上的假设分析,所述假设分析包括:
查询用于工作流的再现对象,所述工作流包括以有规律的间隔运行的一系列输入查询;
从所述工作流中确定数据库表中的在所述一系列查询中的等同性谓词中被频繁使用的列;以及
在所述被频繁使用的列上产生索引以被创建在数据库中。
14.根据权利要求12所述的非暂时性存储设备,其中确定所述性能评估包括根据数据库索引中的每一个的有用性将多个数据库索引分级。
15.一种系统,包括:
用户计算机,包括一个或多个处理器;以及
测试计算机,包括一个或多个处理器,并且所述测试计算机通过网络接口连接至所述用户计算机,其中配置所述用户计算机以执行第一操作,所述第一操作包括:
响应于事件触发而收集查询优化器信息,所述查询优化器信息包括查询信息、数据库信息以及系统信息,其中:
所述查询信息包括提交至所述用户计算设备的用于优化的查询优化器的关于输入查询的信息,所述优化包括为所述输入查询生成查询计划;
所述数据库信息包括由所述输入查询和数据库统计查询的数据库模式,所述数据库统计包括数据库中条目的指标;
所述系统信息包括关于所述用户计算机的信息,以及
所述事件触发包括以下事件中的至少一个:所述查询优化器崩溃、所述输入查询是特定查询或者对一个或多个再现对象的请求;
将收集到的信息加载至再现对象,所述加载包括存储所述输入查询、所述查询计划、所述数据库模式、所述数据库统计以及所述系统信息作为所述再现对象的构件;以及
将所述再现对象通过所述网络接口提交至所述测试计算机,并且配置所述测试计算机以执行第二操作,所述第二操作包括:
通过所述网络接口从所述用户计算机接收所述再现对象;以及
在有事件触发时利用存储在所述再现对象中的所述收集到的信息确定所述用户计算机的所述查询优化器的性能评估。
16.根据权利要求15所述的系统,其中收集所述查询优化器信息包括:
询问所述查询优化器的优化上下文模块、元数据缓存模块、语法模块或搜索模块中的至少一个以收集所述查询优化器信息。
17.根据权利要求15所述的系统,其中所述再现对象是可扩展标记语言(XML)编码的对象,所述再现对象包括与所述查询优化器的优化步骤的顺序和结果有关的追踪信息。
18.根据权利要求15所述的系统,所述操作包括利用配置命令开启所述收集和加载,其中开启所述收集和加载之后,所述收集和加载发生以用于每个后续的数据库查询,直到所述收集和加载由另一个配置命令关闭。
CN201510468387.8A 2009-12-13 2010-12-13 分析查询优化器性能的设备和方法 Active CN105138597B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US12/646,716 2009-12-13
US12/646,716 US8818991B2 (en) 2009-12-23 2009-12-23 Apparatus and method for analyzing query optimizer performance
CN201080059390.XA CN102687124B (zh) 2009-12-23 2010-12-13 分析查询优化器性能的设备和方法

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
CN201080059390.XA Division CN102687124B (zh) 2009-12-13 2010-12-13 分析查询优化器性能的设备和方法

Publications (2)

Publication Number Publication Date
CN105138597A true CN105138597A (zh) 2015-12-09
CN105138597B CN105138597B (zh) 2018-12-11

Family

ID=44152518

Family Applications (2)

Application Number Title Priority Date Filing Date
CN201510468387.8A Active CN105138597B (zh) 2009-12-13 2010-12-13 分析查询优化器性能的设备和方法
CN201080059390.XA Active CN102687124B (zh) 2009-12-13 2010-12-13 分析查询优化器性能的设备和方法

Family Applications After (1)

Application Number Title Priority Date Filing Date
CN201080059390.XA Active CN102687124B (zh) 2009-12-13 2010-12-13 分析查询优化器性能的设备和方法

Country Status (4)

Country Link
US (2) US8818991B2 (zh)
EP (1) EP2517108B1 (zh)
CN (2) CN105138597B (zh)
WO (1) WO2011078986A1 (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106126402A (zh) * 2016-06-14 2016-11-16 网易(杭州)网络有限公司 加速器异常的处理方法及装置
CN109313639A (zh) * 2016-12-06 2019-02-05 华为技术有限公司 Dbms中进行查询执行的系统和方法

Families Citing this family (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8473484B2 (en) * 2011-06-01 2013-06-25 International Business Machines Corporation Identifying impact of installing a database patch
US9350733B2 (en) * 2011-11-07 2016-05-24 International Business Machines Corporation Emergency server access for offline users
US8938444B2 (en) * 2011-12-29 2015-01-20 Teradata Us, Inc. Techniques for external application-directed data partitioning in data exporting from a database management system
US9081898B1 (en) * 2012-06-29 2015-07-14 Emc Corporation Automatic capture of minimal portable executable bug repros
US9110949B2 (en) * 2013-02-11 2015-08-18 Oracle International Corporation Generating estimates for query optimization
US9135280B2 (en) 2013-02-11 2015-09-15 Oracle International Corporation Grouping interdependent fields
US9471545B2 (en) 2013-02-11 2016-10-18 Oracle International Corporation Approximating value densities
US9262457B2 (en) * 2013-08-13 2016-02-16 Sybase, Inc. On-demand hash index
WO2015167466A1 (en) * 2014-04-29 2015-11-05 Hewlett-Packard Development Company, L.P. Query plan post optimization analysis and reoptimization
WO2016003427A1 (en) * 2014-06-30 2016-01-07 Hewlett-Packard Development Company, Lp Automatic generation of sub-queries
US10318491B1 (en) * 2015-03-31 2019-06-11 EMC IP Holding Company LLC Object metadata query with distributed processing systems
US11016946B1 (en) * 2015-03-31 2021-05-25 EMC IP Holding Company LLC Method and apparatus for processing object metadata
US9418088B1 (en) 2015-12-02 2016-08-16 International Business Machines Corporation Identification of storage system elements causing performance degradation
US11657056B2 (en) * 2016-09-15 2023-05-23 Oracle International Corporation Data serialization in a distributed event processing system
US10671578B2 (en) 2016-12-15 2020-06-02 International Business Machines Corporation System and method for dynamically estimating data classification job progress and execution time
CN107844425A (zh) * 2017-11-16 2018-03-27 中国银行股份有限公司 一种数据库语句检查方法和装置
CN108255477A (zh) * 2018-01-15 2018-07-06 贵州易鲸捷信息技术有限公司 一种通过sql编译器模拟优化数据库性能的方法及系统
CN108519949A (zh) * 2018-04-12 2018-09-11 郑州云海信息技术有限公司 一种oracle数据库压力的测试方法、系统及装置
CN108763536B (zh) * 2018-05-31 2020-04-14 阿里巴巴集团控股有限公司 数据库访问方法及装置
CN109032912B (zh) * 2018-07-25 2022-04-05 北京首汽智行科技有限公司 车载终端固件升级的压力测试方法
US11500837B1 (en) * 2019-12-11 2022-11-15 Amazon Technologies, Inc. Automating optimizations for items in a hierarchical data store
US11372860B2 (en) * 2019-12-26 2022-06-28 Snowflake Inc. Processing techniques for queries where predicate values are unknown until runtime
US10769150B1 (en) 2019-12-26 2020-09-08 Snowflake Inc. Pruning indexes to enhance database query processing

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030115212A1 (en) * 1999-09-22 2003-06-19 John F. Hornibrook System and process for evaluating the performance of a database system
US20080005281A1 (en) * 2006-06-29 2008-01-03 Microsoft Corporation Error capture and reporting in a distributed computing environment
CN101178723A (zh) * 2006-11-09 2008-05-14 国际商业机器公司 用于调试数据库问题的装置和方法
US20090100004A1 (en) * 2007-10-11 2009-04-16 Sybase, Inc. System And Methodology For Automatic Tuning Of Database Query Optimizer
US20090281985A1 (en) * 2008-05-07 2009-11-12 Oracle International Corporation Techniques for transforming and loading data into a fact table in a data warehouse

Family Cites Families (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4829427A (en) * 1984-05-25 1989-05-09 Data General Corporation Database query code generation and optimization based on the cost of alternate access methods
US7139749B2 (en) * 2002-03-19 2006-11-21 International Business Machines Corporation Method, system, and program for performance tuning a database query
US20050210023A1 (en) * 2004-03-18 2005-09-22 Renato Barrera Query optimizer using implied predicates
US7606791B2 (en) * 2004-06-03 2009-10-20 International Business Machines Corporation Internal parameters (parameters aging) in an abstract query
US8161037B2 (en) * 2004-06-03 2012-04-17 International Business Machines Corporation Method for autonomically generating a query implementation that meets a defined performance specification
US7822741B2 (en) * 2004-06-21 2010-10-26 Microsoft Corporation API for programmatic retrieval and replay of database trace
US8010337B2 (en) 2004-09-22 2011-08-30 Microsoft Corporation Predicting database system performance
US8468152B2 (en) * 2005-08-04 2013-06-18 International Business Machines Corporation Autonomic refresh of a materialized query table in a computer database
GB0516400D0 (en) * 2005-08-10 2005-09-14 Ibm A method and apparatus for testing software
US20070061289A1 (en) 2005-09-09 2007-03-15 Douglas Brown Validator and method for managing database system performance
US7519527B2 (en) 2005-10-31 2009-04-14 International Business Machines Corporation Method for a database workload simulator
CN100397396C (zh) * 2005-10-31 2008-06-25 北京神舟航天软件技术有限公司 基于谓词关键度分析的查询计划缓存方法及其系统
US20080059492A1 (en) 2006-08-31 2008-03-06 Tarin Stephen A Systems, methods, and storage structures for cached databases
US8032573B2 (en) * 2007-06-10 2011-10-04 Philippe Richard System and method for managing and updating data from a number of sources for a project
US20090083215A1 (en) * 2007-09-21 2009-03-26 Louis Burger System, method, and computer-readable medium for automated selection of sampling usage in a database system
US7958114B2 (en) * 2008-04-04 2011-06-07 Microsoft Corporation Detecting estimation errors in dictinct page counts
US7937385B2 (en) 2008-05-05 2011-05-03 International Business Machines Corporation Obtaining a plan for executing a query in a relational database
US8190598B2 (en) * 2008-10-30 2012-05-29 Hewlett-Packard Development Company, L.P. Skew-based costing for database queries
US20100306188A1 (en) * 2009-06-01 2010-12-02 Microsoft Corporation Persistent query plans
US20100325124A1 (en) * 2009-06-17 2010-12-23 Sybase, Inc. Tuning query execution performance of a database system
US8732163B2 (en) * 2009-08-04 2014-05-20 Sybase, Inc. Query optimization with memory I/O awareness
US9953054B2 (en) * 2013-04-22 2018-04-24 Salesforce.Com, Inc. Systems and methods for implementing and maintaining sampled tables in a database system

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030115212A1 (en) * 1999-09-22 2003-06-19 John F. Hornibrook System and process for evaluating the performance of a database system
US20080005281A1 (en) * 2006-06-29 2008-01-03 Microsoft Corporation Error capture and reporting in a distributed computing environment
CN101178723A (zh) * 2006-11-09 2008-05-14 国际商业机器公司 用于调试数据库问题的装置和方法
US20090100004A1 (en) * 2007-10-11 2009-04-16 Sybase, Inc. System And Methodology For Automatic Tuning Of Database Query Optimizer
US20090281985A1 (en) * 2008-05-07 2009-11-12 Oracle International Corporation Techniques for transforming and loading data into a fact table in a data warehouse

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106126402A (zh) * 2016-06-14 2016-11-16 网易(杭州)网络有限公司 加速器异常的处理方法及装置
CN106126402B (zh) * 2016-06-14 2019-06-04 网易(杭州)网络有限公司 加速器异常的处理方法及装置
CN109313639A (zh) * 2016-12-06 2019-02-05 华为技术有限公司 Dbms中进行查询执行的系统和方法
CN109313639B (zh) * 2016-12-06 2021-03-05 华为技术有限公司 Dbms中进行查询执行的系统和方法

Also Published As

Publication number Publication date
CN102687124B (zh) 2015-09-02
US8818991B2 (en) 2014-08-26
US20150081667A1 (en) 2015-03-19
WO2011078986A1 (en) 2011-06-30
EP2517108A1 (en) 2012-10-31
US20110153594A1 (en) 2011-06-23
CN102687124A (zh) 2012-09-19
CN105138597B (zh) 2018-12-11
EP2517108B1 (en) 2020-02-05
US9275107B2 (en) 2016-03-01
EP2517108A4 (en) 2014-03-12

Similar Documents

Publication Publication Date Title
CN102687124B (zh) 分析查询优化器性能的设备和方法
US11379348B2 (en) System and method for performing automated API tests
US10789054B2 (en) Methods, systems, apparatuses and devices for facilitating change impact analysis (CIA) using modular program dependency graphs
US11023367B1 (en) Systems and methods for testing a software application
US8065323B2 (en) Offline validation of data in a database system for foreign key constraints
US10282197B2 (en) Open application lifecycle management framework
US8386419B2 (en) Data extraction and testing method and system
US7548542B2 (en) Methods and apparatus for transferring data
US9563538B2 (en) Code path tracking
Hartig SPARQL for a Web of Linked Data: Semantics and computability
US20130159353A1 (en) Generating a test workload for a database
US20100280990A1 (en) Etl for process data warehouse
US7650346B2 (en) User-defined type consistency checker
US10445675B2 (en) Confirming enforcement of business rules specified in a data access tier of a multi-tier application
US20110137869A1 (en) Flexible data archival using a model-driven approach
US11487742B2 (en) Consistency checks between database systems
US6915313B2 (en) Deploying predefined data warehouse process models
Antova et al. Rapid adoption of cloud data warehouse technology using Datometry Hyper-Q
Anderson Modeling and analysis of SQL queries in PHP systems
CN113626423B (zh) 业务数据库的日志管理方法、装置、系统
Fjällid A comparative study of databases for storing sensor data
CN117472641B (zh) 数据质量的检测方法、装置、电子设备及存储介质
KR100656559B1 (ko) Bibd 방법론을 이용하는 프로그램 자동 개발 장치
US7660802B2 (en) Method and apparatus for generating components for pattern-based system design analysis using a characteristics model
CN117632250A (zh) 一种应用处理方法、装置、计算机设备以及可读存储介质

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant