数据库访问方法、装置、电子设备及存储介质制造方法及图纸

技术编号:24331092 阅读:49 留言:0更新日期:2020-05-29 19:37
本公开实施例公开了一种数据库访问方法、装置、电子设备及存储介质,其中,数据库访问方法,包括:响应于查询指令,获取查询条件,所述查询条件包含查询维度;基于查询条件和分区关系表获取该查询涉及的表的分区关键字字段;判断所述查询条件中的组织字段与所述表的分区关键字字段是否相同;如两者相同,则基于所述组织字段和所述组织字段对应的组织ID值得到第一SQL语句;如两者不同,基于组织关系表获取与查询条件的组织类型相对应,且与表分区相同组织类型的具体值,基于所述表的分区字段和所述具体值得到第二SQL语句;执行所述第一SQL语句或所述第二语句访问数据库。解决多维度访问数据库大表时的性能问题,提高系统的响应速度和处理能力。

【技术实现步骤摘要】
数据库访问方法、装置、电子设备及存储介质
本公开属于数据
,更具体地,涉及一种数据库访问方法、装置、电子设备及存储介质。
技术介绍
Oracle数据库是一种非常适合处理高并发、大数据量、高负载的关系型数据库。对于数据量很大的表(一般指超过4GB的表),Oracle提供了分区技术将数据量很大的表、索引拆分成若干个分区。通过Oracle优化器的SQL重写,SQL访问大表就被改写成对数据量较小的分区的访问,即提高了查询的性能,又减少了热点块的冲突。通过这种分而治之的方式极大地提高了数据的查询性能和数据库的处理能力。Oracle支持的分区方式包括范围分区、哈希分区、列表分区等。将大表分成小表后,逻辑上仍是一个表,对开发人员透明,同时又能提高系统的性能。Oracle的任何一个表只能按一种方式分区,每个表可以有多个索引。依据索引分区关键字与表的分区关键字异同,分区索引分为localpartitionindex和globalpartitionindex。当访问表时分区裁剪的关键字与表的分区关键字不同时,为了提高访问的效率,需要按照访问表时的分区关键字创建相应的全局分区索引。由于通过索引访问表时固有的开销,当访问表中数据量的占比稍大时,性能并不好,只是相对于全表扫描来说性能好。在OLTP系统中,业务高峰时并发高,通过索引访问大表一个分区的大量数据时,问题尤其突出,往往在多个这样SQL并发执行时,I/O的使用率就可能100%。
技术实现思路
有鉴于此,本公开实施例提供了一种数据库访问方法、装置、电子设备及存储介质,至少解决多维度访问数据库大表时的性能问题。第一方面,本公开实施例提供了一种数据库访问方法,包括:响应于查询指令,获取查询条件,所述查询条件包含查询维度;基于查询条件和分区关系表获取该查询涉及的表的分区关键字字段;判断所述查询条件中的组织字段与所述表的分区关键字字段是否相同;如两者相同,则基于所述组织字段和所述组织字段对应的组织ID值得到第一SQL语句;如两者不同,基于组织关系表获取与查询条件的组织类型相对应,且与表分区相同组织类型的具体值,基于所述表的分区字段和所述具体值得到第二SQL语句;执行所述第一SQL语句或所述第二语句访问数据库。可选的,所述查询维度,包括业务组织、财务组织或管理组织。可选的,所述组织关系表为:存储查询维度之间关系的表。可选的,所述获取查询条件的步骤之间,包括:将数据量的表按照组织类型进行分区,所述组织类型包括业务组织、财务组织或管理组织;将分区后的表和及表的分区关键字存储在分区关系表。可选的,所述获取查询条件为:在查询页面,录入或选择含查询维度在内的查询条件。第二方面,本公开实施例还提供了一种数据库访问装置,包括:查询条件获取模块:用于响应于查询指令,获取查询条件,所述查询条件包含查询维度;字段获取模块:用于基于查询条件和分区关系表获取该查询涉及的表的分区关键字字段;判断模块:用于判断所述查询条件中的组织字段与所述表的分区关键字字段是否相同;第一SQL语句模块:用于如两者相同,则基于所述组织字段和所述组织字段对应的组织ID值得到第一SQL语句;第二SQL语句模块:用于如两者不同,基于组织关系表获取与查询条件的组织类型相对应,且与表分区相同组织类型的具体值,基于所述表的分区字段和所述具体值得到第二SQL语句;执行模块:用于执行所述第一SQL语句或所述第二语句访问数据库。可选的,所述查询维度,包括业务组织、财务组织或管理组织。可选的,所述组织关系表为:存储查询维度之间关系的表。第三方面,本公开实施例还提供了一种电子设备,该电子设备包括:存储器,存储有可执行指令;处理器,所述处理器运行所述存储器中的所述可执行指令,以实现第一方面任一的数据库访问方法。第四方面,本公开实施例还提供了一种计算机可读存储介质,该计算机可读存储介质存储有计算机程序,该计算机程序被处理器执行时实现以实现第一方面任一的数据库访问方法。本公开基于分区关系表和组织关系表,通过当访问分区关系表时所用的组织字段与表的分区字段相同时不进行组织转化,直接拼SQL,然后执行SQL语句。当访问分区关系表时所用的组织字段与表的分区字段不同时,查询组织关系表,取得与表的分区字段相同组织的组织ID,用查到的组织ID和表分区字段的组织拼写SQL,即组织转化,然后执行SQL语句。从而解决多维度访问数据库大表时的性能问题,提高系统的响应速度和处理能力。本公开的其它特征和优点将在随后具体实施方式部分予以详细说明。附图说明通过结合附图对本公开示例性实施方式进行更详细的描述,本公开的上述以及其它目的、特征和优势将变得更加明显,其中,在本公开示例性实施方式中,相同的参考标号通常代表相同部件。图1示出了根据本公开的一个实施例的数据库访问方法的流程图;图2示出了根据本公开的一个实施例的SQL重构的流程图;图3示出了根据本公开的一个实施例的数据库访问装置的结构示意图。具体实施方式下面将更详细地描述本公开的优选实施方式。虽然以下描述了本公开的优选实施方式,然而应该理解,可以以各种形式实现本公开而不应被这里阐述的实施方式所限制。如图1所示,了一种数据库访问方法,包括:步骤S101:响应于查询指令,获取查询条件,所述查询条件包含查询维度;步骤S102:基于查询条件和分区关系表获取该查询涉及的表的分区关键字字段;步骤S103:判断所述查询条件中的组织字段与所述表的分区关键字字段是否相同;步骤S104:如两者相同,则基于所述组织字段和所述组织字段对应的组织ID值得到第一SQL语句;步骤S105:如两者不同,基于组织关系表获取与查询条件的组织类型相对应,且与表分区相同组织类型的具体值,基于所述表的分区字段和所述具体值得到第二SQL语句;步骤S106:执行所述第一SQL语句或所述第二语句访问数据库。可选的,所述查询维度,包括业务组织、财务组织或管理组织。可选的,所述组织关系表为:存储查询维度之间关系的表。可选的,所述获取查询条件的步骤之间,包括:将数据量的表按照组织类型进行分区,所述组织类型包括业务组织、财务组织或管理组织;将分区后的表和及表的分区关键字存储在分区关系表。可选的,所述获取查询条件为:在查询页面,录入或选择含查询维度在内的查询条件。Oracle的每个表都可以有多个索引,且分区索引的关键字可以和表的关键字相同,也可以不同,以服务不同的SQL语句,提高访问数据的效率。对于访问表中一种组织少量数据场景,可以按照该组织创建全局分区索引,而对于可能访问一种组织较大占比数据的场景,根据表的分区组织和除组织维度外的其他访问条件,创建本地分区索引。如果查询条件的组织维度字段本文档来自技高网...

