数据库事务中的查询处理方法、介质与程序产品与流程

专利检索2025-07-19  9


本发明涉及数据库领域,特别是涉及一种数据库事务中的查询处理方法、介质与程序产品。


背景技术:

1、当前的关系数据库通常会支持两种事务模式,自动提交模式和非自动提交模式。在自动提交模式下,每条单独的语句都是一个单独事务,在语句执行完成后,数据库会自动将完整结果集一次返回给客户端。当查询的结果集很大时,一次返回全部行会阻塞会话连接,直到数据被客户端全部接收为止。很多应用程序都支持数据翻页查询功能,此类功能实际上并不需要数据库一次返回查询结果集中的全部行,显然自动提交模式的这种工作方式不符合该场景要求。


技术实现思路

1、鉴于上述问题,本发明提出了一种克服上述问题或者至少部分地解决上述问题的数据库事务中的查询处理方法、介质与程序产品。

2、本发明的一个目的是在自动提交模式下,使客户端可以实现按需查询,分批取得结果集。

3、特别地,本发明提供了一种数据库事务中的查询处理方法,其包括:

4、获取来自数据库客户端的操作报文;

5、根据操作报文生成查询执行体来执行指定查询,得到结果集,并根据操作报文返回指定行数的结果集;

6、判断结果集是否全部返回至客户端;

7、若否,则为查询执行体对应的事务状态设置未完成标识,并向客户端发送暂停报文,暂停报文用于表示结果集尚未全部返回至客户端;

8、接收来自客户端的同步报文,同步报文用于请求数据库同步事务状态;

9、在事务状态存在未完成标识时,保持事务状态不变。

10、可选地,操作报文包括解析报文、绑定报文以及执行报文;

11、根据操作报文生成查询执行体来执行指定查询,得到结果集,并根据操作报文返回指定行数的结果集的步骤包括:

12、获取客户端发送的解析报文,对解析报文进行解析得到执行计划;

13、获取客户端发送的绑定报文,并根据绑定报文对执行计划绑定参数,从而得到查询执行体;

14、获取客户端发送的执行报文,启动事务,并根据执行报文控制查询执行体进行指定查询,得到结果集;

15、在结果集中获取执行报文指定行数的内容,并返回至客户端。

16、可选地,保持事务状态不变的步骤之后还包括:

17、接收来自客户端的二次操作报文;

18、判断二次操作报文是否为继续执行未完成查询的二次执行报文;

19、若是,则根据二次执行报文在结果集中获取对应的内容,并返回至客户端。

20、可选地,判断二次操作报文是否为继续执行未完成查询的二次执行报文的步骤之后还包括:

21、若否,则结束事务,清除查询执行体对应的事务状态,并根据二次操作报文启动新的查询。

22、可选地,判断结果集是否全部返回至客户端的步骤之后还包括:

23、在结果集全部返回至客户端的情况下,清除查询执行体对应的事务状态。

24、可选地,清除查询执行体对应的事务状态的步骤之后还包括:

25、向客户端发送结束报文,结束报文用于通知客户端查询全部完成。

26、可选地,接收来自客户端的同步报文的步骤之后还包括:

27、在事务状态不存在未完成标识时,结束事务。

28、根据本发明的另一个方面,还提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现上述任一种的数据库事务中的查询处理方法的步骤。

29、根据本发明的又一个方面,还提供了一种计算机程序产品,其包括计算机程序,该计算机程序被处理器执行时实现上述任一种的数据库事务中的查询处理方法的步骤。

30、根据本发明的再一个方面,还提供了一种计算机设备,包括存储器、处理器及存储在存储器上并在处理器上运行的计算机程序,并且处理器执行计算机程序时实现上述任一种的数据库事务中的查询处理方法。

31、本发明的数据库事务中的查询处理方法,首先获取来自数据库客户端的操作报文,随后根据操作报文生成查询执行体来执行指定查询,得到结果集,并根据操作报文返回指定行数的结果集;之后判断结果集是否全部返回至客户端;若否,则为查询执行体对应的事务状态设置未完成标识,并向客户端发送暂停报文,暂停报文用于通知结果集尚未全部返回至客户端;接着在接收到来自客户端的同步报文时,若事务状态存在未完成标识,保持事务状态不变。通过此方法能够在结果集中的内容尚未完全返回至客户端时,通过设置未完成标识来保证此事务不会进行提交,从而在自动提交模式下,使客户端可以实现按需查询,分批取得结果集。

32、根据下文结合附图对本发明具体实施例的详细描述,本领域技术人员将会更加明了本发明的上述以及其他目的、优点和特征。



技术特征:

1.一种数据库事务中的查询处理方法,包括:

2.根据权利要求1所述的数据库事务中的查询处理方法,其中,

3.根据权利要求2所述的数据库事务中的查询处理方法,其中,

4.根据权利要求3所述的数据库事务中的查询处理方法,其中,

5.根据权利要求1所述的数据库事务中的查询处理方法,其中,

6.根据权利要求5所述的数据库事务中的查询处理方法,其中,

7.根据权利要求1所述的数据库事务中的查询处理方法,其中,

8.一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现权利要求1至7任一项所述的数据库事务中的查询处理方法的步骤。

9.一种计算机程序产品,包括计算机程序,其特征在于,该计算机程序被处理器执行时实现权利要求1至7中任一项所述的数据库事务中的查询处理方法的步骤。

10.一种计算机设备,包括存储器、处理器及存储在所述存储器上并在所述处理器上运行的计算机程序,并且所述处理器执行所述计算机程序时实现根据权利要求1至7任一项所述的数据库事务中的查询处理方法。


技术总结
本发明提供了一种数据库事务中的查询处理方法、介质与程序产品。其中上述方法包括:获取来自数据库客户端的操作报文;根据操作报文生成查询执行体来执行指定查询,得到结果集,并根据操作报文返回指定行数的结果集;判断结果集是否全部返回至客户端;若否,则为查询执行体对应的事务状态设置未完成标识,并向客户端发送暂停报文;接收来自客户端的同步报文;在事务状态存在未完成标识时,保持事务状态不变。通过本方法,可以实现在自动提交模式下的分批数据发送,使客户端可以通过会话连接实现按需查询,分批取得结果集。简化了数据翻页功能的设计复杂度。同时本方案为协议层处理方案,而未改动事务处理核心逻辑,保证了数据库系统的稳定。

技术研发人员:李国节,王建华
受保护的技术使用者:北京人大金仓信息技术股份有限公司
技术研发日:
技术公布日:2024/5/29
转载请注明原文地址:https://win.8miu.com/read-1156579.html

最新回复(0)