一种基于视图的查询方法技术

技术编号:10924298 阅读:92 留言:0更新日期:2015-01-19 04:16
本发明专利技术公开一种基于视图的查询方法,包括以下步骤:基于多个数据库表生成视图,并且使得该视图包括包含标识符的列,所述标识符用于标识相应的数据库表,将标识符作为查询条件的部分,查询关于视图的特定的数据库表。

【技术实现步骤摘要】
【专利摘要】本专利技术公开,包括以下步骤:基于多个数据库表生成视图,并且使得该视图包括包含标识符的列,所述标识符用于标识相应的数据库表,将标识符作为查询条件的部分,查询关于视图的特定的数据库表。【专利说明】
本专利技术涉及数据库查询优化,并且尤其涉及。
技术介绍
随着数据库数据的持续增加,通常通过拆分数据库表来摆脱单表访问的性能瓶颈。然而,随着数据库表数量的增加,创建的视图所涉及的数据库表也越来越多。因此,对于涉及多个数据库表的视图的查询性能较低。 需要一种优化的查询方法。
技术实现思路
根据本专利技术的一个目的,公开,包括以下步骤:基于多个数据库表生成视图,并且使得该视图包括包含标识符的列,所述标识符用于标识相应的数据库表,将标识符作为查询条件的部分,查询关于视图的特定的数据库表。 优选地,上述方法还包括以下步骤:基于所述视图创建实体Bean,将数据库表的标识符和数据库表的主键一起作为所述实体Bean的主键,利用所述实体Bean的主键对标识符所指示的数据库表执行查询。 本专利技术提高了基于视图的查询效率,尤其是基于视图的JPA主键查询效率,使基于视图的查询等效于基于单表的查询,使查询效率不再因为视图中增加表而受影响。 【专利附图】【附图说明】 在参照附图阅读了本专利技术的【具体实施方式】以后,本领域技术人员将会更清楚地了解本专利技术的各个方面。本领域技术人员应当理解的是,这些附图仅仅用于配合【具体实施方式】说明本专利技术的技术方案,而并非意在对本专利技术的保护范围构成限制。 图1是根据本专利技术实施例的基于视图的查询方法的步骤示意图。 图2是根据本专利技术实施例的基于视图的查询方法的示例。 【具体实施方式】 为了解决当涉及的数据库表的数量增加,基于视图的查询性能低下的问题,根据本专利技术提出在视图中新增数据库表的标识列,从而在查询条件中增加数据库的标识,指定要查询的特定的数据库表。图1是根据本专利技术实施例的基于视图的查询方法的步骤示意图。如图1所示,根据本专利技术的方法包括以下步骤:基于多个数据库表生成视图,并且使得该视图包括包含标识符的列,所述标识符用于标识相应的数据库表。以及,将标识符作为查询条件的部分,查询关于视图的特定的数据库表。 进一步,对于J2EE的环境,可以通过上述步骤并且在Entity Bean (实体Bean)中创建“伪主键”来提高JPA对视图的查询效率。 现有技术中,通过对视图创建Entity Bean,并将Entity Bean的主键指定为数据库表的主键,从而通过调用JPA主键查询接口执行查询。这种方法每次执行查询均需要访问视图中的每张表,当表套数增多,数据量增大时,该方法对视图中的表的无效查询(查询记录数是O)会严重降低查询性能。另一种方法是为每张表创建不同的Entity Bean,然后通过调用JPA主键查询接口实现单表主键查询。当表套数增多时创建的Entity Bean会越来越多,导致Entity Bean难以维护。 本专利技术进一步通过以下步骤来克服上述技术缺陷:基于所述视图创建实体Bean,将数据库表的标识符和数据库表的主键一起作为所述实体Bean的主键,利用所述实体Bean的主键对标识符所指示的数据库表执行查询。 示例步骤1:在视图创建时,新增一列用于标识数据库表。例如: 对表 tbl_his_logl 和 tbl_his_log2 创建视图 viw_his_log, create view viw_his_log (identifier,...) as (select I, tl.* from tbl_his_logl tl) un1n all (select 2, t2.* from tbl_his_log2 t2)通过上述步骤创建的视图包括了标识符(identifier)列,用于标识特定数据库表。 步骤2:基于视图创建Entity Bean,将Entity Bean的主键设置为是“ identifier+表的真实主键pri_key”。在查询的时候通过指定表的标识identifier和表的真实主键pri_key,可以实现对特定的表执行主键查询,从而达到查询性能的提高。 图2是根据本专利技术实施例的基于视图的查询方法的示例。如图所示,在查询SQL语句中,指定查询条件为identifier=l, pri_key=2。数据库接收到查询SQL语句后,SQL解释器根据identifiers做优化处理后,无需对视图的所有表执行查询,只需针对满足条件的表I执行查询。最后在表I上执行条件为pri_key=2的查询,并将结果返回。 通过以上实施方式的描述,本领域中的普通技术人员能够理解,在不偏离本专利技术的精神和范围的情况下,还可以对本专利技术的【具体实施方式】作各种变更和替换。这些变更和替换都落在本专利技术权利要求书所限定的范围内。【权利要求】1.,其特征在于,包括以下步骤: 基于多个数据库表生成视图,并且使得该视图包括包含标识符的列,所述标识符用于标识相应的数据库表, 将标识符作为查询条件的部分,查询关于视图的特定的数据库表。2.如权利要求1所述的方法,其特征在于,还包括以下步骤: 基于所述视图创建实体Bean, 将数据库表的标识符和数据库表的主键一起作为所述实体Bean的主键, 利用所述实体Bean的主键对标识符所指示的数据库表执行查询。【文档编号】G06F17/30GK104281592SQ201310278830【公开日】2015年1月14日 申请日期:2013年7月4日 优先权日:2013年7月4日 【专利技术者】唐真, 周继恩, 汤茂安, 李伟 申请人:中国银联股份有限公司本文档来自技高网...

【技术保护点】
一种基于视图的查询方法,其特征在于,包括以下步骤:基于多个数据库表生成视图,并且使得该视图包括包含标识符的列,所述标识符用于标识相应的数据库表,将标识符作为查询条件的部分,查询关于视图的特定的数据库表。

【技术特征摘要】

【专利技术属性】
技术研发人员:唐真周继恩汤茂安李伟
申请(专利权)人:中国银联股份有限公司
类型:发明
国别省市:上海;31

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

1