检查点是将内存中修改的数据与数据库中的数据文件同步的手段。Oracle数据库定期将检查点之间修改的数据写入数据文件,这种做法的要求之一是需要服务器有足够的可用内存,以提高为即将进行的操作寻找空闲内存的执行性能。
所以,这个检查点的设置,跟很多参数有关,如服务器的内存等等。虽然在以前的版本中,数据库管理员可以通过设置相关的初始化参数,来指定预期的崩溃恢复时间。但是,实际上,由于这个设置复杂,影响因素众多,所以,很少有数据库管理员会去调整这个参数,而都是采用其默认的设置。
笔者在使用Oracle 11G数据库中,印象最深的是数据库可以自我调整检查点。虽然在10G中也已经提出了这个功能,但是用的总是不怎么顺心。在11G中作了一定的改善,从而使得这个新功能得到了大家的认同。使用数据库的自动检查点调整,数据库就会自动判断数据库的繁忙程度,具体的说是判断I/Q 操作的繁忙程度,数据库会自动在其比较空闲的时候,把脏缓冲期中的内容写入到数据文件中,从而降低对数据库吞吐量所产生的影响,提高数据库的操作性能。
其实,这个检查点的自我调整功能就好像是一个交通警察,当道路繁忙的时候,下班高峰期时,一些打扫卫生的清洁车就不能进入车道;只有到道路比较空闲的时候,清洁车才能进入车道打扫卫生。从而把清洁车对于车道的正常运行的影响降低到最低。
当然,这个改善可能用户一下子还察觉不出来。但是,我们通过数据库日志进行前后的对比,就会发现,两者的差异是很大的。利用了数据库检查点自我调整功能后,数据库的查询性能,特别是查询大量数据的性能,得到了比较显著的改善。
不过,话说回来,数据库的自我调整功能虽然是一个不错的“交通警察”,但是当车真的很多的时候,最好的“交通警察”,也是无能为力。此时,就需要对硬件上的改善,如增加服务器的内存等等。毕竟像数据检查点等自我调整功能只能够改善硬件的利用能力,而不能从本质上提升硬件的容量。
二、 自我调整系统全局区
文章来源于领测软件测试网 https://www.ltesting.net/