本技术涉及数据库领域,具体涉及一种数据库查询方法、装置、设备及介质。
背景技术:
1、在基于数据库进行查询的时候,需要基于算子执行查询语句,以得到所需要查询的数据。其中,可以采用多进程或者多线程的方式并行的执行算子,需要确定出算子的并行度;其中,并行度,指的是在基于数据库进行并行查询的过程中,所需要的进程数或线程数;基于算子的并行度执行算子,进而得到与查询语句对应的数据。
2、亟需一种可以确定出算子的并行度,以基于算子的并行度执行算子和查询语句的过程中,可以有效利用资源,提高资源利用率的方法。
技术实现思路
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、上述方式中,通过选择数据库的最大并发连接数、数据库的当前并发连接数以及数据库的当前会话数作为数据库的状态信息来确定查询语句所对应的第三并行度,可以提高第三并行度确定的准确性,进而有利于提高查询语句的查询效率、数据库所对应的资源利用率以及数据库性能。
33、在一种可能的设计中,根据所述待处理的并行度和预设的第五并行度,确定所述第三并行度,包括:
34、若确定存在所述预设的第五并行度,则确定所述待处理的并行度与预设的第五并行度中的最小值,为所述第三并行度。
35、上述方式中,通过选择第五并行度与待处理的并行度之间的较小值作为第三并行度,以便在满足用户要求的前提下,可以充分利用资源信息,提高资源利用率以及数据库性能。
36、在一种可能的设计中,所述方法还包括:
37、若确定不存在所述预设的第五并行度,则确定待处理的并行度为所述第三并行度。
38、上述方式中,在确定第三并行度时,会充分考虑用户对查询语句的并行度的设定以及待处理的并行度,以便在满足用户要求的前提下,可以充分利用资源信息,提高资源利用率以及数据库性能。
39、在一种可能的设计中,获取所述算子的可用资源信息,包括:
40、确定所述数据库的历史时刻下的可用资源信息;
41、基于所述历史时刻下的可用资源信息进行线性插值处理,确定所述算子的可用资源信息。
42、上述方式中,通过对历史时刻下的可用资源信息进行线性插值处理来预测当前时刻下的可用资源信息的方式,实现方式简单,无需占用较多的处理资源,有利于提高资源利用效率以及数据库性能。
43、在一种可能的设计中,确定所述数据库的历史时刻下的可用资源信息,包括:
44、获取发起所述查询语句的用户的第一权限信息、所述数据库的第二权限信息以及系统的历史时刻的可用资源信息;其中,第一权限信息用于指示所述用户在历史时刻下访问所述数据库时的可用资源信息,所述第二权限信息用于指示所述数据库在历史时刻下被分配的可用资源信息;
45、根据所述第一权限信息、所述第二权限信息以及系统的历史时刻的可用资源信息,确定所述数据库的历史时刻下的可用资源信息。
46、上述方式中,在确定获取历史时刻下的可用资源信息时,还充分考虑用户的第一权限信息、第二权限信息以及系统历史时刻的可用资源信息,以确保所获取数据库的历史时刻下的可用资源信息的准确性。
47、在一种可能的设计中,获取所述算子的可用资源信息,包括:
48、获取发起所述查询语句的用户的第三权限信息、所述数据库的第四权限信息以及系统的当前时刻的可用资源信息;其中,所述第三权限信息用于指示所述用户在当前时刻下访问所述数据库时的可用资源信息,所述第四权限信息用于指示所述数据库在当前时刻下被分配的可用资源信息;
49、根据所述第三权限信息、所述第四权限信息以及系统的当前时刻的可用资源信息,确定所述算子的可用资源信息。
50、上述方式中,在确定算子的可用资源信息时,还充分考虑用户的第三权限信息、数据库第四权限信息以及系统当前时刻的可用资源信息,以确保算子的可用资源信息的准确性,有利于后续可以基于算子的可用资源信息对算子的并行度进行调整。
51、在一种可能的设计中,所述可用资源信息包括以下信息中的一种或多种:中央处理器的空闲资源信息、内存空间的剩余信息、输入/输出的空闲资源信息。
52、在一种可能的设计中,所述方法还包括:
53、若未获取到所述算子的可用资源信息,则获取第三并行度和算子总数,其中,第三并行度用于指示执行所述查询语句时可使用的并行度;
54、根据所述第三并行度和所述算子总数,确定所述算子的第二并行度。
55、上述方式中,当无法获取算子的当前可用资源时,可直接采用查询语句对应的第三并行度以及算子总数求取该算子的第二并行度,以便确定出算子的第二并行度。
56、第二方面,本技术提供一种数据库查询装置,包括:
57、第一确定单元,用于响应于查询语句,确定执行所述查询语句时所需要的算子;其中,所述查询语句用于指示获取数据库中的待查询数据,所述查询语句为需采用并行查询的语句;
58、第一获取单元,用于获取所述算子的可用资源信息;
59、第二获取单元,用于获取所述算子的第一并行度,其中,所述第一并行度表征执行算子时当前可使用的并行度;
60、第二确定单元,用于根据所述算子的可用资源信息和所述算子的第一并行度,得到所述算子的第二并行度,其中,所述第二并行度表征实际执行算子的过程中所使用的并行度;
61、第三确定单元,用于基于所述算子的第二并行度执行算子,得到并返回所述待查询数据。
62、在一种可能的设计中,第二确定单元,包括:
63、调用模块,用于若确定所述算子的第一并行度大于预设阈值,则调用预设模型;
64、第一确定模块,用于基于所述算子的可用资源信息、所述第一并行度以及所述预设模型,确定所述算子的第二并行度;其中,所述预设模型用于指示可用资源信息、第一并行度以及第二并行度三者之间的对应关系。
65、在一种可能的设计中,所述预设模型所指示的对应关系满足以下条件:可用资源信息与差值结果呈负相关关系,并且第二并行度大于所述预设阈值;其中,所述差值结果用于指示第一并行度与第二并行度之间的差值。
66、在一种可能的设计中,所述装置还包括:
67、第二确定模块,用于若确定所述第一并行度小于或等于所述预设阈值,则确定所述预设阈值为所述算子的第二并行度。
68、在一种可能的设计中,第二获取单元,包括:
69、第一获取模块,用于获取所述查询语句的第三并行度,其中,第三并行度用于指示执行所述查询语句时可使用的并行度;
70、第三确定模块,用于确定第四并行度,其中,所述第四并行度为已处理完的算子的第二并行度的累积,并基于所述第三并行度和所述第四并行度,确定当前待处理的算子的第一并行度。
71、在一种可能的设计中,第三确定模块,具体用于:
72、确定已处理完的各算子的第二并行度的乘积,为所述第四并行度;
73、确定所述第三并行度与所述第四并行度的商,为当前待处理的算子的第一并行度。
74、在一种可能的设计中,所述装置还包括:
75、第三获取单元,用于在所述第一确定单元确定执行所述查询语句时所需要的算子之前,获取所述数据库的状态信息;
76、第四确定单元,用于根据所述数据库的状态信息,确定第三并行度,其中,第三并行度用于指示执行所述查询语句时可使用的并行度;
77、第五确定单元,若确定所述第三并行度大于或等于预设值,则确定所述查询语句为需采用并行查询的语句。
78、在一种可能的设计中,若所述数据库的状态信息包括数据库的最大并发连接数、数据库的当前并发连接数以及数据库的当前会话数,则第四确定单元,包括:
79、第四确定模块,用于确定所述数据库的最大并发连接数与所述数据库的当前并发连接数的差值,为所述数据库的当前可用并发连接数;
80、第五确定模块,用于确定所述数据库的当前可用并发连接数与所述数据库的当前会话数的商值,为待处理的并行度;
81、第六确定模块,用于根据所述待处理的并行度和预设的第五并行度,确定所述第三并行度;其中,所述第五并行度表征执行所述查询语句时用户所指定的并行度。
82、在一种可能的设计中,第六确定模块,具体用于:
83、若确定存在所述预设的第五并行度,则确定所述待处理的并行度与预设的第五并行度中的最小值,为所述第三并行度。
84、在一种可能的设计中,所述装置还包括:
85、第七确定模块,用于若确定不存在所述预设的第五并行度,则确定待处理的并行度为所述第三并行度。
86、在一种可能的设计中,第一获取单元,包括:
87、第八确定模块,用于确定所述数据库的历史时刻下的可用资源信息;
88、第九确定模块,用于基于所述历史时刻下的可用资源信息进行线性插值处理,确定所述算子的可用资源信息。
89、在一种可能的设计中,第八确定模块,具体用于:
90、获取发起所述查询语句的用户的第一权限信息、所述数据库的第二权限信息以及系统的历史时刻的可用资源信息;其中,第一权限信息用于指示所述用户在历史时刻下访问所述数据库时的可用资源信息,所述第二权限信息用于指示所述数据库在历史时刻下被分配的可用资源信息;
91、根据所述第一权限信息、所述第二权限信息以及系统的历史时刻的可用资源信息,确定所述数据库的历史时刻下的可用资源信息。
92、在一种可能的设计中,第一获取单元,包括:
93、第二获取模块,用于获取发起所述查询语句的用户的第三权限信息、所述数据库的第四权限信息以及系统的当前时刻的可用资源信息;其中,所述第三权限信息用于指示所述用户在当前时刻下访问所述数据库时的可用资源信息,所述第四权限信息用于指示所述数据库在当前时刻下被分配的可用资源信息;
94、第十确定模块,用于根据所述第三权限信息、所述第四权限信息以及系统的当前时刻的可用资源信息,确定所述算子的可用资源信息。
95、在一种可能的设计中,所述可用资源信息包括以下信息中的一种或多种:中央处理器的空闲资源信息、内存空间的剩余信息、输入/输出的空闲资源信息。
96、在一种可能的设计中,所述装置还包括:
97、第四获取单元,用于若未获取到所述算子的可用资源信息,则获取第三并行度和算子总数,其中,第三并行度用于指示执行所述查询语句时可使用的并行度;
98、第六确定单元,用于根据所述第三并行度和所述算子总数,确定所述算子的第二并行度。
99、第三方面,本技术提供一种电子设备,包括:存储器,处理器;
100、存储器;用于存储所述处理器可执行指令的存储器;
101、其中,所述处理器,用于根据所述可执行指令执行如第一方面任一项所述的方法。
102、第四方面,本技术提供一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机执行指令,所述计算机执行指令被处理器执行时用于实现如第一方面任一项所述的方法。
103、第五方面,本技术提供一种计算机程序产品,所述计算机程序产品包括计算机程序,该计算机程序被处理器执行时实现第一方面中任一项所述的方法。
104、本技术提供的数据库查询方法、装置、设备及介质,该方法包括:响应于查询语句,确定执行查询语句时所需要的算子;其中,查询语句用于指示获取数据库中的待查询数据,查询语句为需采用并行查询的语句;获取算子的可用资源信息和算子的第一并行度,其中,第一并行度表征执行算子时当前可使用的并行度;并根据算子的可用资源信息和算子的第一并行度,得到算子的第二并行度,其中,第二并行度表征实际执行算子的过程中所使用的并行度;基于算子的第二并行度执行算子,得到并返回待查询数据。进而,通过算子的可用资源信息,对算子所对应的并行度进行自适应的调整,有利于提高资源利用效率以及数据库性能。