指令处理装置和指令处理方法制造方法及图纸

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

【技术实现步骤摘要】

本专利技术涉及计算机
,具体而言,涉及一种指令处理装置和一种指令处理方法。
技术介绍
ERP以及其他大型企业软件往往由数百人合作而成。尽管通过代码走查和多层测试,但从统计的观点看,软件中仍然存在一些设计不良之处。其中有一类问题,就是将不良的数据库指令交给关系数据库执行,例如SQL语句。这些命令一旦交给关系数据库执行,会带来巨大的IO或内存开销,进而有可能造成整个ERP系统运行效率缓慢,甚至崩溃。目前的解决方案有,使用代码静态扫描程序找到设计不良的SQL语句。此方法虽然有一定效果,但存在两个显而易见的问题1、无法分析运行时动态产生的SQL命令;2、难于估计实际的执行成本(10/内存),因为数据库表内的数据、索引信息都是动态变化的。还有一种方法,就是设定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本文档来自技高网...

【技术保护点】

【技术特征摘要】

【专利技术属性】
技术研发人员:杨历叶琳
申请(专利权)人:用友软件股份有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1
相关领域技术