一种基于视图的查询方法.pdf

上传人:b*** 文档编号:4561372 上传时间:2018-10-20 格式:PDF 页数:5 大小:318.62KB
返回 下载 相关 举报
摘要
申请专利号:

CN201310278830.6

申请日:

2013.07.04

公开号:

CN104281592A

公开日:

2015.01.14

当前法律状态:

实审

有效性:

审中

法律详情:

实质审查的生效IPC(主分类):G06F 17/30申请日:20130704|||公开

IPC分类号:

G06F17/30

主分类号:

G06F17/30

申请人:

中国银联股份有限公司

发明人:

唐真; 周继恩; 汤茂安; 李伟

地址:

200135 上海市浦东新区含笑路36号银联大厦

优先权:

专利代理机构:

中国专利代理(香港)有限公司 72001

代理人:

郑冀之;朱海煜

PDF下载: PDF下载
内容摘要

本发明公开一种基于视图的查询方法,包括以下步骤:基于多个数据库表生成视图,并且使得该视图包括包含标识符的列,所述标识符用于标识相应的数据库表,将标识符作为查询条件的部分,查询关于视图的特定的数据库表。

权利要求书

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

2.   如权利要求1所述的方法,其特征在于,还包括以下步骤:
基于所述视图创建实体Bean,
将数据库表的标识符和数据库表的主键一起作为所述实体Bean的主键,
利用所述实体Bean的主键对标识符所指示的数据库表执行查询。

说明书

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

一种基于视图的查询方法.pdf_第1页
第1页 / 共5页
一种基于视图的查询方法.pdf_第2页
第2页 / 共5页
一种基于视图的查询方法.pdf_第3页
第3页 / 共5页
点击查看更多>>
资源描述

《一种基于视图的查询方法.pdf》由会员分享,可在线阅读,更多相关《一种基于视图的查询方法.pdf(5页珍藏版)》请在专利查询网上搜索。

1、(10)申请公布号 CN 104281592 A (43)申请公布日 2015.01.14 CN 104281592 A (21)申请号 201310278830.6 (22)申请日 2013.07.04 G06F 17/30(2006.01) (71)申请人 中国银联股份有限公司 地址 200135 上海市浦东新区含笑路 36 号 银联大厦 (72)发明人 唐真 周继恩 汤茂安 李伟 (74)专利代理机构 中国专利代理(香港)有限公 司 72001 代理人 郑冀之 朱海煜 (54) 发明名称 一种基于视图的查询方法 (57) 摘要 本发明公开一种基于视图的查询方法, 包括 以下步骤 : 基于。

2、多个数据库表生成视图, 并且使 得该视图包括包含标识符的列, 所述标识符用于 标识相应的数据库表, 将标识符作为查询条件的 部分, 查询关于视图的特定的数据库表。 (51)Int.Cl. 权利要求书 1 页 说明书 2 页 附图 1 页 (19)中华人民共和国国家知识产权局 (12)发明专利申请 权利要求书1页 说明书2页 附图1页 (10)申请公布号 CN 104281592 A CN 104281592 A 1/1 页 2 1. 一种基于视图的查询方法, 其特征在于, 包括以下步骤 : 基于多个数据库表生成视图, 并且使得该视图包括包含标识符的列, 所述标识符用于 标识相应的数据库表, 将。

3、标识符作为查询条件的部分, 查询关于视图的特定的数据库表。 2. 如权利要求 1 所述的方法, 其特征在于, 还包括以下步骤 : 基于所述视图创建实体 Bean, 将数据库表的标识符和数据库表的主键一起作为所述实体 Bean 的主键, 利用所述实体 Bean 的主键对标识符所指示的数据库表执行查询。 权 利 要 求 书 CN 104281592 A 2 1/2 页 3 一种基于视图的查询方法 技术领域 0001 本发明涉及数据库查询优化, 并且尤其涉及一种基于视图的查询方法。 背景技术 0002 随着数据库数据的持续增加, 通常通过拆分数据库表来摆脱单表访问的性能瓶 颈。然而, 随着数据库表数。

4、量的增加, 创建的视图所涉及的数据库表也越来越多。因此, 对 于涉及多个数据库表的视图的查询性能较低。 0003 需要一种优化的查询方法。 发明内容 0004 根据本发明的一个目的, 公开一种基于视图的查询方法, 包括以下步骤 : 基于多个 数据库表生成视图, 并且使得该视图包括包含标识符的列, 所述标识符用于标识相应的数 据库表, 将标识符作为查询条件的部分, 查询关于视图的特定的数据库表。 0005 优选地, 上述方法还包括以下步骤 : 基于所述视图创建实体 Bean, 将数据库表的标识符和数据库表的主键一起作为所述实体 Bean 的主键, 利用所述实 体 Bean 的主键对标识符所指示的。

