数据查询方法、装置、设备及存储介质与流程

摘要: 本技术实施例涉及数据库,尤其涉及一种数据查询方法、装置、设备及存储介质。背景技术:1、查询计划(queryplan)是数据库管理系统(databasemanag...
数据查询方法、装置、设备及存储介质与流程

本技术实施例涉及数据库,尤其涉及一种数据查询方法、装置、设备及存储介质。

背景技术:

1、查询计划(query plan)是数据库管理系统(database management system,dbms)在执行结构化查询语言(structured query language,sql)查询语句之前,生成的一个详细的操作步骤说明,用于指导sql查询语句的执行过程。查询计划分析是了解数据库优化和性能优化的关键步骤之一。

2、相关方案中,数据库或数据仓库通过对sql查询语句进行语法解析和语义分析,将sql查询语句转换为描述查询的逻辑操作的至少一个候选查询计划,优化器根据数据库的统计信息,从中选择最佳执行的执行策略,生成实际执行的查询计划。但是,由于查询计划涉及的访问路径非常复杂,以至于需要花费很大的精力进行调优,并且也很难得到匹配系统资源的最优路径。因此,如何进一步优化查询计划的选择过程是一个亟需解决的问题。

技术实现思路

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、在一些实施例中,所述至少一个资源指标包括中央处理器cpu、输入/输出、内存、存储、网络状态中的至少一项。

27、在一些实施例中,所述第一确定单元用于确定所述查询请求的优先级信息,包括:

28、根据所述查询请求,确定所述优先权信息;其中,所述查询请求包括所述优先权信息和客户端信息中的至少一种,所述客户端信息包括客户端标识和业务标识中的至少一种。

29、在一些实施例中,所述第一确定单元用于确定所述查询请求的优先级信息,包括:

30、根据所述查询请求涉及的数据表和索引至少一种的优先级信息,确定所述查询请求的优先级信息。

31、在一些实施例中,还包括预测单元,用于:

32、根据所述数据库系统的历史资源使用数据,使用机器学习方法预测所述数据库系统在未来时间的所述资源使用状态。

33、在一些实施例中,所述预测单元用于根据所述数据库系统的历史资源使用数据,使用机器学习方法预测所述数据库系统在未来时间的所述资源使用状态,包括以下至少一项:

34、若所述历史资源使用数据为周期数据,则使用随机森林方法预测所述资源使用状态;

35、若所述历史资源使用数据为稳定变化数据,则使用支持向量机方法预测所述资源使用状态;

36、使用深度学习方法预测所述资源使用状态。

37、第三方面,本技术实施例提供一种电子设备,包括:处理器和存储器,该存储器用于存储计算机程序,该处理器用于调用并运行该存储器中存储的计算机程序,执行如第一方面或其各实现方式中的数据查询方法,包括:

38、接收来自客户端的至少一个查询请求;

39、确定所述查询请求的优先级信息,所述优先级信息用于指示所述查询请求的执行优先级;

40、根据所述数据库系统的资源使用状态和所述优先级信息,确定每个所述查询请求对应的至少一个候选查询计划的查询开销;

41、根据所述至少一个候选查询计划的查询开销,确定每个所述查询请求的目标查询计划。

42、第四方面,本技术实施例提供一种计算机可读存储介质,用于存储计算机程序,计算机程序使得计算机执行如第一方面或其各实现方式中的方法。

43、第五方面,本技术实施例提供一种计算机程序产品,包括计算机程序指令,该计算机程序指令使得计算机执行如第一方面或其各实现方式中的方法。

44、第六方面,本技术实施例提供一种计算机程序,计算机程序使得计算机如执行如第一方面或其各实现方式中的方法。

45、通过本技术提供的技术方案,在接收到来自客户端的至少一个查询请求后,确定查询请求的优先级信息,以及根据数据库系统的资源使用状态和该优先级信息,确定每个查询请求对应的至少一个候选查询计划的查询开销,进而根据至少一个候选查询计划的查询开销,确定每个查询请求的目标查询计划。因此本技术实施例通过根据数据库系统的资源使用情况和查询请求的优先级信息,来确定查询请求的目标查询计划,能够有利于优先满足高优先级的查询请求的执行。