CN111309581A - 一种数据库升级场景下的应用性能检测方法及装置 - Google Patents
一种数据库升级场景下的应用性能检测方法及装置 Download PDFInfo
- Publication number
- CN111309581A CN111309581A CN202010130494.0A CN202010130494A CN111309581A CN 111309581 A CN111309581 A CN 111309581A CN 202010130494 A CN202010130494 A CN 202010130494A CN 111309581 A CN111309581 A CN 111309581A
- Authority
- CN
- China
- Prior art keywords
- sql
- database
- core
- upgrading
- execution plan
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/34—Recording 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/3409—Recording 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/34—Recording 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/3452—Performance evaluation by statistical analysis
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3668—Software testing
- G06F11/3696—Methods or tools to render software testable
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- 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/242—Query formulation
- G06F16/2433—Query languages
-
- 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/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/65—Updates
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N20/00—Machine learning
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Computer Hardware Design (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Quality & Reliability (AREA)
- Mathematical Physics (AREA)
- Computing Systems (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Artificial Intelligence (AREA)
- Computer Security & Cryptography (AREA)
- Evolutionary Computation (AREA)
- Medical Informatics (AREA)
- Computational Linguistics (AREA)
- Life Sciences & Earth Sciences (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Bioinformatics & Computational Biology (AREA)
- Evolutionary Biology (AREA)
- Probability & Statistics with Applications (AREA)
- Debugging And Monitoring (AREA)
Abstract
本发明提供了一种数据库升级场景下的应用性能检测方法及装置,包括:将获取的SQL语句存储至SQL信息库;从SQL信息库中筛选核心SQL语句存储至核心SQL信息库;对比数据库升级前后核心SQL语句的执行计划是否发生变化;将执行计划发生变化的核心SQL语句通过基准测试工具进行对比验证。本申请高度自动化,在无需依赖测试人员,无人值守下实现分布式数据库平台升级场景下性能的快速验证,有效提升测试效率,快速响应测试需求。
Description
技术领域
本申请属于分布式数据库平台升级前后的应用性能验收技术领域,具体地讲,涉及一种数据库升级场景下的应用性能检测方法及装置。
背景技术
随着大数据平台的广泛兴起,面对海量数据和海量交易所带来的技术挑战,分布式数据库平台的性能和扩展性被列为衡量平台质量的重要指标,并越来越受到业界的重视。由于平台业务类型不断复杂化,对分布式数据库平台的性能要求也不断提高,为了更好地服务于分布式数据库平台中的各类应用,技术人员需要不断的对平台进行升级,提高性能。由于平台应用的案例语句类型复杂,基于传统的基准测试工具需要全面地对案例语句的性能进行验证,周期长,效率低下,并且不能灵活的覆盖平台中多应用多复杂语句类型的典型场景,难以满足目前分布式数据库平台升级场景下应用性能的灵活快速验证。
发明内容
本申请提供了一种数据库升级场景下的应用性能检测方法及装置,以解决传统的针对分布式数据库平台的基准测试工具需要全面地对案例语句地性能进行验证从而导致效率低下的问题。
根据本申请的一个方面,提供了一种数据库升级场景下的应用性能检测方法,包括:
将获取的SQL语句存储至SQL信息库;
从SQL信息库中筛选核心SQL语句存储至核心SQL信息库;
对比数据库升级前后核心SQL语句的执行计划是否发生变化;
将执行计划发生变化的核心SQL语句通过基准测试工具进行对比验证。
在一实施例中,从SQL信息库中筛选核心SQL语句存储至核心SQL信息库,包括:
提取SQL语句的特征信息,特征信息包括:语句频繁度、时间窗口分析、大表信息、关联次数和统计信息;
根据特征信息,利用预先建立的筛选模型从SQL语句中筛选出包含设定内容的核心SQL语句;
将核心SQL语句存储至核心SQL信息库。
在一实施例中,对比数据库升级前后核心SQL语句的执行计划,包括:
获取升级前的数据库中核心SQL语句的执行计划和升级后的数据库中SQL语句的执行计划;
利用预先构建的规则匹配模型判断升级前的执行计划和升级后的执行计划是否一致。
在一实施例中,将执行计划发生变化的核心SQL语句通过基准测试工具进行对比验证,包括:
在升级前的数据库和升级后的数据库中分别通过基准测试工具测试不同并发条件下的核心SQL语句,获得验证结果;
将数据库升级前的验证结果和数据库升级后的验证结果进行对比。
在一实施例中,构建规则匹配模型的步骤,包括:
根据设定的对比参考信息构建规则匹配模型,对比参考信息包括:cost值、分布键、执行计划时间、下推函数和统计信息。
在一实施例中,利用预先构建的规则匹配模型判断升级前的执行计划和升级后的执行计划是否一致,包括:
将核心SQL语句导入升级前的数据库和升级后的数据库中生成核心SQL语句的执行计划;
利用规则匹配模型对升级前的执行计划和升级后的执行计划进行对比。
根据本申请的另一个方面,还提供了一种数据库升级场景下的应用性能检测装置,包括:
存储单元,用于将获取的SQL语句存储至SQL信息库;
筛选单元,用于从SQL信息库中筛选核心SQL语句存储至核心SQL信息库;
对比单元,用于对比数据库升级前后核心SQL语句的执行计划是否发生变化;
检测验证单元,用于将执行计划发生变化的核心SQL语句通过基准测试工具进行对比验证。
在一实施例中,筛选单元包括:
特征信息提取模块,用于提取SQL语句的特征信息,特征信息包括:语句频繁度、时间窗口分析、大表信息、关联次数和统计信息;
特定筛选模块,用于根据特征信息,利用预先建立的筛选模型从SQL语句中筛选出包含设定内容的核心SQL语句;
存储模块,用于将核心SQL语句存储至核心SQL信息库。
在一实施例中,对比单元包括:
获取模块,用于获取升级前的数据库中核心SQL语句的执行计划和升级后的数据库中SQL语句的执行计划;
一致性比较模块,用于利用预先构建的规则匹配模型判断升级前的执行计划和升级后的执行计划是否一致。
在一实施例中,检测验证单元包括:
运行模块,用于在升级前的数据库和升级后的数据库中分别通过基准测试工具测试不同并发条件下的核心SQL语句,获得验证结果;
验证结果对比模块,用于将数据库升级前的验证结果和数据库升级后的验证结果进行对比。
在一实施例中,构建规则匹配模型的装置具体包括:
参考信息选定构建模块,用于根据设定的对比参考信息构建规则匹配模型,对比参考信息包括:cost值、分布键、执行计划时间、下推函数和统计信息。
在一实施例中,所述筛选模型的构建方法,包括:
利用所述特征信息建立所述筛选模型。
本申请首先将生产运营维护的SQL语句纳入到SQL信息库,然后根据匹配规则和机器学习技术对SQL语句进行分层管理,从中筛选出核心SQL语句并纳入核心SQL信息库中,然后对数据库升级前后的执行计划进行对比验证,将执行计划发生变化的核心SQL语句筛选出来纳入基准测试工具中进行校验,从而生成最终结果。本申请提供的方法及装置能够有效缩短数据库性能验证的时间周期,提高了数据库升级后的测试效率。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本申请提供的一种数据库升级场景下的应用性能检测方法的流程图。
图2为本申请实施例中从SQL信息库中筛选核心SQL语句存储至核心SQL信息库的方法流程图。
图3为本申请实施例中对比数据库升级前后核心SQL语句的执行计划的方法流程图。
图4为本申请实施例中将执行计划发生变化的核心SQL语句通过基准测试工具进行对比验证的方法流程图。
图5为本申请实施例中规则匹配模型的结构框图。
图6为本申请实施例中自动比对工具的结构框图。
图7为本申请提供的一种数据库升级场景下的应用性能检测装置的结构框图。
图8为本申请实施例中筛选单元的结构框图。
图9为本申请实施例中对比单元的结构框图。
图10为本申请实施例中检测验证单元的结构框图。
图11为本申请实施例中构建规则匹配模型的装置的结构框图。
图12为本申请实施例中筛选模型建立装置的结构框图。
图13为本申请实施例中一种电子设备的具体实施方式。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
对于背景技术中所涉及的现有技术的缺点,本申请提供了一种数据库升级场景下的应用性能检测方法,这种方法克服了目前业界基准测试工具案例的不灵活、周期长、效率低的缺陷。如图1所示,本申请提供的一种数据库升级场景下的应用性能检测方法,包括:
S101:将获取的SQL语句存储至SQL信息库。
从生产运营维护部门(简称生产运维)获取SQL语句,纳入到建立好的SQL信息库中,同时,将SQL语句的文本信息和统计信息等一并纳入到SQL信息库中。
在一具体实施例中,生产运维平台会定时传送生产运维信息。通过Devops体系配置完成持续集成任务后,即可以准时地从生产运维平台获取生产运维信息(生产运维信息包括SQL文本信息、统计信息、作业时间窗口、表级对象大小、表数据倾斜率等)最后将这些生产运维信息联同SQL语句一起纳入SQL信息库中。
S102:从SQL信息库中筛选核心SQL语句存储至核心SQL信息库。
通过规则匹配和机器学习方法构建筛选模型,利用构建的筛选模型对SQL语句进行分级管理,并将SQL语句中符合特定标准的语句进行筛选出来成为核心SQL语句,将核心SQL语句纳入核心SQL信息库。
S103:对比数据库升级前后核心SQL语句的执行计划是否发生变化。
获取核心SQL语句在升级前的数据库中的执行计划以及核心SQL语句在升级后的数据库中的执行计划,并对比这两个执行计划是否发生了变换。
S104:将执行计划发生变化的核心SQL语句通过基准测试工具进行对比验证。
将在S103步骤中执行计划发生变化的核心SQL语句筛选出来,然后利用基准测试工具对这些筛选出的核心SQL语句在升级前后的数据库中分别进行基准测试,并在基准测试时进行资源监控,然后对基准测试结果进行对比,生成该核心SQL语句在升级前后的数据库中的性能测试报告。在基准测试工具中包含由对于DML语句的验证、系统层语句的验证以及并发数的控制等,因此可以看到不同并发条件下核心SQL语句在升级前后的数据库中的对比验证结果。如果升级后性能结果显示比升级前的性能结果更差,则表示该数据库升级后的性能出现了问题,此时,需要将问题进行汇报。
在一实施例中,如图2所示,从SQL信息库中筛选核心SQL语句存储至核心SQL信息库,包括:
S201:提取SQL语句的特征信息,特征信息包括:语句频繁度、时间窗口分析、大表信息、关联次数和统计信息。
在一具体实施例中,对认为可能是核心SQL语句的特征进行提取,其中包含了:语句频繁度、时间窗口分析、大表信息、关联次数、表的个数、统计信息等,建立上述这几个维度(特征信息)作为评判是否为核心SQL语句的可能因素。
S202:根据特征信息,利用预先建立的筛选模型从SQL语句中筛选出包含设定内容的核心SQL语句。
在一具体实施例中,根据S201中所提取的特征信息,筛选出哪些特征信息可以作为训练因素,并将训练因素输入XGBoost算法模型中,通过这些训练因素进行不断训练,最终训练出可以精准判断核心SQL语句的筛选模型,从而得到核心SQL语句。
S203:将核心SQL语句存储至核心SQL信息库。
将S202步骤中获得的核心SQL语句纳入到核心SQL信息库中。
在一实施例中,如图3所示,对比数据库升级前后核心SQL语句的执行计划,包括:
S301:获取升级前的数据库中核心SQL语句的执行计划和升级后的数据库中SQL语句的执行计划。
在一具体实施例中,设置有一版本触发器,通过版本触发器可以自动地进行数据库更新版本回退功能。在版本触发器中存储有数据库升级前后的参数设置,升级前参数设置为0,升级后参数设置为1,当升级前的基准测试结果验证结束后,此时版本触发器就把当前的参数由0自动改为1,实现升级前后版本的自动切换。然后将核心SQL语句分别导入到升级前和升级后的数据库中,分别生成该核心SQL语句的在不同版本的数据库中的执行计划。
S302:利用预先构建的规则匹配模型判断升级前的执行计划和升级后的执行计划是否一致。
在一具体实施例中,可以通过cost值、分布键、执行计划时间、统计信息、下推函数、扫描方式等数据构建规则匹配模型。如果出现匹配规则中有不一致的情况,则认为升级前后的执行计划发生变化,例如,通过扫描检查升级前后的执行计划是否发生改变,升级前的执行计划是索引扫描,升级后变为了顺序扫描,那么,升级前后的核心SQL语句的执行计划发生了变化,将这些执行计划发生变化的核心SQL语句记录下来用于后面的基准测试。
在一实施例中,如图4所示,将执行计划发生变化的核心SQL语句通过基准测试工具进行对比验证,包括:
S401:在升级前的数据库和升级后的数据库中分别通过基准测试工具测试不同并发条件下的核心SQL语句,获得验证结果。
在一具体实施例中,在使用基准测试工具对核心SQL语句在不同版本的数据库平台中进行测试的过程中,将监控工具部署在数据库上,准时地获取数据库资源的使用情况,包括CPU、内存、磁盘I/O、网络等,可以定时地获取或者查看资源使用情况的历史记录,获取实时资源。并且,在并发模拟控制器下不断发压,解析计算压力池中各主机的资源监控数据(例如CPU、内存、磁盘、网络等),并将每个并发下的基准资源与预设的阈值做比较,在实际情况中,一般CPU、内存、磁盘、网络的资源使用率不超过70%,如果超过阈值,则会触发报警器,提醒给相关人员进行处理,如果没有超过阈值,则说明资源使用正常。
在一具体实施例中,使用基准测试工具对核心SQL语句进行测试具体为:对于典型DML语句进行数据库升级前后的基准验证,特别是含有Order by、Group by、Union、Case等典型特征的SQL语句。对于系统级语句,如analyze和vacuum full等语句,进行对于数据库升级前后的基准验证。
具体的基准验证方法为:利用并发模拟控制器模拟在不同并发条件下的核心SQL语句的压力,并获取时间窗口、单位时间事务处理量、以及资源使用情况、对比升级前后的性能情况等。在数据库升级前进行基准测试时,采用并发模拟控制器不断地对核心SQL语句进行发压直到资源使用超过阈值,记录升级前各个并发压力下核心SQL语句地执行时间、TPS和资源使用情况作为升级前的基准数据。
S402:将数据库升级前的验证结果和数据库升级后的验证结果进行对比。
在一具体实施例中,当升级前的基准验证结束后,会输出升级前验证结束口令,然后将该口令传送给版本触发器,版本触发器进行升级后版本的切换,然后进行升级后的基准测试。
在升级后的数据库中进行基准测试时,得到测试结果的各个指标和升级前的数据库的基准测试数据相比,可能出现以下6种情况:
1)若某项资源超过阈值且升级后吞吐量未达到升级前同并发的吞吐量,则认定数据库升级后影响该语句的性能,终止测试,设置为不通过。
2)若某项资源超出阈值且升级后吞吐量达到升级前的吞吐量,则可以定位为资源使用问题,终止测试,设置为不通过。
3)若所有资源均未超出阈值且升级后吞吐量未达到升级前吞吐量,同时等于或小于上一轮吞吐量,则可以定位为扩展性问题,终止测试,设置为不通过。
4)若所有资源均未超出阈值且升级后吞吐量未达到升级前吞吐量,同时大于上一轮实际吞吐量,则可以通知并发模拟控制器向上调整并发数,以进行下一轮测试;
5)若某项资源均未超过阈值且升级后吞吐量达到升级前吞吐量,但是相同吞吐量情况下,升级后耗时更长,则表现出数据库升级后影响该语句的性能,终止测试,设置为不通过。
6)若所有资源均未超出阈值且升级后吞吐量达到升级前的吞吐量,同时大于上一轮实际吞吐量,则可以通知并发模拟控制器向上调整并发数,以进行下一轮测试,表明数据库升级后性能优于升级前;直到资源出现瓶颈,终止测试,设置为通过。
在一实施例中,构建规则匹配模型的步骤,包括:
根据设定的对比参考信息构建规则匹配模型,对比参考信息包括:cost值、分布键、执行计划时间、下推函数和统计信息。
在一具体实施例中,如图5所示,规则匹配模型包括如下几个功能模块:
cost值模块401:获取核心SQL语句,将语句导入到目标数据库中,生成执行计划,验证一下升级前后的cost值是否发生变化,如果发生变化,则升级后对语句执行计划有影响。
分布键402:将核心SQL语句导入到目标数据库中,对语句中涉及到的表的分布键进行验证,验证一下升级前后的分布键是否发生变化,如果有变化,则升级后对语句执行计划有影响。
时间模块403:将核心SQL语句导入到目标数据库中,对语句生成执行计划,验证升级前后执行计划的时间是否发生较大的变化,如果有变化,则升级后对语句执行计划有影响。
统计信息模块404:将核心SQL语句导入到目标数据库中,对SQL语句进行统计信息收集,验证升级前后统计信息是否有较大变化,如果有变化,则升级后对语句执行计划有影响。
下推函数模块405:将核心SQL语句导入到目标数据库中,生成语句的执行计划,如果有明显不下推函数的关键字,则升级后对语句执行计划有影响。
扫描方式模块406:将核心SQL语句导入到目标数据库中,生成语句的执行计划,扫描相同语句中执行计划的扫描方式是否发生变化,如升级前是索引扫描,升级后是顺序扫描等,则升级后对语句执行计划有影响。
因此,可以通过cost值、分布键、执行计划时间、统计信息、下推函数、扫描方式等,构建规则匹配模型,如果出现匹配规则中有不一致的情况,则表现出升级前后执行计划发生变化。将这些执行计划有变化的语句记录下来,用于基准测试。
在一实施例中,所述筛选模型的构建方法,包括:利用所述特征信息建立所述筛选模型。
在一具体实施例中,扫描所有的SQL语句,并进行计数,判断该语句的使用次数是否超过某个阈值,该阈值可以通过语句在作业中使用次数的TOP10的平均值作为语句频繁度的阈值,如果超过这个阈值,则认为“语句频繁度”特征信息可以作为建立筛选模型的训练因素之一;扫描所有SQL语句的运行时间,并计算出语句的平均执行时间作为阈值,当语句执行时间超过该阈值时,则说明“时间窗口”这一特征信息可以作为训练因素之一;扫描所有SQL语句是否包含大表信息,如果表的数据量有超过500G,则认为该表是大表,则大表信息这一特征信息可以作为训练因素之一;使用已有的知识图谱模型对SQL语句进行建模,分析出语句中关联次数比较多的语句,则关联次数特征可以作为训练因素之一;扫描SQL语句中使用表的个数并计算出语句中使用次数的TOP10的平均值作为阈值,如果使用表的个数超过阈值,则表的个数特征可以作为训练因素之一;扫描所有SQL语句的统计信息,统计信息比较繁杂的可以将统计信息作为训练因素之一。
如上已获得所有的训练因素,将上述训练因素传入到XGBoost算法模型中,对这些特征信息进行不断训练,即可最终训练出可以精准判断出核心SQL语句的筛选模型。
在利用基准测试工具对核心SQL语句测试完毕后,还可以生成测试报告。如图6所示,为一自动比对工具501,可以同时实现测试报告的生成功能,该自动比对工具501用于对升级前后核心SQL语句运行的时间、TPS和各个资源使用情况进行比对,输出核心SQL语句在数据库升级前后比对结果,比对结果中包含通过与不通过信息、以及测试报告,并经由邮件传送给相关人员。
基于同一发明构思,本申请实施例还提供了一种数据库升级场景下的应用性能检测的装置,可以用于实现上述实施例中所描述的方法,如下面实施例所述。由于该数据库升级场景下的应用性能检测的装置解决问题的原理与数据库升级场景下的应用性能检测方法相似,因此数据库升级场景下的应用性能检测装置的实施可以参见数据库升级场景下的应用性能检测方法的实施,重复之处不再赘述。以下所使用的,术语“单元”或者“模块”可以实现预定功能的软件和/或硬件的组合。尽管以下实施例所描述的系统较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。
如图7所示,本申请提供的一种数据库升级场景下的应用性能检测装置包括:
存储单元601,用于将获取的SQL语句存储至SQL信息库;
筛选单元602,用于从SQL信息库中筛选核心SQL语句存储至核心SQL信息库;
对比单元603,用于对比数据库升级前后核心SQL语句的执行计划是否发生变化;
检测验证单元604,用于将执行计划发生变化的核心SQL语句通过基准测试工具进行对比验证。
在一实施例中,如图8所示,筛选单元602包括:
特征信息提取模块701,用于提取SQL语句的特征信息,特征信息包括:语句频繁度、时间窗口分析、大表信息、关联次数和统计信息;
特定筛选模块702,用于根据特征信息,利用预先建立的筛选模型从SQL语句中筛选出包含设定内容的核心SQL语句;
存储模块703,用于将核心SQL语句存储至核心SQL信息库。
在一实施例中,如图9所示,对比单元603包括:
获取模块801,用于获取升级前的数据库中核心SQL语句的执行计划和升级后的数据库中SQL语句的执行计划;
一致性比较模块802,用于利用预先构建的规则匹配模型判断升级前的执行计划和升级后的执行计划是否一致。
在一实施例中,如图10所示,检测验证单元604包括:
运行模块901,用于在升级前的数据库和升级后的数据库中分别通过基准测试工具测试不同并发条件下的核心SQL语句,获得验证结果;
验证结果对比模块902,用于将数据库升级前的验证结果和数据库升级后的验证结果进行对比。
在一实施例中,如图11所示,构建规则匹配模型的装置具体包括:
参考信息选定构建模块1001,用于根据设定的对比参考信息构建规则匹配模型,对比参考信息包括:cost值、分布键、执行计划时间、下推函数和统计信息。
在一实施例中,如图12所示,筛选模型建立装置具体包括:
特征信息建立模型模块1101,用于利用所述特征信息建立所述筛选模型。
本申请的测试流程全自动化,无需人为干预,减少人力成本,整体流程具体包括:
1)生产运维:数据源平台,提供原始SQL信息;
2)获取SQL信息:通过配置持续集成任务,准实时地从运维平台获取生产运维信息;
3)核心SQL语句识别:根据匹配规则和机器学习算法,构建分析模型,根据六项维度以及各项的权重配比公式计算出SQL语句的核心度阈值,与设置的阈值进行比较,超过这个值,自动将获取核心SQL语句入库;
4)平台升级切换:通过自动触发切换获取升级前后环境;
5)执行计划是否变化:比对升级前后执行计划是否发生变化,若发生变化,则执行6):
6)同步生产数据:对于变换的核心SQL通过血缘分析工具获取源表信息,从生产同步数据;
7)基准测试工具:将数据、案例等自动纳入到基准测试工具中,对升级前后的数据库进行比对验证;
8)性能指标监控:将升级后的性能指标与升级前的各指标阈值进行比较,如果性能指更高,则通过,否则,将不通过,并将最终结果邮件反馈给用户。
本申请高度自动化,在无需依赖测试人员,无人值守下实现分布式数据库平台升级场景下性能的快速验证,有效提升测试效率,快速响应测试需求。表1为传统基准测试框架与使用本框架进行测试的比较。
表1
该框架已应用于分布式数据库MPPDB的重大变更事项,包括升级、搬迁和扩容等,通过全自动维护典型案例SQL,比对升级前后核心SQL的执行计划,对于执行计划有变化的SQL语句自动从生产同步数据,进行动态验证,案例灵活性明显提高,数据准备时间短,提高整个平台升级性能验证的效率,快速发现平台升级后的性能问题。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
本发明中应用了具体实施例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
本申请的实施例还提供能够实现上述实施例中的方法中全部步骤的一种电子设备的具体实施方式,参见图13,所述电子设备具体包括如下内容:
处理器(processor)1301、内存1302、通信接口(Communications Interface)1303、总线1304和非易失性存储器1305;
其中,所述处理器1301、内存1302、通信接口1303通过所述总线1304完成相互间的通信;
所述处理器1301用于调用所述内存1302和非易失性存储器1305中的计算机程序,所述处理器执行所述计算机程序时实现上述实施例中的方法中的全部步骤,例如,所述处理器执行所述计算机程序时实现下述步骤:
S101:将获取的SQL语句存储至SQL信息库。
S102:从SQL信息库中筛选核心SQL语句存储至核心SQL信息库。
S103:对比数据库升级前后核心SQL语句的执行计划是否发生变化。
S104:将执行计划发生变化的核心SQL语句通过基准测试工具进行对比验证。
本申请的实施例还提供能够实现上述实施例中的方法中全部步骤的一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,该计算机程序被处理器执行时实现上述实施例中的方法的全部步骤,例如,所述处理器执行所述计算机程序时实现下述步骤:
S101:将获取的SQL语句存储至SQL信息库。
S102:从SQL信息库中筛选核心SQL语句存储至核心SQL信息库。
S103:对比数据库升级前后核心SQL语句的执行计划是否发生变化。
S104:将执行计划发生变化的核心SQL语句通过基准测试工具进行对比验证。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于硬件+程序类实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。虽然本说明书实施例提供了如实施例或流程图所述的方法操作步骤,但基于常规或者无创造性的手段可以包括更多或者更少的操作步骤。实施例中列举的步骤顺序仅仅为众多步骤执行顺序中的一种方式,不代表唯一的执行顺序。在实际中的装置或终端产品执行时,可以按照实施例或者附图所示的方法顺序执行或者并行执行(例如并行处理器或者多线程处理的环境,甚至为分布式数据处理环境)。术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、产品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、产品或者设备所固有的要素。在没有更多限制的情况下,并不排除在包括所述要素的过程、方法、产品或者设备中还存在另外的相同或等同要素。为了描述的方便,描述以上装置时以功能分为各种模块分别描述。当然,在实施本说明书实施例时可以把各模块的功能在同一个或多个软件和/或硬件中实现,也可以将实现同一功能的模块由多个子模块或子单元的组合实现等。以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
本领域技术人员应明白,本说明书的实施例可提供为方法、系统或计算机程序产品。因此,本说明书实施例可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本说明书实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
在本说明书中,对上述术语的示意性表述不必须针对的是相同的实施例或示例。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。以上所述仅为本说明书实施例的实施例而已,并不用于限制本说明书实施例。对于本领域技术人员来说,本说明书实施例可以有各种更改和变化。凡在本说明书实施例的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本说明书实施例的权利要求范围之内。
Claims (14)
1.一种数据库升级场景下的应用性能检测方法,其特征在于,包括:
将获取的SQL语句存储至SQL信息库;
从所述SQL信息库中筛选核心SQL语句存储至核心SQL信息库;
对比数据库升级前后所述核心SQL语句的执行计划是否发生变化;
将执行计划发生变化的所述核心SQL语句通过基准测试工具进行对比验证。
2.根据权利要求1所述的应用性能检测方法,其特征在于,所述从所述SQL信息库中筛选核心SQL语句存储至核心SQL信息库,包括:
提取SQL语句的特征信息,所述特征信息包括:语句频繁度、时间窗口分析、大表信息、关联次数和统计信息;
根据所述特征信息,利用预先建立的筛选模型从SQL语句中筛选出包含设定内容的所述核心SQL语句;
将所述核心SQL语句存储至所述核心SQL信息库。
3.根据权利要求1所述的应用性能检测方法,其特征在于,所述对比数据库升级前后所述核心SQL语句的执行计划,包括:
获取升级前的数据库中所述核心SQL语句的执行计划和升级后的数据库中所述SQL语句的执行计划;
利用预先构建的规则匹配模型判断升级前的执行计划和升级后的执行计划是否一致。
4.根据权利要求1所述的应用性能检测方法,其特征在于,所述将执行计划发生变化的所述核心SQL语句通过基准测试工具进行对比验证,包括:
在升级前的数据库和升级后的数据库中分别通过基准测试工具测试不同并发条件下的所述核心SQL语句,获得验证结果;
将数据库升级前的验证结果和数据库升级后的验证结果进行对比。
5.根据权利要求3所述的应用性能检测方法,其特征在于,构建规则匹配模型的步骤,包括:
根据设定的对比参考信息构建规则匹配模型,所述对比参考信息包括:cost值、分布键、执行计划时间、下推函数和统计信息。
6.根据权利要求2所述的应用性能检测方法,其特征在于,所述筛选模型的构建方法,包括:
利用所述特征信息建立所述筛选模型。
7.一种数据库升级场景下的应用性能检测装置,其特征在于,包括:
存储单元,用于将获取的SQL语句存储至SQL信息库;
筛选单元,用于从所述SQL信息库中筛选核心SQL语句存储至核心SQL信息库;
对比单元,用于对比数据库升级前后所述核心SQL语句的执行计划是否发生变化;
检测验证单元,用于将执行计划发生变化的所述核心SQL语句通过基准测试工具进行对比验证。
8.根据权利要求7所述的应用性能检测装置,其特征在于,所述筛选单元包括:
特征信息提取模块,用于提取SQL语句的特征信息,所述特征信息包括:语句频繁度、时间窗口分析、大表信息、关联次数和统计信息;
特定筛选模块,用于根据所述特征信息,利用预先建立的筛选模型从SQL语句中筛选出包含设定内容的所述核心SQL语句;
存储模块,用于将所述核心SQL语句存储至所述核心SQL信息库。
9.根据权利要求7所述的应用性能检测装置,其特征在于,所述对比单元包括:
获取模块,用于获取升级前的数据库中所述核心SQL语句的执行计划和升级后的数据库中所述SQL语句的执行计划;
一致性比较模块,用于利用预先构建的规则匹配模型判断升级前的执行计划和升级后的执行计划是否一致。
10.根据权利要求7所述的应用性能检测装置,其特征在于,所述检测验证单元包括:
运行模块,用于在升级前的数据库和升级后的数据库中分别通过基准测试工具测试不同并发条件下的所述核心SQL语句,获得验证结果;
验证结果对比模块,用于将数据库升级前的验证结果和数据库升级后的验证结果进行对比。
11.根据权利要求9所述的应用性能检测装置,其特征在于,构建规则匹配模型的装置具体包括:
参考信息选定构建模块,用于根据设定的对比参考信息构建规则匹配模型,所述对比参考信息包括:cost值、分布键、执行计划时间、下推函数和统计信息。
12.根据权利要求9所述的应用性能检测装置,其特征在于,所述筛选模型建立装置具体包括:
特征信息建立模型模块,用于利用所述特征信息建立所述筛选模型。
13.一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现权利要求1至6中任意一项所述数据库升级场景下的应用性能检测方法。
14.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该计算机程序被处理器执行时实现权利要求1至6中任一项所述数据库升级场景下的应用性能检测方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010130494.0A CN111309581B (zh) | 2020-02-28 | 2020-02-28 | 一种数据库升级场景下的应用性能检测方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010130494.0A CN111309581B (zh) | 2020-02-28 | 2020-02-28 | 一种数据库升级场景下的应用性能检测方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111309581A true CN111309581A (zh) | 2020-06-19 |
CN111309581B CN111309581B (zh) | 2023-09-12 |
Family
ID=71160327
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010130494.0A Active CN111309581B (zh) | 2020-02-28 | 2020-02-28 | 一种数据库升级场景下的应用性能检测方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111309581B (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111767343A (zh) * | 2020-06-23 | 2020-10-13 | 中国工商银行股份有限公司 | 基于消息队列的测试数据同步方法和装置、设备以及介质 |
CN112818049A (zh) * | 2021-01-28 | 2021-05-18 | 中国人寿保险股份有限公司上海数据中心 | 一种信息系统性能全链路分析系统及其方法 |
CN113159967A (zh) * | 2021-05-07 | 2021-07-23 | 中国工商银行股份有限公司 | 基于金融核心联机交易场景的数据处理方法及装置 |
CN113409022A (zh) * | 2021-06-30 | 2021-09-17 | 中国工商银行股份有限公司 | 一种面向平台的自动化验收方法和装置 |
CN115687292A (zh) * | 2022-08-03 | 2023-02-03 | 杭州新中大科技股份有限公司 | 一种可验证的与数据库技术无关的数据库升级方法 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104866580A (zh) * | 2015-05-26 | 2015-08-26 | 梁猛 | 一种数据库变更对现有业务影响的快速侦测方法 |
US20160259825A1 (en) * | 2015-03-06 | 2016-09-08 | Dell Products L.P. | Discovery of potential problematic execution plans in a bind-sensitive query statement |
CN106445795A (zh) * | 2016-09-26 | 2017-02-22 | 中国工商银行股份有限公司 | 一种数据库sql效率检测方法及装置 |
CN107491485A (zh) * | 2016-09-21 | 2017-12-19 | 广州特道信息科技有限公司 | 生成执行计划的方法、计划单元和分布式NewSQL数据库系统 |
CN108197306A (zh) * | 2018-01-30 | 2018-06-22 | 平安科技(深圳)有限公司 | Sql语句处理方法、装置、计算机设备和存储介质 |
-
2020
- 2020-02-28 CN CN202010130494.0A patent/CN111309581B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20160259825A1 (en) * | 2015-03-06 | 2016-09-08 | Dell Products L.P. | Discovery of potential problematic execution plans in a bind-sensitive query statement |
CN104866580A (zh) * | 2015-05-26 | 2015-08-26 | 梁猛 | 一种数据库变更对现有业务影响的快速侦测方法 |
CN107491485A (zh) * | 2016-09-21 | 2017-12-19 | 广州特道信息科技有限公司 | 生成执行计划的方法、计划单元和分布式NewSQL数据库系统 |
CN106445795A (zh) * | 2016-09-26 | 2017-02-22 | 中国工商银行股份有限公司 | 一种数据库sql效率检测方法及装置 |
CN108197306A (zh) * | 2018-01-30 | 2018-06-22 | 平安科技(深圳)有限公司 | Sql语句处理方法、装置、计算机设备和存储介质 |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111767343A (zh) * | 2020-06-23 | 2020-10-13 | 中国工商银行股份有限公司 | 基于消息队列的测试数据同步方法和装置、设备以及介质 |
CN112818049A (zh) * | 2021-01-28 | 2021-05-18 | 中国人寿保险股份有限公司上海数据中心 | 一种信息系统性能全链路分析系统及其方法 |
CN112818049B (zh) * | 2021-01-28 | 2024-04-16 | 中国人寿保险股份有限公司上海数据中心 | 一种信息系统性能全链路分析系统及其方法 |
CN113159967A (zh) * | 2021-05-07 | 2021-07-23 | 中国工商银行股份有限公司 | 基于金融核心联机交易场景的数据处理方法及装置 |
CN113409022A (zh) * | 2021-06-30 | 2021-09-17 | 中国工商银行股份有限公司 | 一种面向平台的自动化验收方法和装置 |
CN113409022B (zh) * | 2021-06-30 | 2024-03-29 | 中国工商银行股份有限公司 | 一种面向平台的自动化验收方法和装置 |
CN115687292A (zh) * | 2022-08-03 | 2023-02-03 | 杭州新中大科技股份有限公司 | 一种可验证的与数据库技术无关的数据库升级方法 |
CN115687292B (zh) * | 2022-08-03 | 2023-06-23 | 杭州新中大科技股份有限公司 | 一种可验证的与数据库技术无关的数据库升级方法 |
Also Published As
Publication number | Publication date |
---|---|
CN111309581B (zh) | 2023-09-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111309581B (zh) | 一种数据库升级场景下的应用性能检测方法及装置 | |
CN106294120B (zh) | 测试代码的方法、设备和计算机程序产品 | |
EP2572294B1 (en) | System and method for sql performance assurance services | |
CN105786695B (zh) | 数据测试方法及系统 | |
CN108345532A (zh) | 一种自动化测试用例生成方法和装置 | |
CN108959068A (zh) | 软件界面测试方法、设备及存储介质 | |
CN108509344B (zh) | 日切跑批测试方法、设备及可读存储介质 | |
CN110309052A (zh) | 一种数据校验方法以及相关设备 | |
CN107102949B (zh) | 应用程序离线测试方法及工具 | |
CN106850330B (zh) | 智能化的云桌面性能测试系统及方法 | |
CN110471857B (zh) | 人工智能模型性能容量的自动测试方法及装置 | |
CN109857643A (zh) | 一种虚拟化平台性能自动测试的方法及装置 | |
CN105868956A (zh) | 一种数据处理方法及装置 | |
CN112784273A (zh) | 一种sql风险识别方法、装置及设备 | |
CN112200459A (zh) | 一种配电网数据质量分析评价方法及系统 | |
US20050278301A1 (en) | System and method for determining an optimized process configuration | |
CN114490413A (zh) | 测试数据的准备方法及装置、存储介质和电子设备 | |
CN111966665B (zh) | 数据迁移测试方法及装置 | |
CN113052501A (zh) | 一种基于资产的自动化安全运维方法及终端 | |
CN116866242A (zh) | 一种交换机回归测试方法、设备及介质 | |
JP2012014308A (ja) | 変更影響予測方法及び変更影響予測装置 | |
CN115248782B (zh) | 一种自动化测试方法、装置及计算机设备 | |
CN116523244A (zh) | 一种基于外包资源的测试人力风险预警方法 | |
CN114595216A (zh) | 数据校验方法、装置、存储介质及电子设备 | |
CN112612702B (zh) | 一种基于web的自动测试方法及装置 |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |