CN102393842A - 指令处理装置和指令处理方法 - Google Patents

指令处理装置和指令处理方法 Download PDF

Info

Publication number
CN102393842A
CN102393842A CN2011101772392A CN201110177239A CN102393842A CN 102393842 A CN102393842 A CN 102393842A CN 2011101772392 A CN2011101772392 A CN 2011101772392A CN 201110177239 A CN201110177239 A CN 201110177239A CN 102393842 A CN102393842 A CN 102393842A
Authority
CN
China
Prior art keywords
instruction
database
command
metadata information
resource consumption
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
CN2011101772392A
Other languages
English (en)
Inventor
杨历
叶琳
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Yonyou Software Co Ltd
Original Assignee
Yonyou Software Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Yonyou Software Co Ltd filed Critical Yonyou Software Co Ltd
Priority to CN2011101772392A priority Critical patent/CN102393842A/zh
Publication of CN102393842A publication Critical patent/CN102393842A/zh
Pending legal-status Critical Current

Links

Images

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明提供一种指令处理装置和一种指令处理方法。其中,指令处理装置包括:信息获取模块,获取数据库的元数据信息;指令执行估算模块,根据元数据信息,估算待发送给数据库的指令在被执行时的资源消耗;指令处理模块,判断资源消耗是否超过预设阈值,并在判断结果为否时,允许指令发送至数据库,在判断结果为是时,禁止指令发送至数据库。通过本发明,能够在指令发送到数据库执行前,通过判断其是否占用了太多资源,确认是否允许其执行,防止了不良指令占用太多资源而对基于数据库的整个系统造成影响。

Description

指令处理装置和指令处理方法
技术领域
本发明涉及计算机技术领域,具体而言,涉及一种指令处理装置和一种指令处理方法。
背景技术
ERP以及其他大型企业软件往往由数百人合作而成。尽管通过代码走查和多层测试,但从统计的观点看,软件中仍然存在一些设计不良之处。其中有一类问题,就是将不良的数据库指令交给关系数据库执行,例如SQL语句。这些命令一旦交给关系数据库执行,会带来巨大的IO或内存开销,进而有可能造成整个ERP系统运行效率缓慢,甚至崩溃。
目前的解决方案有,使用代码静态扫描程序找到设计不良的SQL语句。此方法虽然有一定效果,但存在两个显而易见的问题:1、无法分析运行时动态产生的SQL命令;2、难于估计实际的执行成本(IO/内存),因为数据库表内的数据、索引信息都是动态变化的。
还有一种方法,就是设定SQL执行超时的时间。当SQL执行超过预先设定的阀值后,切断SQL语句的执行。这个方法可以在一定程度上缓解SQL语句的“单点问题”扩散至整体,但是SQL执行超时不一定是当前SQL语句功能点的设计问题,可能和关系数据库同时执行的其他SQL命令有关,不能准确的限定问题。
因此,需要一种新的用于判定数据库查询指令是否存在设计不良的方式,能够准确判断出哪个指令存在不良问题,并能够阻止其发送到数据库执行,防止对数据库相关的整个系统造成影响。
发明内容
本发明所要解决的技术问题在于,提供一种新的用于判定数据库查询指令是否存在设计不良的方式,能够准确判断出哪个指令存在不良问题,并能够阻止其发送到数据库执行,防止对数据库相关的整个系统造成影响。
有鉴于此,本发明提供一种指令处理装置,包括:信息获取模块,获取数据库的元数据信息;指令执行估算模块,根据元数据信息,估算待发送给数据库的指令在被执行时的资源消耗;指令处理模块,判断资源消耗是否超过预设阈值,并在判断结果为否时,允许指令发送至数据库,在判断结果为是时,禁止指令发送至数据库。通过该技术方案,能够在指令发送到数据库执行前,通过判断其是否占用了太多资源,确认是否允许其执行,防止了不良指令占用太多资源而对基于数据库的整个系统造成影响。
在上述技术方案中,优选地,资源消耗包括:执行指令所需要的数据量;执行指令将要输出的结果数据量;执行指令所需要占用的内存。
在上述技术方案中,优选地,指令处理模块还在判断结果为是时,通过日志记录指令。通过该技术方案,有利于快速找到可能有缺陷的指令,并对其进行改进。
在上述技术方案中,优选地,信息获取模块按预定时间或周期,获取元数据信息。
在上述技术方案中,优选地,元数据信息包括:表描述、字段描述、索引描述以及每个表的数据量、字段数据分布情况统计。
本发明还提供一种指令处理方法,包括:步骤202,获取数据库的元数据信息;步骤204,根据元数据信息,估算待发送给数据库的指令在被执行时的资源消耗;步骤206,判断资源消耗是否超过预设阈值,并在判断结果为否时,允许指令发送至数据库,在判断结果为是时,禁止指令发送至数据库。通过该技术方案,能够在指令发送到数据库执行前,通过判断其是否占用了太多资源,确认是否允许其执行,防止了不良指令占用太多资源而对基于数据库的整个系统造成影响。
在上述技术方案中,优选地,资源消耗包括:执行指令所需要的数据量;执行指令将要输出的结果数据量;执行指令所需要占用的内存。
在上述技术方案中,优选地,在步骤206中,在判断结果为是时,还包括:通过日志记录指令。通过该技术方案,有利于快速找到可能有缺陷的指令,并对其进行改进。
在上述技术方案中,优选地,在步骤202中,按预定时间或周期,获取元数据信息。
在上述技术方案中,优选地,元数据信息包括:表描述、字段描述、索引描述以及每个表的数据量、字段数据分布情况统计。
通过以上技术方案,可以实现一种指令处理装置和一种指令处理方法,能够准确判断出哪个指令存在不良问题,并能够阻止其发送到数据库执行,防止对数据库相关的整个系统造成影响。
附图说明
图1是根据本发明的一个实施例的指令处理装置的框图;
图2是根据本发明的一个实施例的指令处理方法的流程图;
图3是根据本发明的一个实施例的指令处理装置的工作示意图。
具体实施方式
为了能够更清楚地理解本发明的上述目的、特征和优点,下面结合附图和具体实施方式对本发明进行进一步的详细描述。
在下面的描述中阐述了很多具体细节以便于充分理解本发明,但是,本发明还可以采用其他不同于在此描述的其他方式来实施,因此,本发明并不限于下面公开的具体实施例的限制。
图1是根据本发明的一个实施例的指令处理装置的框图。
如图1所示,本发明提供一种指令处理装置100,包括:信息获取模块102,获取数据库的元数据信息;指令执行估算模块104,根据元数据信息,估算待发送给数据库的指令在被执行时的资源消耗;指令处理模块106,判断资源消耗是否超过预设阈值,并在判断结果为否时,允许指令发送至数据库,在判断结果为是时,禁止指令发送至数据库。通过该技术方案,能够在指令发送到数据库执行前,通过判断其是否占用了太多资源,确认是否允许其执行,防止了不良指令占用太多资源而对基于数据库的整个系统造成影响。
在上述技术方案中,资源消耗包括:执行指令所需要的数据量;执行指令将要输出的结果数据量;执行指令所需要占用的内存。
在上述技术方案中,指令处理模块106还在判断结果为是时,通过日志记录指令。通过该技术方案,有利于快速找到可能有缺陷的指令,并对其进行改进。
在上述技术方案中,信息获取模块102按预定时间或周期,获取元数据信息。
在上述技术方案中,元数据信息包括:表描述、字段描述、索引描述以及每个表的数据量、字段数据分布情况统计。
图2是根据本发明的一个实施例的指令处理方法的流程图。
如图2所示,本发明还提供一种指令处理方法,包括:步骤202,获取数据库的元数据信息;步骤204,根据元数据信息,估算待发送给数据库的指令在被执行时的资源消耗;步骤206,判断资源消耗是否超过预设阈值,并在判断结果为否时,允许指令发送至数据库,在判断结果为是时,禁止指令发送至数据库。通过该技术方案,能够在指令发送到数据库执行前,通过判断其是否占用了太多资源,确认是否允许其执行,防止了不良指令占用太多资源而对基于数据库的整个系统造成影响。
在上述技术方案中,资源消耗包括:执行指令所需要的数据量;执行指令将要输出的结果数据量;执行指令所需要占用的内存。
在上述技术方案中,在步骤206中,在判断结果为是时,还包括:通过日志记录指令。通过该技术方案,有利于快速找到可能有缺陷的指令,并对其进行改进。
在上述技术方案中,在步骤202中,按预定时间或周期,获取元数据信息。
在上述技术方案中,元数据信息包括:表描述、字段描述、索引描述以及每个表的数据量、字段数据分布情况统计。
图3是根据本发明的一个实施例的指令处理装置的工作示意图。
以下结合图3,对根据本发明实施例的指令处理装置的工作流程进行说明。
1.指令处理装置300调取数据库元数据信息304。
首先,指令处理装置300在启动时从数据库302中调取数据库元数据信息304。在该装置运行后,还会周期性同步元数据信息304。
其中,缓存在指令处理装置300的数据库元数据信息304包含以下内容:“表描述”、“字段描述”、“索引描述”和“每个表的数据量”、“字段数据分布情况统计”等等。这些元数据被用于进行SQL执行计划估计。
2.指令处理装置300执行SQL执行计划估计。
此处分析需要执行的SQL语句,需要执行的语句可能包括正常SQL语句306和问题SQL语句308。指令处理装置300读取缓存在进程(就是一般操作系统的进程,行业通用术语)内的SQL元数据信息304。执行计划估计,以估算计算消耗。当计算消耗超过预先设定的阀值,则阻断SQL命令向数据库发送。具体分析的数据有:
I/O分析:检查SQL语句的查询条件是否建立在索引基础之上。如果查询可以使用索引信息,允许SQL语句发送至数据库,否则查看查询所需的表的数据量,如果大于指定阀值A(比如1万),则禁止其发送至数据库。
内存占用分析:检查SQL语句内的Join是否会产生巨大的笛卡儿积。如果Join产生的笛卡尔积超过了指定阀值B(比如5000)列或者超过了阀值C(比如100万)行,则禁止该SQL语句发送至数据库。
阀值A,B,C按照经验根据具体情况设定。这些值的设定并不影响本发明的技术方案。
3.正常的SQL语句306。
对于能够通过SQL执行计划估计的SQL语句306,指令处理装置300将其转发到数据库302,数据结果返回并不通过该装置,而是直接交给具体的应用模块,返回给模块中的SQL语句。
4.有问题的SQL语句308。
对于不能通过SQL执行计划估计的SQL语句308,指令处理装置300会被阻断这些SQL命令向数据库302的提交,它们不会被数据库302执行。出现问题的语句308和当前执行堆栈(线程的一部分,行业通用术语)被记录在运行日志中,方便日后分析问题SQL语句308的来源。
根据以上指令处理装置300的示例如下:
Figure BDA0000071953730000061
Figure BDA0000071953730000062
需要注意的是,尽管本实施例中使用SQL(结构化查询语言)进行描述。但类似的其他查询语言比如Linq(语言集成查询)、OQL(对象查询语言)、EntityQuery(实体查询)或者其他数据库查询指令都适用于本实施例中的指令处理装置。
通过以上技术方案,可以实现一种指令处理装置和一种指令处理方法,能够准确判断出哪个指令存在不良问题,并能够阻止其发送到数据库执行,防止对数据库相关的整个系统造成影响。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (10)

1.一种指令处理装置,其特征在于,包括:
信息获取模块,获取数据库的元数据信息;
指令执行估算模块,根据所述元数据信息,估算待发送给所述数据库的指令在被执行时的资源消耗;
指令处理模块,判断所述资源消耗是否超过预设阈值,并在判断结果为否时,允许所述指令发送至所述数据库,在判断结果为是时,禁止所述指令发送至所述数据库。
2.根据权利要求1所述的指令处理装置,其特征在于,所述资源消耗包括:
执行所述指令所需要的数据量;
执行所述指令将要输出的结果数据量;
执行所述指令所需要占用的内存。
3.根据权利要求1所述的指令处理装置,其特征在于,所述指令处理模块还在判断结果为是时,通过日志记录所述指令。
4.根据权利要求1所述的指令处理装置,其特征在于,所述信息获取模块按预定时间或周期,获取所述元数据信息。
5.根据权利要求1至4中任一项所述的指令处理装置,其特征在于,所述元数据信息包括:
表描述、字段描述、索引描述以及每个表的数据量、字段数据分布情况统计。
6.一种指令处理方法,其特征在于,包括:
步骤202,获取数据库的元数据信息;
步骤204,根据所述元数据信息,估算待发送给所述数据库的指令在被执行时的资源消耗;
步骤206,判断所述资源消耗是否超过预设阈值,并在判断结果为否时,允许所述指令发送至所述数据库,在判断结果为是时,禁止所述指令发送至所述数据库。
7.根据权利要求6所述的指令处理方法,其特征在于,所述资源消耗包括:
执行所述指令所需要的数据量;
执行所述指令将要输出的结果数据量;
执行所述指令所需要占用的内存。
8.根据权利要求6所述的指令处理方法,其特征在于,在所述步骤206中,在判断结果为是时,还包括:
通过日志记录所述指令。
9.根据权利要求6所述的指令处理方法,其特征在于,在所述步骤202中,按预定时间或周期,获取所述元数据信息。
10.根据权利要求6至9中任一项所述的指令处理方法,其特征在于,所述元数据信息包括:
表描述、字段描述、索引描述以及每个表的数据量、字段数据分布情况统计。
CN2011101772392A 2011-06-28 2011-06-28 指令处理装置和指令处理方法 Pending CN102393842A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN2011101772392A CN102393842A (zh) 2011-06-28 2011-06-28 指令处理装置和指令处理方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN2011101772392A CN102393842A (zh) 2011-06-28 2011-06-28 指令处理装置和指令处理方法

Publications (1)

Publication Number Publication Date
CN102393842A true CN102393842A (zh) 2012-03-28

Family

ID=45861168

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2011101772392A Pending CN102393842A (zh) 2011-06-28 2011-06-28 指令处理装置和指令处理方法

Country Status (1)

Country Link
CN (1) CN102393842A (zh)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104298701A (zh) * 2014-07-18 2015-01-21 技嘉科技股份有限公司 I2c/spi指令之侦测与解读装置及方法
CN106407246A (zh) * 2016-07-22 2017-02-15 平安科技(深圳)有限公司 Sql执行计划管理的方法及装置
CN109213664A (zh) * 2018-08-23 2019-01-15 北京小度信息科技有限公司 Sql语句的性能分析方法、装置、存储介质和电子设备
CN110445632A (zh) * 2018-05-04 2019-11-12 北京京东尚科信息技术有限公司 一种预防客户端崩溃的方法和装置
CN111797112A (zh) * 2020-06-05 2020-10-20 武汉大学 一种PostgreSQL预备语句执行优化方法
CN113597606A (zh) * 2019-01-14 2021-11-02 微软技术许可有限责任公司 数据库索引确定和验证

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030065648A1 (en) * 2001-10-03 2003-04-03 International Business Machines Corporation Reduce database monitor workload by employing predictive query threshold
US20060294079A1 (en) * 2003-02-20 2006-12-28 Dettinger Richard D Incremental data query performance feedback model
US20080222087A1 (en) * 2006-05-15 2008-09-11 International Business Machines Corporation System and Method for Optimizing Query Access to a Database Comprising Hierarchically-Organized Data
US20080306903A1 (en) * 2007-06-08 2008-12-11 Microsoft Corporation Cardinality estimation in database systems using sample views

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030065648A1 (en) * 2001-10-03 2003-04-03 International Business Machines Corporation Reduce database monitor workload by employing predictive query threshold
US20060294079A1 (en) * 2003-02-20 2006-12-28 Dettinger Richard D Incremental data query performance feedback model
US20080222087A1 (en) * 2006-05-15 2008-09-11 International Business Machines Corporation System and Method for Optimizing Query Access to a Database Comprising Hierarchically-Organized Data
US20080306903A1 (en) * 2007-06-08 2008-12-11 Microsoft Corporation Cardinality estimation in database systems using sample views

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104298701A (zh) * 2014-07-18 2015-01-21 技嘉科技股份有限公司 I2c/spi指令之侦测与解读装置及方法
CN104298701B (zh) * 2014-07-18 2017-09-22 技嘉科技股份有限公司 I2c/spi指令之侦测与解读装置及方法
CN106407246A (zh) * 2016-07-22 2017-02-15 平安科技(深圳)有限公司 Sql执行计划管理的方法及装置
CN106407246B (zh) * 2016-07-22 2020-12-04 平安科技(深圳)有限公司 Sql执行计划管理的方法及装置
CN110445632A (zh) * 2018-05-04 2019-11-12 北京京东尚科信息技术有限公司 一种预防客户端崩溃的方法和装置
CN110445632B (zh) * 2018-05-04 2023-09-01 北京京东尚科信息技术有限公司 一种预防客户端崩溃的方法和装置
CN109213664A (zh) * 2018-08-23 2019-01-15 北京小度信息科技有限公司 Sql语句的性能分析方法、装置、存储介质和电子设备
CN113597606A (zh) * 2019-01-14 2021-11-02 微软技术许可有限责任公司 数据库索引确定和验证
CN111797112A (zh) * 2020-06-05 2020-10-20 武汉大学 一种PostgreSQL预备语句执行优化方法
CN111797112B (zh) * 2020-06-05 2022-04-01 武汉大学 一种PostgreSQL预备语句执行优化方法

Similar Documents

Publication Publication Date Title
US10642832B1 (en) Reducing the domain of a subquery by retrieving constraints from the outer query
CN102393842A (zh) 指令处理装置和指令处理方法
EP3182288A1 (en) Systems and methods for generating performance prediction model and estimating execution time for applications
US9535818B2 (en) Identifying high impact bugs
US9354867B2 (en) System and method for identifying, analyzing and integrating risks associated with source code
US20090287729A1 (en) Source code coverage testing
US20120290527A1 (en) Data extraction and testing method and system
US9471651B2 (en) Adjustment of map reduce execution
US9836504B2 (en) Query progress estimation based on processed value packets
US11003574B2 (en) Optimized testing system
CN104778185B (zh) 异常结构化查询语言sql语句确定方法及服务器
US10860465B2 (en) Automatically rerunning test executions
CN103092761A (zh) 基于差异信息文件识别和检查修改代码块的方法及装置
CN103679038B (zh) 并行程序共享数据类漏洞的检测方法及系统
US11120521B2 (en) Techniques for graphics processing unit profiling using binary instrumentation
CN103870382A (zh) 一种代码风险的检测方法及装置
CN104572474A (zh) 一种基于动态切片的轻量级错误定位技术实现方法
CN103645961A (zh) 计算密集型并行任务的异常检测方法及系统
KR101198397B1 (ko) 원자력 발전소 출력운전 중 범용 리스크감시 시스템 및 그 방법
US9195730B2 (en) Verifying correctness of a database system via extended access paths
CN106407246B (zh) Sql执行计划管理的方法及装置
CN104461864A (zh) 一种基于Eclipse插件的Java源代码缺陷检测方法及其系统
CN102968305B (zh) 逻辑处理方法、装置及测评系统
CN102567351A (zh) 一种数据库变更效果的测试方法及测试装置
US20140208288A1 (en) Apparatus and Method for Managing a Software Development and Maintenance System

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C12 Rejection of a patent application after its publication
RJ01 Rejection of invention patent application after publication

Application publication date: 20120328