[发明专利]一种缓存结果集的管理方法、装置及系统有效
申请号: | 201210121445.6 | 申请日: | 2012-04-23 |
公开(公告)号: | CN102682087A | 公开(公告)日: | 2012-09-19 |
发明(设计)人: | 宋娇 | 申请(专利权)人: | 华为技术有限公司 |
主分类号: | G06F17/30 | 分类号: | G06F17/30 |
代理公司: | 北京凯特来知识产权代理有限公司 11260 | 代理人: | 郑立明;黄晓军 |
地址: | 518129 广东*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 缓存 结果 管理 方法 装置 系统 | ||
技术领域
本发明实施例涉及数据库技术领域,尤其涉及一种缓存结果集的管理方法、装置及系统。
背景技术
随着社会信息化程度越来越高,特别是数据库技术的革新,使数据库的容量增长的速度越来越快。那么,如何从如此大容量的数据库中准确快速的地获得目标信息,这对DBMS(Database Management System,数据库管理系统)查询技术提出了更高的要求。
查询技术中最重要的一点就是查询响应时间,查询响应时间越短且查询得到数据越准确,则DBMS越能得到人们的欢迎。为了达到短的响应时间,出现了结果集缓存技术,就是将数据库(或者称为基表(Table))查询的结果集缓存起来,当有相同的查询被提交时,如果查询条件完全匹配,则直接从缓存(Cache)中将相应的结果集返回给客户端,可见,利用内存资源的易获取性,省去了解析、优化及执行操作,更少的物理读写操作,更少的CPU(Central Processing Unit,中央处理器)计算时间,大大地减少了响应时间,从而提高了查询速度。
但是,目前的结果集缓存技术为了保证数据的正确性,只要结果集所依赖的基表发生更改时,则使结果集立即失效。那么,对于结果集访问程度高,结果集依赖的基表更改次数很少,且获取该结果集耗费CPU时间较短这样的情况,若只要基表发生更改就使结果集失效,那么,对于可重用部分的结果集没有充分利用。另一方面,如果为了保证数据的一致性,只要结果集所依赖的基表发生更改就更新缓存结果集。那么,对于结果集访问程度不高,结果集依赖的基表更改次数很多,获取该结果集耗费CPU时间较长这样的情况,执行更新缓存结果集不仅意义不大,甚至反而会降低DBMS的系统性能。
发明内容
本发明实施例的目的是提供一种缓存结果集的管理方法、装置及系统,平衡结果集的利用及系统性能。
本发明实施例的目的是通过以下技术方案实现的:
一方面,本发明实施例提供一种缓存结果集的管理方法,包括:
当缓存中的结果集所依赖的基表发生更改时,确定所述结果集的当前访问次数S、首次获取所述结果集所占用的CPU时间tcpu、更新所述结果集所占用的CPU时间tucpu、当前CPU的繁忙程度bcpu以及所述结果集的更新次数m;
当一定时间段内由所述S、tcpu、tucpu及bcpu确定的参数c的值大于预设值c0,或者,所述m的值大于预设值m0且由所述S及m确定的参数n的值大于预设值n0,则确定更新所述结果集,否则确定使所述结果集失效。
另一方面,本发明实施例提供一种缓存结果集的管理装置,包括:
确定单元,用于当缓存中的结果集所依赖的基表发生更改时,确定所述结果集的当前访问次数S、首次获取所述结果集所占用的CPU时间tcpu、更新所述结果集所占用的CPU时间tucpu、当前CPU的繁忙程度bcpu以及所述结果集的更新次数m;
判断单元,用于当一定时间段内由所述S、tcpu、tucpu及bcpu确定的参数c的值大于预设值c0,或者,所述m的值大于预设值m0且由所述S及m确定的参数n的值大于预设值n0,则确定更新所述结果集,否则确定使所述结果集失效。
再一方面,本发明实施例提供一种数据库管理系统,包括:用于存储数据的数据库和上述缓存结果集的管理装置,所述缓存结果集的管理装置用于管理所述数据库根据数据查询请求产生的结果集。
由上述本发明提供的技术方案可以看出,当基表发生变化时,根据确定所述结果集的当前访问次数S、首次获取结果集所占用的CPU时间tcpu、更新结果集所占用的CPU时间tucpu、当前CPU的繁忙程度bcpu以及结果集的更新次数m,判断进行更新结果集还是结果集失效,以合理利用系统资源,以及高效地利用缓存结果集。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他附图。
图1为本发明实施例提供的缓存结果集的管理方法的流程示意图。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于华为技术有限公司,未经华为技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201210121445.6/2.html,转载请声明来源钻瓜专利网。