基于游标的数据库查询方法和网关设备与流程

文档序号:25421115发布日期:2021-06-11 21:32阅读:67来源:国知局
基于游标的数据库查询方法和网关设备与流程

本公开涉及数据库技术领域,特别是一种基于游标的数据库查询方法和网关设备。



背景技术:

用户系统运行在局域网环境中时,通常不考虑网络传输时延的影响,出现单一操作时高频次访问网络的情况;特别是在基于游标的数据库查询时,常见对游标进行逐行读取。这种读取方式在低时延的局域网环境中对系统总体使用感知不是太明显,但是如果把系统放到时延达到5毫秒以上的公有云运行环境时,将明显地感知到操作反应迟缓。同时,许多应用软件无法通过源代码改造优化查询效率,或改造成本代价太高。



技术实现要素:

本公开的一个目的在于提高数据库数据查询效率。

根据本公开的一些实施例的一个方面,提出一种基于游标的数据库查询方法,包括:监听客户端与数据库的连接,其中,数据库服务器位于公有云;在确定客户端在预定时长内对游标进行逐条查询的次数超过预定次数的情况下,从数据库服务器获取从游标位置开始的第一预定条数的数据存入网关;当客户端查询数据时,由网关向客户端提供数据。

在一些实施例中,基于游标的数据库查询方法还包括:在网关中未向客户端提供的剩余数据条数小于第二预定条数的情况下,从数据库服务器获取从网关缓存的最后一条数据的下一条开始的第一预定条数的数据,存入网关。

在一些实施例中,在确定客户端对游标进行逐条查询的次数超过预定次数的情况下,基于游标的数据库查询方法还包括:由网关替代数据库服务器,向客户端提供数据查询服务。

在一些实施例中,网关位于客户端所处的局域网与连接云主机的云专线之间。

在一些实施例中,基于游标的数据库查询方法还包括:当客户端开始连接数据库时,执行监听客户端与数据库的连接的操作。

通过这样的方法,能够在不对客户端软件本身做出改进的前提下,通过在网关处的处理,实现基于游标位置的数据缓存,由网关为客户端提供数据,避免长距离数据传输的时延过大,提高了数据库数据查询效率。

根据本公开的一些实施例的一个方面,提出一种网关设备,包括:监听单元,被配置为监听客户端与数据库的连接,其中,数据库服务器位于公有云;缓存单元,被配置为在确定客户端在预定时长内对游标进行逐条查询的次数超过预定次数的情况下,从数据库服务器获取从游标位置开始的第一预定条数的数据并缓存;数据提供单元,被配置为当客户端查询数据时,从缓存中向客户端提供数据。

在一些实施例中,缓存单元还被配置为:在未向客户端提供的剩余数据条数低于第二预定条数的情况下,从数据库服务器获取从网关缓存的最后一条数据的下一条开始的第一预定条数的数据,存入缓存。

在一些实施例中,数据提供单元还被配置为在确定客户端对游标进行逐条查询的次数超过预定次数的情况下,替代数据库服务器,向客户端提供数据查询服务。

在一些实施例中,网关设备位于客户端所处的局域网与连接云主机的云专线之间。

根据本公开的一些实施例的一个方面,提出一种网关设备,包括:存储器;以及耦接至存储器的处理器,处理器被配置为基于存储在存储器的指令执行上文中任意一种基于游标的数据库查询方法。

这样的网关设备能够在不对客户端软件本身做出改进的前提下,实现基于游标位置的数据缓存,由网关为客户端提供数据,避免长距离数据传输的时延过大,提高了数据库数据查询效率。

根据本公开的一些实施例的一个方面,提出一种计算机可读存储介质,其上存储有计算机程序指令,该指令被处理器执行时实现上文中任意一种基于游标的数据库查询方法的步骤。

通过执行这样的计算机可读存储介质上的指令,能够在不对客户端软件本身做出改进的前提下,实现基于游标位置的数据缓存,由网关为客户端提供数据,避免长距离数据传输的时延过大,提高了数据库数据查询效率。

附图说明

此处所说明的附图用来提供对本公开的进一步理解,构成本公开的一部分,本公开的示意性实施例及其说明用于解释本公开,并不构成对本公开的不当限定。在附图中:

