磁盘页面的读取方法和装置制造方法及图纸

技术编号:15355704 阅读:78 留言:0更新日期:2017-05-17 14:10
本发明专利技术涉及一种磁盘页面的读取方法和装置。所述方法包括:接收数据库操作指令,并从页面缓冲池中查找所述数据库操作指令所需的页面;若未在页面缓冲池中查找到所述页面,则根据所述数据库操作指令类型判断是否属于预设数据库操作指令类型集合中的一种;若所述数据库操作指令类型属于预设数据库操作指令类型集合中的一种,则根据数据库操作指令类型确定需要预读取的页面数量;根据需要预读取的页面的数量,从磁盘中读取需要预读取的页面。利用本发明专利技术可使得预读取的页面数量适当,降低了页面缓冲池资源的非必要占用并提高了磁盘读取效率。

【技术实现步骤摘要】

本专利技术涉及一种磁盘读取方法及装置,特别是涉及一种磁盘页面的读取方法和装置
技术介绍
当从磁盘页面读取数据时,传统方法通常先将数据读取到内存中,以减少磁盘输入输出操作。除此以外,为了提高数据使用效率,预读取技术也被引进到数据库内核中来优化数据库性能。这样,除了需要使用的数据所在的页面被读取以外,与其相邻的其他页面也被预先读取到缓冲池中。这种方法虽然在某种程度上提高了磁盘页面读取的效率,但仅能按照经验设置预读取页面的数量,具有一定的盲目性。如果预读取的页面并非数据库内核接下来将要读取的页面,此时不需要读取的页面甚至已经将缓存中的有效页面替换出去,导致数据库性能降低。同时,如果预读取的页面数量过少,也将导致预读取的数据不足而在后续的读取中产生大量的磁盘读取请求。传统磁盘页面的预读取方法不仅没有提高磁盘读取效率,反而降低了磁盘读取的效率。
技术实现思路
基于此,有必要针对磁盘页面的预读取效率的问题,提供一种磁盘页面的读取方法及装置。一种磁盘页面的读取方法,包括:接收数据库操作指令;从页面缓冲池中查找所述数据库操作指令所需的页面;若未在页面缓冲池中查找到所述页面,则判断所述数据库操作指令类型是否属于预设数据库操作指令类型集合;若所述数据库操作指令类型属于预设数据库操作指令类型集合,则根据数据库操作指令类型确定需要预读取的页面数量;以及根据需要预读取的页面的数量,从磁盘中读取需要预读取的页面到页面缓冲池中。一种磁盘页面的读取装置,所述装置包括:指令接收模块,用于接收数据库操作指令;页面查找模块,用于从页面缓冲池中查找所述数据库操作指令所需的页面;指令类型判断模块,用于若未在页面缓冲池中查找到所述页面,则判断所述数据库操作指令类型是否属于预设数据库操作指令类型集合;页面数量确定模块,用于若所述数据库操作指令类型属于预设数据库操作指令类型集合,则根据数据库操作指令类型确定需要预读取的页面数量;以及页面读取模块,用于根据需要预读取的页面的数量,从磁盘中读取需要预读取的页面到页面缓冲池中。上述磁盘页面的读取方法和装置,预先设置了数据库操作指令集合,在从页面缓冲池中未查找到数据库操作指令所需的页面时,判断数据库操作指令类型是否属于预设数据库操作指令类型集合。若数据库操作指令类型属于预设数据库操作指令类型集合,则进一步确定需要预读取的页面的数量,而不是单纯地不进行任何判断仅按照经验设置预读取既定数量的页面。利用本专利技术可使得预读取的页面数量适当,降低了页面缓冲池资源的非必要占用并提高了磁盘读取效率。附图说明图1为一个实施例中磁盘页面的读取方法的流程示意图;图2为一个实施例中数据库预设操作指令类型获取需要预读取的页面的示意图;图3为一个实施例中对需要预读取的页面排序分组的流程示意图;图4为一个实施例中磁盘页面的读取装置的结构框图;图5为一个实施例中页面数量确定模块的结构框图。具体实施方式为了使本专利技术的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本专利技术进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本专利技术,并不用于限定本专利技术。如图1所示,在一个实施例中,提供了磁盘页面的读取方法的流程示意图,包括如下步骤:步骤102:接收数据库操作指令。所述接收的数据库操作指令用于对页面进行操作,比如修改页面上的数据或者读取页面上的数据等。步骤104:从页面缓冲池中查找所述数据库操作指令所需的页面。要对数据进行操作,则需要在页面缓冲池中查找步骤102中所述的所需的页面。步骤106:若未在页面缓冲池中查找到所述页面,则判断所述数据库操作指令类型是否属于预设数据库操作指令类型集合。在页面缓冲池中未查找到所需的页面时,则根据所述数据库操作指令类型,判断是否需要从磁盘中读取此页面到缓冲池中从而得到所需页面。通过将数据库操作指令类型与预设数据库操作指令类型集合中的数据库操作指令进行比较,判断是否属于预设数据库操作指令类型集合。在本实施例中,首先通过判断操作指令类型来确定是否需要读取包括所需读取的页面在内的一批页面,或者仅读取所需的页面。步骤108:若所述数据库操作指令类型属于预设数据库操作指令类型集合中的一种,则根据数据库操作指令类型确定需要预读取的页面数量。本实施例中,针对不同的数据库操作指令类型,可采取不同的计算方法进行精确的估算,从而得到需要预读取的页面的数量。步骤110:根据需要预读取的页面的数量,从磁盘中读取需要预读取的页面到页面缓冲池中。在确定了需要预读取的页面的数量之后,生成工作线程并行执行预读取页面到页面缓冲池中的操作。上述磁盘页面的读取方法,先通过判断数据库操作指令类型是否属于预设数据库操作指令类型集合,来确定是否需要进行预读取,然后再针对需要进行预读取的数据库操作指令类型,分别计算需要预读取的页面的数量,使得预读取的页面数量适中,降低了页面缓冲池资源的非必要占用,并提高了磁盘读取效率。在一个实施例中,步骤102所述的数据库操作指令类型主要包括数据库中的四大类语言DDL(数据定义语言),DML(数据操纵语言),DCL(数据控制语言),DQL(数据查询语言)和数据库执行计划中所包含的运算指令,比如全表扫描操作指令、全索引扫描操作指令、索引范围扫描操作指令、索引叶节点扫描操作指令、日志扫描操作指令及事务的回滚操作指令等。通过解析指令,得出数据库需要对某些数据执行相应操作,而这些数据存在于某一页面或者某些页面上,然后从页面缓冲池中查找这些页面。在一个实施例中,在步骤108中,若未在页面缓冲池中查找到步骤106中操作所需的页面,则说明此页面不在页面缓冲池中,此时则需要从磁盘中读取所需的页面到页面缓冲池中,以便页面被使用。在从磁盘中读取页面时,不只读取所需的页面,还会读取包含所需页面在内的一批页面。在本专利技术的本实施例中,首先通过判断操作指令类型是否是预设数据库操作指令类型集合中的一种来确定是否需要读取一批页面,如果属于预设操作指令集合,则读取一批页面。否则,则不需要读取一批页面,仅读取所需的页面。在本实施例中,所述的预设数据库操作指令集合至少包括下列六种:全表扫描操作指令、全索引扫描操作指令、索引范围扫描操作指令、索引叶节点的扫描、日志扫描操作指令及事务回滚操作指令。上述六种操作共有的特点是均会有大量针对页面的操作,所以需要对操作所需的页面数量进行计算,来保证读取合适数量的页面。在本实施例中,所述判断数据库操作指令类型是否属于预设数据库操作指令类型集合中的一种可以通过在系统中设置操作指令监测程序来实现。比如,当监测程序监测到操作指令是预设数据库操作指令类型集合中的一种时,则开始准备获取需要预读取的页面的数量。具体地,操作指令监测程序可以通过字符串比较来实现监测。通常操作指令的关键字是一个字符串,比如ROLLBACK(回滚),TABLESCAN(表扫描)等。通过字符串比较函数、其他函数或其他方法,可以判断出操作指令中是否含有相应的关键字。若含有相应的关键字,则所述操作指令类型属于预设操作指令集合中的一个。应当理解,本实施例仅列举了一种判断的方法,其他方法均可以用于判断数据库操作指令类型是否属于预设数据库操作指令类型集合中的一种。在步骤108中,若所述数据库操作指令类型属于预设数据库操作指令类型集合中的一种,则本文档来自技高网...
磁盘页面的读取方法和装置