【技术保护点】
1.一种数据库访问方法,其特征在于,包括:/n响应于查询指令,获取查询条件,所述查询条件包含查询维度;/n基于查询条件和分区关系表获取该查询涉及的表的分区关键字字段;/n判断所述查询条件中的组织字段与所述表的分区关键字字段是否相同;/n如两者相同,则基于所述组织字段和所述组织字段对应的组织ID值得到第一SQL语句;/n如两者不同,基于组织关系表获取与查询条件的组织类型相对应,且与表分区相同组织类型的具体值,基于所述表的分区字段和所述具体值得到第二SQL语句;/n执行所述第一SQL语句或所述第二语句访问数据库。/n

【技术特征摘要】
1.一种数据库访问方法,其特征在于,包括:
响应于查询指令,获取查询条件,所述查询条件包含查询维度;
基于查询条件和分区关系表获取该查询涉及的表的分区关键字字段;
判断所述查询条件中的组织字段与所述表的分区关键字字段是否相同;
如两者相同,则基于所述组织字段和所述组织字段对应的组织ID值得到第一SQL语句;
如两者不同,基于组织关系表获取与查询条件的组织类型相对应,且与表分区相同组织类型的具体值,基于所述表的分区字段和所述具体值得到第二SQL语句;
执行所述第一SQL语句或所述第二语句访问数据库。


2.根据权利要求1所述的数据库访问方法,其特征在于,所述查询维度,包括业务组织、财务组织或管理组织。


3.根据权利要求1所述的数据库访问方法,其特征在于,所述组织关系表为:存储查询维度之间关系的表。


4.根据权利要求1所述的数据库访问方法,其特征在于,所述获取查询条件的步骤之间,包括:
将数据量的表按照组织类型进行分区,所述组织类型包括业务组织、财务组织或管理组织;
将分区后的表和及表的分区关键字存储在分区关系表。


5.根据权利要求1所述的数据库访问方法,其特征在于,所述获取查询条件为:
在查询页面,录入或选择含查询维度在内的查询条件。


6.一种数据库访问装置,其特征在于,...

【专利技术属性】
技术研发人员:王恒峰
申请(专利权)人:航天信息股份有限公司企业服务分公司
类型:发明
国别省市:北京;11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1