[发明专利]一种数据库操作方法及设备在审

专利信息
申请号: 201310027266.0 申请日: 2013-01-24
公开(公告)号: CN103092970A 公开(公告)日: 2013-05-08
发明(设计)人: 张仲良 申请(专利权)人: 华为技术有限公司
主分类号: G06F17/30 分类号: G06F17/30;G06F9/44
代理公司: 广州三环专利代理有限公司 44202 代理人: 郝传鑫;熊永强
地址: 518129 广东*** 国省代码: 广东;44
权利要求书: 查看更多 说明书: 查看更多
摘要:
搜索关键词: 一种 数据库 操作方法 设备
【说明书】:

技术领域

发明涉及数据库领域,具体涉及一种数据库操作方法及设备。

背景技术

关系型数据库是建立在关系模型上的数据库,目前主要的关系型数据库产品有Oracle、DB2、SQL Server、PostgreSQL和MYSQL等。结构化查询语言(Srtuctured Query Language,SQL)是各种关系型数据库的主要用户程序接口语言,用户程序可以通过SQL实现对各种关系型数据库中的数据的查询、插入、删除、更新等操作,本文中将这些操作统称为对数据库的操作。SQL文本被嵌入在使用各种宿主语言(如C、C++、Java、Pathon等)编写的用户程序(源文件)中。目前,利用SQL实现数据的查询和操作的主要方式有动态SQL和静态SQL。

动态SQL即用户程序每次被调用,用户程序中的SQL都被发送给数据库,数据库对其进行编译生成执行计划,然后根据执行计划执行相应操作。动态SQL的缺点在于每次运行都需要编译,由于每次编译时数据库环境可能发生变化,同样的SQL可能产生不同的执行计划,导致数据库系统不稳定。

静态SQL即SQL文本以非宿主语言的语法嵌入在源文件中,源文件经过预编译后源文件中的SQL被提取出来,分别生成剔除了SQL语句的修改源文件和包含SQL文本的绑定文件,然后绑定文件被绑定到数据库生成执行计划。以后每次运行时不必对SQL重新编译而是直接调用已生成的执行计划。静态SQL的缺点在于需要预编译源文件,增加开发人员的工作量和难度,且目前支持静态SQL的宿主语言较少,通用性较低。

发明内容

本发明所要解决的技术问题是提供一种数据库查询方法,具有通用性且不会影响数据库系统的稳定性。

本申请第一方面提供一种数据库操作方法,包括:

接收结构化查询语言SQL文本;

判断所述SQL文本中的SQL语句是否为预定义SQL语法中的预定义SQL语句,其中,所述预定义SQL语法中的预定义SQL语句与原SQL语法中的相应的原SQL语句对应相同的执行计划;

若所述SQL语句是预定义SQL语法中的预定义SQL语句,则从预定义SQL语句与执行计划的对应关系表中查询所述预定义SQL语句所绑定的执行计划;

执行所述执行计划并返回相应结果给客户端。

在第一方面的第一种可能的实现方式中,所述判断所述SQL文本中的SQL语句是否为预定义SQL语法中的预定义SQL语句包括:

判断所述SQL语句是否包含预定义SQL语法标识符;

若所述SQL语句包含预定义SQL语法标识符,则确定所述SQL语句为预定义SQL语法中的预定义SQL语句。

结合第一方面或者第一方面的第一种可能的实现方式,在第二种可能的实现方式中,在所述接收结构化查询语言SQL文本之前,所述方法还包括:

绑定所述预定义SQL语法中的每条预定义SQL语句到原SQL语法中的相应的原SQL语句;

编译所述原SQL语句,生成相应的执行计划;

存储所述执行计划,并生成预定义SQL语句与执行计划的对应关系表。

结合第一方面的第二种可能的实现方式,在第三种可能的实现方式中,在所述存储所述执行计划之前,所述方法还包括:

判断所述执行计划的执行效率是否低于历史执行计划的执行效率;

若所述执行计划的执行效率低于所述历史执行计划的执行效率,则恢复所述历史执行计划作为执行计划。

结合第一方面的第三种可能的实现方式,在第四种可能的实现方式中,所述方法还包括:

若所述SQL语句不是预定义SQL语法中的预定义SQL语句,则编译所述SQL语句,生成执行计划。

本申请第二方面提供一种数据库操作设备,包括:

接收模块,用于接收结构化查询语言SQL文本,并且在接收到所述SQL文本后使能判断模块;

所述判断模块,用于判断所述接收模块接收到的所述SQL文本中的SQL语句是否为预定义SQL语法中的预定义SQL语句,并且在判断出所述SQL语句是预定义SQL语法中的预定义SQL语句时使能查询模块,其中,所述预定义SQL语法中的预定义SQL语句与原SQL语法中的相应的原SQL语句对应相同的执行计划;

所述查询模块,用于在所述判断模块判断出所述SQL语句是预定义SQL语法中的预定义SQL语句时,从预定义SQL语句与执行计划的对应关系表中查询所述预定义SQL语句所绑定的执行计划,并且使能执行模块;

所述执行模块,用于执行所述执行计划并返回相应结果给客户端。

下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。

该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于华为技术有限公司,未经华为技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服

本文链接:http://www.vipzhuanli.com/pat/books/201310027266.0/2.html,转载请声明来源钻瓜专利网。

×

专利文献下载

说明:

1、专利原文基于中国国家知识产权局专利说明书;

2、支持发明专利 、实用新型专利、外观设计专利(升级中);

3、专利数据每周两次同步更新,支持Adobe PDF格式;

4、内容包括专利技术的结构示意图流程工艺图技术构造图

5、已全新升级为极速版,下载速度显著提升!欢迎使用!

请您登陆后,进行下载,点击【登陆】 【注册】

关于我们 寻求报道 投稿须知 广告合作 版权声明 网站地图 友情链接 企业标识 联系我们

钻瓜专利网在线咨询

周一至周五 9:00-18:00

咨询在线客服咨询在线客服
tel code back_top