图1为本公开的基于游标的数据库查询方法的一些实施例的流程图。

图2为本公开的基于游标的数据库查询方法的另一些实施例的流程图。

图3为本公开的网关设备的一些实施例的示意图。

图4为本公开的网关设备的另一些实施例的示意图。

图5为本公开的网关设备的又一些实施例的示意图。

具体实施方式

下面通过附图和实施例,对本公开的技术方案做进一步的详细描述。

当数据库从本地环境迁移到公有云环境时,客户端和数据库之间的时延将大幅度增加,尤其是当客户端需要使用游标从数据库中逐条提取数据时将导致整个操作反应时间特别长。

本公开的基于游标的数据库查询方法的一些实施例的流程图如图1所示。

在步骤101中,监听客户端与数据库的连接,其中,数据库服务器位于公有云云主机上时,通过云专线连接运行着客户端软件的局域网和云主机网络;云专线网关位于局域网的边沿,一端连接着局域网,一端连接着云专线,由云专线网关执行本公开的基于游标的数据库查询方法中的操作。

在步骤102中,判断客户端在预定时长内对游标进行逐条查询的次数是否超过了预定次数。在一些实施例中,预定时长和预定次数均可根据需要、用户使用习惯,以及数据库的种类调整。若客户端在预定时长内对游标进行逐条查询的次数超过了预定次数,则执行步骤103;否则,继续步骤101,对客户端操作进行监听。

在步骤103中,从数据库服务器获取从游标位置开始的第一预定条数的数据存入网关。在一些实施例中,第一预定条数可根据需要、用户使用习惯,以及数据库的种类调整。

在步骤104中,当客户端查询数据时,由网关向客户端提供数据。

通过这样的方法,能够在不对客户端软件本身做出改进的前提下,通过在网关处的处理,实现基于游标位置的数据缓存,由网关为客户端提供数据,避免长距离数据传输的时延过大,提高了数据库数据查询效率。

在一些实施例中,可以基于位于现有的局域网与云主机之间的云专线上的网关设备,加载升级软件,实现监听客户端与数据库的连接,缓存数据库服务器中的数据并向客户端提供的功能,从而无需对数据库软件本身进行改进,提高了通用性,也提高了可行性。

本公开的基于游标的数据库查询方法的另一些实施例的流程图如图2所示。

在步骤201中,当客户端开始连接数据库时,执行步骤202。

在步骤202中,位于客户端所处的局域网与连接云主机的云专线之间的网关设备监听客户端与数据库的连接。

在步骤203中,判断客户端在预定时长内对游标进行逐条查询的次数是否超过了预定次数。若客户端在预定时长内对游标进行逐条查询的次数超过了预定次数,则执行步骤204;否则,继续步骤202,对客户端操作进行监听。

在步骤204中,网关设备从数据库服务器获取从游标位置开始的第一预定条数的数据存入网关。

在步骤205中,由网关设备替代数据库服务器,向客户端提供数据查询服务。当客户端查询数据时,由网关向客户端提供数据。

在步骤206中,网关设备判断缓存中未向客户端提供的剩余数据条数是否小于第二预定条数,其中,第二预定条数小于第一预定条数。若未向客户端提供的剩余数据条数小于第二预定条数,则执行步骤207,否则继续执行步骤205。

在步骤207中,网关设备从数据库服务器获取从网关缓存的最后一条数据的下一条开始的第一预定条数的数据,存入网关,从而能够在缓存即将用尽前及时补充,提高可持续性,保证持续提高数据库数据提供速率,提高用户体验。

通过这样的方法,能够通过网络监听的方式监测所需优化的游标查询操作并适时启动优化功能,对数据库系统及应用软件完全透明,不需改造相关软件系统;通过缓存的机制,把逐行远程提取数据转变成一次性远程提取数据,再供本地逐行提取,由于时延差,可以大幅度减少软件网络交互总体时间;采用透明的方式,部署更为便捷,无需软件改造成本,有利于推广应用。

在一些实施例中,为避免用户重复查看之前的数据,可以将网关中缓存的数据留存一段时间,在达到预定缓存时长,或缓存空间用尽的情况下,清除到期的数据或覆盖最早缓存的数据,以保证对网关设备存储空间的利用率。