5、数据库表执行查询。 0006 本发明提高了基于视图的查询效率, 尤其是基于视图的 JPA 主键查询效率, 使基 于视图的查询等效于基于单表的查询, 使查询效率不再因为视图中增加表而受影响。 附图说明 0007 在参照附图阅读了本发明的具体实施方式以后, 本领域技术人员将会更清楚地了 解本发明的各个方面。本领域技术人员应当理解的是, 这些附图仅仅用于配合具体实施方 式说明本发明的技术方案, 而并非意在对本发明的保护范围构成限制。 0008 图 1 是根据本发明实施例的基于视图的查询方法的步骤示意图。 0009 图 2 是根据本发明实施例的基于视图的查询方法的示例。 具体实施方式 0010 为了解。

6、决当涉及的数据库表的数量增加, 基于视图的查询性能低下的问题, 根据 本发明提出在视图中新增数据库表的标识列, 从而在查询条件中增加数据库的标识, 指定 要查询的特定的数据库表。图 1 是根据本发明实施例的基于视图的查询方法的步骤示意 图。如图 1 所示, 根据本发明的方法包括以下步骤 : 基于多个数据库表生成视图, 并且使得 该视图包括包含标识符的列, 所述标识符用于标识相应的数据库表。 以及, 将标识符作为查 询条件的部分, 查询关于视图的特定的数据库表。 0011 进一步, 对于 J2EE 的环境, 可以通过上述步骤并且在 Entity Bean(实体 Bean) 中 创建 “伪主键” 。

7、来提高 JPA 对视图的查询效率。 0012 现有技术中, 通过对视图创建 Entity Bean, 并将 Entity Bean 的主键指定为数据 说 明 书 CN 104281592 A 3 2/2 页 4 库表的主键, 从而通过调用 JPA 主键查询接口执行查询。这种方法每次执行查询均需要访 问视图中的每张表, 当表套数增多, 数据量增大时, 该方法对视图中的表的无效查询 (查询 记录数是 0) 会严重降低查询性能。另一种方法是为每张表创建不同的 Entity Bean, 然后 通过调用 JPA 主键查询接口实现单表主键查询。当表套数增多时创建的 Entity Bean 会越 来越多, 。

8、导致 Entity Bean 难以维护。 0013 本发明进一步通过以下步骤来克服上述技术缺陷 : 基于所述视图创建实体 Bean, 将数据库表的标识符和数据库表的主键一起作为所述实体 Bean 的主键, 利用所述实体 Bean 的主键对标识符所指示的数据库表执行查询。 0014 示例 步骤 1 : 在视图创建时, 新增一列用于标识数据库表。例如 : 对表 tbl_his_log1 和 tbl_his_log2 创建视图 viw_his_log, create view viw_his_log (identifier, .) as (select 1, t1.* from tbl_his_lo。

9、g1 t1) union all (select 2, t2.* from tbl_ his_log2 t2) 通过上述步骤创建的视图包括了标识符 (identifier) 列, 用于标识特定数据库表。 0015 步骤2 : 基于视图创建Entity Bean, 将Entity Bean的主键设置为是 “identifier + 表的真实主键 pri_key” 。在查询的时候通过指定表的标识 identifier 和表的真实主键 pri_key, 可以实现对特定的表执行主键查询, 从而达到查询性能的提高。 0016 图 2 是根据本发明实施例的基于视图的查询方法的示例。如图所示, 在查询 SQ。

10、L 语句中, 指定查询条件为 identifier=1, pri_key=2。数据库接收到查询 SQL 语句后, SQL 解释器根据 identifier=1 做优化处理后, 无需对视图的所有表执行查询, 只需针对满足条 件的表 1 执行查询。最后在表 1 上执行条件为 pri_key=2 的查询, 并将结果返回。 0017 通过以上实施方式的描述, 本领域中的普通技术人员能够理解, 在不偏离本发明 的精神和范围的情况下, 还可以对本发明的具体实施方式作各种变更和替换。这些变更和 替换都落在本发明权利要求书所限定的范围内。 说 明 书 CN 104281592 A 4 1/1 页 5 图 1 图 2 说 明 书 附 图 CN 104281592 A 5 。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 物理 > 计算;推算;计数


copyright@ 2017-2020 zhuanlichaxun.net网站版权所有
经营许可证编号:粤ICP备2021068784号-1