代理服务器、包含其的数据库执行信息的获取系统和获取方法.pdf

上传人:54 文档编号:1750761 上传时间:2018-07-09 格式:PDF 页数:10 大小:640.09KB
返回 下载 相关 举报
摘要
申请专利号:

CN201310698219.9

申请日:

2013.12.18

公开号:

CN104731780A

公开日:

2015.06.24

当前法律状态:

授权

有效性:

有权

法律详情:

授权|||实质审查的生效IPC(主分类):G06F 17/30申请日:20131218|||公开

IPC分类号:

G06F17/30

主分类号:

G06F17/30

申请人:

青岛海尔空调器有限总公司; 海尔集团公司

发明人:

纪婷琪; 佘敏; 吉惠; 冷合礼; 王旭政; 张涛; 王森; 赵晨

地址:

266101山东省青岛市崂山区海尔路1号海尔工业园

优先权:

专利代理机构:

北京志霖恒远知识产权代理事务所(普通合伙)11435

代理人:

孟阿妮; 郭栋梁

PDF下载: PDF下载
内容摘要

本发明涉及一种代理服务器、包含其的数据库执行信息的获取系统和获取方法。其中,数据库执行信息的获取系统包括代理服务器、至少一台数据源服务器、以及至少一台应用服务器。代理服务器接收应用服务器发送的数据库执行指令,数据库执行指令配置的链接地址为数据源服务器链接地址;代理服务器创建代理数据源,在代理数据源中配置数据源服务器链接地址,将数据库执行指令中的链接地址修改为代理数据源的地址、并发送给数据源链接地址指向的数据源服务器;代理服务器还基于代理数据源记录数据库执行指令的执行信息。采用本发明的代理服务器、包含其的数据库执行信息的获取系统和获取方法,可以监控SQL语句的执行效率以及执行参数。

权利要求书

权利要求书
1.  一种数据库执行信息的获取系统,其特征在于,包括代理服务器、 分别与代理服务器通信连接的至少一台数据源服务器、以及分别与代理服 务器通信连接的至少一台应用服务器;
所述代理服务器用于接收所述应用服务器发送的数据库执行指令,所 述数据库执行指令配置的链接地址为数据源服务器链接地址;
所述代理服务器用于创建代理数据源,在所述代理数据源中配置所述 数据源服务器链接地址,将所述数据库执行指令中的链接地址修改为所述 代理数据源的地址、并发送给所述数据源链接地址指向的数据源服务器;
所述代理服务器还用于基于所述代理数据源记录所述数据库执行指 令的执行信息。

2.  根据权利要求1所述的数据库执行信息的获取系统,其特征在于, 还包括与所述代理服务器通信连接的存储模块;
所述代理服务器将所述数据源查询指令和所述数据源语句的执行信 息保存至所述存储模块。

3.  根据权利要求2所述的数据库执行信息的获取系统,其特征在于:
所述代理服务器通过独立的异步调用线程来将所述数据源查询指令 和所述数据源语句的执行信息保存至存储模块。

4.  根据权利要求3所述的数据库执行信息的获取系统,其特征在于:
所述代理服务器在收到每条所述数据源查询指令和所述数据源语句 的执行信息后,将所述数据源查询指令和所述数据源语句的执行信息保存 至所述存储模块;
或者,
所述代理服务器在收到预定数量的所述数据源查询指令和所述数据 源语句的执行信息后,一次性将预定数量的所述数据源查询指令和所述数 据源语句的执行信息保存至所述存储模块。

5.  根据权利要求2-4任意一项所述的数据库执行信息的获取系统,其 特征在于:
所述执行信息包括执行所述数据源查询指令的执行时间、执行参数、 所述数据源查询指令本身、所述数据源查询指令的类型、执行结束时间和 异常信息的一种或多种。

6.  根据权利要求1-4任意一项所述的数据库执行信息的获取系统,其 特征在于:
所述代理数据源包括数据库链接对象、SQL语句对象和存储过程语 句对象。

7.  一种代理服务器,其特征在于,包括:
接收模块,用于接收应用服务器发送的数据库执行指令,所述数据库 执行指令配置的链接地址为数据源服务器链接地址;
创建模块,用于创建代理数据源,在所述代理数据源中配置所述数据 源服务器链接地址,将所述数据库执行指令中的链接地址修改为所述代理 数据源的地址、并发送给所述数据源链接地址指向的数据源服务器;
记录模块,用于基于所述代理数据源记录所述数据库执行指令的执行 信息。

