数据库的高性能查询方法和装置制造方法及图纸

技术编号:10558700 阅读:136 留言:0更新日期:2014-10-22 13:35
本发明专利技术实施例公开了一种数据库的高性能查询方法和装置。所述数据库的高性能查询方法包括:通过执行数据定义语言DDL,将待存储数据存储在系统内存的缓冲区中;通过执行数据查询语言DQL,对存储在所述缓冲区中的数据进行查询。本发明专利技术实施例提供的数据库的高性能查询方法和装置能够显著提高数据库系统的数据查询效率。

【技术实现步骤摘要】
【专利摘要】本专利技术实施例公开了一种数据库的高性能查询方法和装置。所述数据库的高性能查询方法包括:通过执行数据定义语言DDL,将待存储数据存储在系统内存的缓冲区中;通过执行数据查询语言DQL,对存储在所述缓冲区中的数据进行查询。本专利技术实施例提供的数据库的高性能查询方法和装置能够显著提高数据库系统的数据查询效率。【专利说明】数据库的高性能查询方法和装置
本专利技术实施例涉及数据库
,尤其涉及一种数据库的高性能查询方法和装 置。
技术介绍
数据库是按照数据结构来组织、存储和管理数据的仓库。数据库的概念产生于20 世纪60年代。随着信息技术和时长的发展,特别是近年来互联网的蓬勃发展,数据库技术 也得到了广泛的应用。如今,大部分的应用程序的后台都会部署数据库系统。 现有的数据库系统在存储数据时通常将数据存储在系统硬盘上,而用户需要对数 据库系统中的数据进行查询时,则需要从系统硬盘上读取数据。而从系统硬盘上读取数据 会引起硬盘的物理输入输出(Input output, 10)。由于对系统硬盘的物理10需要耗费一定 的时间,造成现有的数据库系统对数据查询请求的处理效率偏低。
技术实现思路
有鉴于此,本专利技术实施例提出一种数据库的高性能查询方法和装置,以显著提高 数据库系统的数据查询效率。 第一方面,本专利技术实施例提供了一种数据库的高性能查询方法,所述方法包括: 通过执行数据定义语言DDL,将待存储数据存储在系统内存的缓冲区中; 通过执行数据查询语言DQL,对存储在所述缓冲区中的数据进行查询。 第二方面,本专利技术实施例提供了一种数据库的高性能查询装置,所述装置包括: 数据存储模块,用于通过执行数据定义语言DDL,将待存储数据存储在系统内存的 缓冲区中; 数据查询模块,用于通过执行数据查询语言DQL,对存储在所述缓冲区中的数据进 行查询。 本专利技术实施例提供的数据库的高性能查询方法和装置通过执行数据定义语言,将 待存储数据存储在系统内存的缓冲区中,并通过执行数据查询语言,对存储在所述缓冲区 中的数据进行查询,由于被查询的数据存储在系统内存的缓冲区中,而不是存储在系统硬 盘上,因此查询数据时不需要发起磁盘的物理输入输出,显著的提高了数据库系统的数据 查询效率。 【专利附图】【附图说明】 通过阅读参照以下附图所作的对非限制性实施例所作的详细描述,本专利技术的其它 特征、目的和优点将会变得更明显: 图1是本专利技术第一实施例提供的数据库的高性能查询方法的流程图; 图2是本专利技术第一实施例提供的Oracle数据库系统的系统全局共享区(System global area, SGA)的结构图; 图3是本专利技术第一实施例提供的最近最少使用(Least recently used, LRU)队列 管理的示意图; 图4是本专利技术第二实施例提供的数据库的高性能查询方法的流程图; 图5是本专利技术第二实施例提供的数据库的高性能查询方法中缓冲区分配的流程 图; 图6是本专利技术第三实施例提供的数据库的高性能查询方法的流程图; 图7是本专利技术第四实施例提供的数据库的高性能查询装置的结构图。 【具体实施方式】 下面结合附图和实施例对本专利技术作进一步的详细说明。可以理解的是,此处所描 述的具体实施例仅用于解释本专利技术,而非对本专利技术的限定。另外还需要说明的是,为了便于 描述,附图中仅示出了与本专利技术相关的部分而非全部内容。 图1至图3示出了本专利技术的第一实施例。 图1是本专利技术第一实施例提供的数据库的高性能查询方法的流程图。所述数据库 的高性能查询方法由数据库的高性能查询装置执行。所述数据库的高性能查询装置集成在 一台用于对数据库中的数据进行查询的客户终端中。参见图1,所述数据库的高性能查询方 法包括: S110,通过执行数据定义语言(Data definition language, DDL),将待存储数据存 储在系统内存的缓冲区中。 所述DDL是数据库的结构化查询语言(Structured query language, SQL)中负 责对数据库中的数据结构以及数据库对象进行定义的语言。在本实施例中,通过运行所述 DDL,指定存储所述待存储数据的位置为系统内存的缓冲区。 所述数据库系统具有自身的系统内存。所述系统内存可以用于存储数据库系统的 常用变量。所述系统内存包括缓冲区。所述缓冲区是在向数据库系统中存储数据之前,在 所述系统内存中预先开辟的用于缓存数据的区域。 优选的,实施本实施例提供的数据库的高性能查询方法的数据库系统是Oracle 数据库系统。而且,所述缓冲区可以是Oracle数据库系统中SGA的保留缓冲区池(Ke印 buffer pool)〇 进一步的,当所述待存储数据在所述数据库系统中还没有被创建时,用于指定存 储所述待存储数据的位置的指令可以是: create table table_name storage(buffer_pool keep)as select*from dba_ objects。 其中,参数table_name是要创建的表的表名。 而当所述待存储数据在所述数据库中已经被创建,只不过其没有被存储在所述数 据库系统的系统内存的缓冲区上时,用于指定存储所述待存储数据的位置的指令可以是: alter table table_name storage(buffer_pool keep)。 同样,参数table_name是要更改的表的表名。 图2是本专利技术第一实施例提供的Oracle数据库系统的SGA的结构图。参见图2, 在一个SGA的实例中包括有数据库高速缓存(Database buffer cache)210。在所述数据 库高速缓存中包括三个缓冲区:保留池 (Keep buffer pool)211、默认池 (Default buffer pool)212以及回收池 (Recycle buffer pool)213。其中,所述保留池211用于临时存放需 要经常访问的数据的共享缓冲区。 所述保留池采用最近最少使用(Least recently used, LRU)链表进行队列管理。 LRU是Oracle数据库系统中内存管理的一种页面置换算法。对于在内存中但又不用的数据 叫做LRU。根据所述LRU算法,Oracle数据库系统会获知哪些数据属于最近最少使用的数 据而将其移出内存而腾出空间来加载另外的数据。通过所述LRU算法,所述保留池实现了 利用容量不大的内存为最多的进程提供内存资源。 图3是本专利技术第一实施例提供的LRU队列管理的示意图。参见图3,所述保留池中 310存放有数据表311。所述保留池中的数据使用LRU链表进行队列管理。所述LRU链表 具有两个端点,一个是LRU冷端,用于存放最近最为不经常使用的数据,另一个是LRU热端, 用于存放最近最为经常使用的数据。当有新的数据被缓存在所述保留池中时,新的数据被 缓存在所述LRU热端,而被置换的数据由应用程序301存放在所述LRU冷端,除非所述保留 池的空间不足以再缓存被置换出的数据。 在有数据需要被存储在所述数据库中时,所述数据本文档来自技高网...

【技术保护点】
一种数据库的高性能查询方法,其特征在于,包括:通过执行数据定义语言DDL,将待存储数据存储在系统内存的缓冲区中;通过执行数据查询语言DQL,对存储在所述缓冲区中的数据进行查询。

【技术特征摘要】

【专利技术属性】
技术研发人员:杨宇
申请(专利权)人:北京锐安科技有限公司
类型:发明
国别省市:北京;11

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

1