【技术保护点】
一种磁盘页面的读取方法,其特征在于,所述方法包括:接收数据库操作指令;从页面缓冲池中查找所述数据库操作指令所需的页面;若未在页面缓冲池中查找到所述页面,则判断所述数据库操作指令类型是否属于预设数据库操作指令类型集合;若所述数据库操作指令类型属于预设数据库操作指令类型集合,则根据数据库操作指令类型确定需要预读取的页面数量;以及根据需要预读取的页面的数量,从磁盘中读取需要预读取的页面到页面缓冲池中。

【技术特征摘要】
1.一种磁盘页面的读取方法,其特征在于,所述方法包括:接收数据库操作指令;从页面缓冲池中查找所述数据库操作指令所需的页面;若未在页面缓冲池中查找到所述页面,则判断所述数据库操作指令类型是否属于预设数据库操作指令类型集合;若所述数据库操作指令类型属于预设数据库操作指令类型集合,则根据数据库操作指令类型确定需要预读取的页面数量;以及根据需要预读取的页面的数量,从磁盘中读取需要预读取的页面到页面缓冲池中。2.根据权利要求1所述的磁盘页面的读取方法,其特征在于,所述预设数据库操作指令类型集合包括:全表扫描操作指令、全索引扫描操作指令、索引范围扫描操作指令、索引叶节点扫描操作指令、日志扫描操作指令及事务的回滚操作指令。3.根据权利要求2所述的磁盘页面的读取方法,其特征在于,若所述数据库操作指令类型为全表扫描操作指令或全索引扫描操作指令,根据所述数据库操作指令类型确定需要预读取的页面的数量的步骤还包括:获取全表扫描或全索引扫描所需扫描的表的总数据量;将表的总数据量中预设比例的数据量确定为所需读取的数据量;以及根据所需读取的数据量获取需要预读取的页面的数量。4.根据权利要求2所述的磁盘页面的读取方法,其特征在于,若所述数据库操作指令类型为索引范围扫描操作指令或索引叶节点扫描操作指令,根据所述数据库操作指令类型确定需要预读取的页面的数量的步骤还包括:获取索引范围扫描或索引叶节点扫描的请求次数;以及根据所述请求次数获取需要预读取的页面的数量。5.根据权利要求2所述的磁盘页面的读取方法,其特征在于,若所述数据库操作指令类型为日志扫描操作指令或事务回滚操作指令,根据所述数据库操作指令类型确定需要预读取的页面的数量的步骤还包括:根据日志中所记录的被修改的数据所在的页面的数量,得到需要预读取的页面的数量的初始值;当所述初始值大于等于预设第一阈值时,将需要预读取的页面的数量确定为占初始值预设比例的页面的数量;当所述初始值小于所述预设第一阈值且大于预设第二阈值时,将需要预读取的页面的数量确定为所述初始值;以及当所述初始值小于等于所述预设第二阈值时,将需要预读取的页面的数量确定为所述预设第二阈值。6.根据权利要求1所述的磁盘页面的读取方法,其特征在于,所述根据需要预读取的页面的数量,从磁盘中读取需要预读取的页面的步骤包括:对所述需要预读取的页面的物理地址排序;以及根据排序结果和需要预读取的页面的数量,分组读取需要预读取的页面到页面缓冲池中。7.根据权利要求6所述的磁盘页面的读取方法,其特征在于,在对所述需要预读取的页面的物理地址排序的步骤之前还包括:从所述需要预读取的页面的...

【专利技术属性】
技术研发人员:李海翔宋晓眉
申请(专利权)人:北京华胜信泰数据技术有限公司华胜信泰信息产业发展有限公司
类型:发明
国别省市:北京;11

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

1