8.  根据权利要求7所述的代理服务器,其特征在于:
所述记录模块用于将所述数据源查询指令和所述数据源语句的执行 信息保存至外部的存储模块。

9.  根据权利要求8所述的代理服务器,其特征在于:
所述记录模块通过独立的异步调用线程来将所述数据源查询指令和 所述数据源语句的执行信息保存至外部的存储模块。

10.  根据权利要求9所述的代理服务器,其特征在于:
所述记录模块用于在收到每条所述数据源查询指令和所述数据源语 句的执行信息后,将所述数据源查询指令和所述数据源语句的执行信息保 存至所述存储模块;
或者,
所述记录模块用于在收到预定数量的所述数据源查询指令和所述数 据源语句的执行信息后,一次性将预定数量的所述数据源查询指令和所述 数据源语句的执行信息保存至所述存储模块。

11.  根据权利要求8-10任意一项所述的代理服务器,其特征在于:
所述执行信息包括执行所述数据源查询指令的执行时间、执行参数、 所述数据源查询指令本身、所述数据源查询指令的类型、执行结束时间和 异常信息的一种或多种。

12.  根据权利要求11所述的代理服务器,其特征在于:
所述代理数据源包括数据库链接对象、SQL语句对象和存储过程语 句对象。

13.  一种数据库执行信息的获取方法,其特征在于,包括:
代理服务器接收应用服务器发送的数据库执行指令,所述数据库执行 指令配置的链接地址为数据源服务器链接地址;
所述代理服务器创建代理数据源,在所述代理数据源中配置所述数据 源服务器链接地址,将所述数据库执行指令中的链接地址修改为所述代理 数据源的地址、并发送给所述数据源链接地址指向的数据源服务器;
所述代理服务器基于所述代理数据源记录所述数据库执行指令的执 行信息。

14.  根据权利要求13所述的数据库执行信息的获取方法,其特征在 于,所述“所述代理服务器基于所述代理数据源记录所述数据库执行指令 的执行信息”具体包括:
代理服务器将所述数据源查询指令和所述数据源语句的执行信息保 存至存储模块。

15.  根据权利要求14所述的数据源语句执行信息的获取方法,其特 征在于:
代理服务器通过独立的异步调用线程来将所述数据源查询指令和所 述数据源语句的执行信息保存至存储模块。

16.  根据权利要求15所述的数据库执行信息的获取方法,其特征在 于:
代理服务器在收到每条所述数据源查询指令和所述数据源语句的执 行信息后,将所述数据源查询指令和所述数据源语句的执行信息保存至存 储模块;
或者,
代理服务器在收到预定数量的所述数据源查询指令和所述数据源语 句的执行信息后,一次性将预定数量的所述数据源查询指令和所述数据源 语句的执行信息保存至存储模块。

17.  根据权利要求14-16任意一项所述的数据库执行信息的获取方 法,其特征在于:
所述执行信息包括执行所述数据源查询指令的执行时间、执行参数、 所述数据源查询指令本身、所述数据源查询指令的类型、执行结束时间和 异常信息的一种或多种。

18.  根据权利要求13-16任意一项所述的数据库执行信息的获取方 法,其特征在于:
所述代理数据源包括数据库链接对象、SQL语句对象和存储过程语 句对象。

说明书