本公开的网关设备的一些实施例的示意图如图3所示。

监听单元301能够监听客户端与数据库的连接,其中,数据库服务器位于公有云云主机上时,通过云专线连接运行着客户端软件的局域网和云主机网络;云专线网关位于局域网的边沿,一端连接着局域网,一端连接着云专线,由云专线网关执行本公开的基于游标的数据库查询方法中的操作。

缓存单元302能够监听到客户端在预定时长内对游标进行逐条查询的次数超过了预定次数的情况下,从数据库服务器获取从游标位置开始的第一预定条数的数据存入网关。

数据提供单元303能够在客户端通过移动游标查询数据时,基于缓存的数据向客户端提供数据。在一些实施例中,数据提供单元303还能够接管服务功能,替代数据库服务器向客户端提供数据查询服务。

这样的网关设备能够在不对客户端软件本身做出改进的前提下,通过在网关处的处理,实现基于游标位置的数据缓存,由网关为客户端提供数据,避免长距离数据传输的时延过大,提高了数据库数据查询效率。

在一些实施例中,缓存单元302还能够在网管设备未向客户端提供的剩余数据条数低于第二预定条数的情况下,从数据库服务器获取从网关缓存的最后一条数据的下一条开始的第一预定条数的数据,存入缓存。

这样的网关设备能够在缓存即将用尽前及时补充,提高可持续性,保证持续提高数据库数据提供速率,提高用户体验。

本公开网关设备的一个实施例的结构示意图如图4所示。网关设备包括存储器401和处理器402。其中:存储器401可以是磁盘、闪存或其它任何非易失性存储介质。存储器用于存储上文中基于游标的数据库查询方法的对应实施例中的指令。处理器402耦接至存储器401,可以作为一个或多个集成电路来实施,例如微处理器或微控制器。该处理器402用于执行存储器中存储的指令,能够避免长距离数据传输的时延过大,提高数据库数据查询效率。

在一个实施例中,还可以如图5所示,网关设备500包括存储器501和处理器502。处理器502通过bus总线503耦合至存储器501。该网关设备500还可以通过存储接口504连接至外部存储装置505以便调用外部数据,还可以通过网络接口506连接至网络或者另外一台计算机系统(未标出)。此处不再进行详细介绍。

在该实施例中,通过存储器存储数据指令,再通过处理器处理上述指令,能够避免长距离数据传输的时延过大,提高数据库数据查询效率。

在另一个实施例中,一种计算机可读存储介质,其上存储有计算机程序指令,该指令被处理器执行时实现基于游标的数据库查询方法对应实施例中的方法的步骤。本领域内的技术人员应明白,本公开的实施例可提供为方法、装置、或计算机程序产品。因此,本公开可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本公开可采用在一个或多个其中包含有计算机可用程序代码的计算机可用非瞬时性存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。

本公开是参照根据本公开实施例的方法、设备(系统)和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。

这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

至此,已经详细描述了本公开。为了避免遮蔽本公开的构思,没有描述本领域所公知的一些细节。本领域技术人员根据上面的描述,完全可以明白如何实施这里公开的技术方案。

可能以许多方式来实现本公开的方法以及装置。例如,可通过软件、硬件、固件或者软件、硬件、固件的任何组合来实现本公开的方法以及装置。用于所述方法的步骤的上述顺序仅是为了进行说明,本公开的方法的步骤不限于以上具体描述的顺序,除非以其它方式特别说明。此外,在一些实施例中,还可将本公开实施为记录在记录介质中的程序,这些程序包括用于实现根据本公开的方法的机器可读指令。因而,本公开还覆盖存储用于执行根据本公开的方法的程序的记录介质。

最后应当说明的是:以上实施例仅用以说明本公开的技术方案而非对其限制;尽管参照较佳实施例对本公开进行了详细的说明,所属领域的普通技术人员应当理解:依然可以对本公开的具体实施方式进行修改或者对部分技术特征进行等同替换;而不脱离本公开技术方案的精神,其均应涵盖在本公开请求保护的技术方案范围当中。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1