说明书代理服务器、包含其的数据库执行信息的获取系统和获取方法
技术领域
本发明涉及一种数据库查询技术,特别是一种代理服务器、包含其的 数据库执行信息的获取系统和获取方法。
背景技术
业务系统大都需要与数据库进行交互,保存数据或查询结果,这些操 作底层都是通过数据库的结构化查询语言(Structured Query Language, SQL)语句来完成的。
随着系统业务的复杂性和数据量的增大,SQL语句的执行效率越来 越成为系统性能的瓶颈,如何能定位系统中执行过的SQL语句的执行效 率以及执行时候的上下文信息(即参数)成为了亟待解决的问题。
部分数据库提供了服务器端的监控工具来查看这些SQL,但不具有 通用性,如oracle后台提供工具可以查看,但是到myql或其他数据库时 则不能实现查看。
发明内容
在下文中给出关于本发明的简要概述,以便提供关于本发明的某些方 面的基本理解。应当理解,这个概述并不是关于本发明的穷举性概述。它 并不是意图确定本发明的关键或重要部分,也不是意图限定本发明的范 围。其目的仅仅是以简化的形式给出某些概念,以此作为稍后论述的更详 细描述的前序。
本发明的一个主要目的在于提供一种代理服务器、包含其的数据库执 行信息的获取系统和获取方法,其可以封装获取SQL和执行参数信息的 组件,进而封装对底层具体数据库产品和上层开发人员调用的复杂性从而 监控SQL语句的执行效率以及执行参数。
根据本发明的一方面,一种数据库执行信息的获取系统,包括代理服 务器、分别与代理服务器通信连接的至少一台数据源服务器、以及分别与 代理服务器通信连接的至少一台应用服务器;
所述代理服务器用于接收所述应用服务器发送的数据库执行指令,所 述数据库执行指令配置的链接地址为数据源服务器链接地址;
所述代理服务器用于创建代理数据源,在所述代理数据源中配置所述 数据源服务器链接地址,将所述数据库执行指令中的链接地址修改为所述 代理数据源的地址、并发送给所述数据源链接地址指向的数据源服务器;
所述代理服务器还用于基于所述代理数据源记录所述数据库执行指 令的执行信息。
根据本发明的第二方面,一种代理服务器,包括:
接收模块,用于接收应用服务器发送的数据库执行指令,所述数据库 执行指令配置的链接地址为数据源服务器链接地址;
创建模块,用于创建代理数据源,在所述代理数据源中配置所述数据 源服务器链接地址,将所述数据库执行指令中的链接地址修改为所述代理 数据源的地址、并发送给所述数据源链接地址指向的数据源服务器;
记录模块,用于基于所述代理数据源记录所述数据库执行指令的执行 信息。
根据本发明的第三方面,一种数据库执行信息的获取方法,包括:
代理服务器接收应用服务器发送的数据库执行指令,所述数据库执行 指令配置的链接地址为数据源服务器链接地址;
所述代理服务器创建代理数据源,在所述代理数据源中配置所述数据 源服务器链接地址,将所述数据库执行指令中的链接地址修改为所述代理 数据源的地址、并发送给所述数据源链接地址指向的数据源服务器;
所述代理服务器基于所述代理数据源记录所述数据库执行指令的执 行信息。
采用本发明的数据库执行信息的获取系统和获取方法,可以监控 SQL语句的执行效率以及执行参数。
附图说明
参照下面结合附图对本发明实施例的说明,会更加容易地理解本发明 的以上和其它目的、特点和优点。附图中的部件只是为了示出本发明的原 理。在附图中,相同的或类似的技术特征或部件将采用相同或类似的附图 标记来表示。
图1为本发明的数据库执行信息的获取系统的一种实施方式的结构 图;
图2为本发明的代理服务器一种实施方式的结构图;
图3为本发明的数据库执行信息的获取方法的一种实施方式的流程 图。
具体实施方式
下面参照附图来说明本发明的实施例。在本发明的一个附图或一种实 施方式中描述的元素和特征可以与一个或更多个其它附图或实施方式中 示出的元素和特征相结合。应当注意,为了清楚的目的,附图和说明中省 略了与本发明无关的、本领域普通技术人员已知的部件和处理的表示和描 述。
参见图1所示,为本发明的数据库执行信息的获取系统的一种实施方 式的结构图。
在本实施方式中,数据源语句执行信息的获取系统包括代理服务器 10、分别与代理服务器10通信连接的至少一台数据源服务器20、以及分 别与代理服务器通信连接的至少一台应用服务器30。
代理服务器10用于接收应用服务器30发送的数据库执行指令,数据 库执行指令配置的链接地址为数据源服务器20链接地址。
代理服务器10还用于创建代理数据源,在代理数据源中配置数据源 服务器20链接地址,将数据库执行指令中的链接地址修改为代理数据源 的地址、并发送给数据源链接地址指向的数据源服务器20。代理数据源 例如可以包括数据库链接对象、SQL语句对象和存储过程语句对象等。
代理服务器10还用于基于代理数据源记录数据库执行指令的执行信 息。
作为一种实施方式,数据源语句执行信息的获取系统还可以包括与代 理服务器10通信连接的存储模块40。
代理服务器10将数据源查询指令和数据源语句的执行信息保存至存 储模块40。
执行信息例如可以包括执行数据源查询指令的执行时间、执行参数、 数据源查询指令本身、数据源查询指令的类型、执行结束时间和异常信息 的一种或多种。
为了提高存储效率,作为一种实施方式,代理服务器10可以通过独 立的异步调用线程来将数据源查询指令和数据源语句的执行信息保存至 存储模块40。
作为一种实施方式,代理服务器10可以在收到每条数据源查询指令 和数据源语句的执行信息后,将数据源查询指令和数据源语句的执行信息 保存至存储模块40。
或者,
代理服务器10还可以在收到预定数量的数据源查询指令和数据源语 句的执行信息后,一次性将预定数量的数据源查询指令和数据源语句的执 行信息保存至存储模块40。
例如,代理服务器10在接收到应用服务器30发送的数据源查询指令 后,应用服务器30发出的所有SQL语句链接执行都经过该代理服务器 10来执行。代理服务器10还负责创建与SQL执行相关用到的其他对象, 如数据库链接对象Connection、SQL语句对象Statement和 PreparedStatement对象,存储过程语句CallableStatement对象等。
在通过代理服务器10获取这几个对象时,都会创建对应对象的代理 对象,在这些代理对象内要运行SQL语句时,会记录执行的开始时间,传 入的参数,执行语句的类型(普通SQL语句或是预处理SQL语句)执行结 束时间和执行过程中产生的异常信息中的一种或多种。
参见图2所示,为本发明的代理服务器的一种实施方式的结构图。
在本实施方式中,代理服务器10包括接收模块11、创建模块12和 记录模块13。
接收模块11用于接收应用服务器30发送的数据库执行指令,数据库 执行指令配置的链接地址为数据源服务器链接地址。
创建模块12用于创建代理数据源,在代理数据源中配置数据源服务 器链接地址,将数据库执行指令中的链接地址修改为代理数据源的地址、 并发送给数据源链接地址指向的数据源服务器20。代理数据源例如可以 包括数据库链接对象、SQL语句对象和存储过程语句对象。
记录模块13用于基于代理数据源记录数据库执行指令的执行信息。
执行信息例如可以包括数据源查询指令的执行时间、执行参数、所述 数据源查询指令本身、数据源查询指令的类型、执行结束时间和异常信息 的一种或多种。
作为一种实施方式,记录模块13用于将数据源查询指令和数据源语 句的执行信息保存至外部的存储模块40。
作为一种实施方式,记录模块13通过独立的异步调用线程来将所述 数据源查询指令和所述数据源语句的执行信息保存至外部的存储模块。
记录模块13还用于在收到每条数据源查询指令和数据源语句的执行 信息后,将数据源查询指令和数据源语句的执行信息保存至存储模块40;
或者,
记录模块13用于在收到预定数量的数据源查询指令和数据源语句的 执行信息后,一次性将预定数量的数据源查询指令和数据源语句的执行信 息保存至存储模块40。
参见图3所示,为本发明的数据库执行信息的获取方法的一种实施方 式的流程图。
在该实施方式中,数据库执行信息的获取方法包括:
S10:代理服务器10接收应用服务器30发送的数据库执行指令,数据 库执行指令配置的链接地址为数据源服务器链接地址。
S20:代理服务器创建代理数据源,在代理数据源中配置数据源服务器 链接地址,将数据库执行指令中的链接地址修改为代理数据源的地址、并 发送给数据源链接地址指向的数据源服务器20;代理数据源例如可以包 括数据库链接对象、SQL语句对象和存储过程语句对象。
S30:代理服务器10基于代理数据源记录数据库执行指令的执行信 息。
执行信息例如可以包括执行数据源查询指令的执行时间、执行参数、 所述数据源查询指令本身、数据源查询指令的类型、执行结束时间和异常 信息的一种或多种。
作为一种实施方式,步骤S30可以具体包括:
代理服务器10将数据源查询指令和数据源语句的执行信息保存至存 储模块40。
作为一种实施方式,步骤S30还可以包括:
代理服务器10通过独立的异步调用线程来将数据源查询指令和数据 源语句的执行信息保存至存储模块40。
作为一种实施方式,在步骤S30中,
代理服务器可以10在收到每条数据源查询指令和数据源语句的执行 信息后,将数据源查询指令和数据源语句的执行信息保存至存储模块40;
或者,
代理服务器10还可以在收到预定数量的数据源查询指令和数据源语 句的执行信息后,一次性将预定数量的数据源查询指令和数据源语句的执 行信息保存至存储模块40。
采用本发明的代理服务器、包含其的数据库执行信息的获取系统和获 取方法,对开发人员完全透明。技术人员完全感觉不到代理服务器和代理 对象的存在,原有的业务程序不需要做任何改动。
此外,采用本发明的数据源语句执行信息的获取系统和获取方法可以 满足所有数据源SQL的监控。无论使用的是c3p0,dbcp,weblogic的数据 源还是其他,只要这些数据源是标准的DataSource接口实现,都可以无 缝的接入到代理服务器上来。
第三,本发明的代理服务器10对数据源查询指令(即SQL语句)的 拦截不影响正常业务操作。
第四,通过异步方式将数据保存到第三方介质(存储模块)中,同时 支持批量存储,提升了响应速度。
第五,实现了系统底层SQL执行透明化。通过记录数据源语句的执 行信息(SQL执行历史记录),可以明细获取SQL执行的瓶颈及最耗时 的地方达到有针对性优化的效果。
上面对本发明的一些实施方式进行了详细的描述。如本领域的普通技 术人员所能理解的,本发明的方法和装置的全部或者任何步骤或者部件, 可以在任何计算设备(包括处理器、存储介质等)或者计算设备的网络中, 以硬件、固件、软件或者它们的组合加以实现,这是本领域普通技术人员 在了解本发明的内容的情况下运用他们的基本编程技能就能实现的,因此 不需在此具体说明。
在本发明的设备和方法中,显然,各部件或各步骤是可以分解、组合 和/或分解后重新组合的。这些分解和/或重新组合应视为本发明的等效方 案。还需要指出的是,执行上述系列处理的步骤可以自然地按照说明的顺 序按时间顺序执行,但是并不需要一定按照时间顺序执行。某些步骤可以 并行或彼此独立地执行。同时,在上面对本发明具体实施例的描述中,针 对一种实施方式描述和/或示出的特征可以以相同或类似的方式在一个或 更多个其它实施方式中使用,与其它实施方式中的特征相组合,或替代其 它实施方式中的特征。
应该强调,术语“包括/包含”在本文使用时指特征、要素、步骤或 组件的存在,但并不排除一个或更多个其它特征、要素、步骤或组件的存 在或附加。
虽然已经详细说明了本发明及其优点,但是应当理解在不超出由所附 的权利要求所限定的本发明的精神和范围的情况下可以进行各种改变、替 代和变换。而且,本发明的范围不仅限于说明书所描述的过程、设备、手 段、方法和步骤的具体实施例。本领域内的普通技术人员从本发明的公开 内容将容易理解,根据本发明可以使用执行与在此所述的相应实施例基本 相同的功能或者获得与其基本相同的结果的、现有和将来要被开发的过 程、设备、手段、方法或者步骤。因此,所附的权利要求旨在在它们的范 围内包括这样的过程、设备、手段、方法或者步骤。

代理服务器、包含其的数据库执行信息的获取系统和获取方法.pdf_第1页
第1页 / 共10页
代理服务器、包含其的数据库执行信息的获取系统和获取方法.pdf_第2页
第2页 / 共10页
代理服务器、包含其的数据库执行信息的获取系统和获取方法.pdf_第3页
第3页 / 共10页
点击查看更多>>
资源描述

《代理服务器、包含其的数据库执行信息的获取系统和获取方法.pdf》由会员分享,可在线阅读,更多相关《代理服务器、包含其的数据库执行信息的获取系统和获取方法.pdf(10页珍藏版)》请在专利查询网上搜索。

本发明涉及一种代理服务器、包含其的数据库执行信息的获取系统和获取方法。其中,数据库执行信息的获取系统包括代理服务器、至少一台数据源服务器、以及至少一台应用服务器。代理服务器接收应用服务器发送的数据库执行指令,数据库执行指令配置的链接地址为数据源服务器链接地址;代理服务器创建代理数据源,在代理数据源中配置数据源服务器链接地址,将数据库执行指令中的链接地址修改为代理数据源的地址、并发送给数据源链接地址。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 物理 > 计算;推算;计数


copyright@ 2017-2020 zhuanlichaxun.net网站版权所有
经营许可证编号:粤ICP备2021068784号-1