Chinaunix首页 | 论坛 | 博客
  • 博客访问: 427397
  • 博文数量: 239
  • 博客积分: 8010
  • 博客等级: 中将
  • 技术积分: 2431
  • 用 户 组: 普通用户
  • 注册时间: 2008-06-02 21:12
文章分类
文章存档

2008年(239)

我的朋友

分类: Sybase

2008-06-18 00:30:17

异步预取进程

异步预取进程负责将代理进程随后要处理的数据事先读入到内存中,避免代理进程处理时等待数据的读入,从而提高用户请求的处理速度。只有在系统需要数据的预先读取时,才会激活异步预取进程。

代理进程在处理事务时,要求被操作的数据处于内存中。如果内存中不存在所需的数据,代理进程就必须等待,直到所需数据读入内存,然后才继续处理。这种等待会严重影响用户请求的响应时间。为了降低代理进程的I/O等待,数据库系统引入了异步预取进程,预先将代理进程要处理的数据读入内存。

并不是所有的代理进程在处理时都需要进行预取。要进行事先的数据读取,需要满足以下两个条件:

1)对大数据量进行操作

2)系统能够预见随后要处理的数据

对一个或者多个包含很多记录的表,进行诸如:表扫描、索引扫描、排序、合并等操作,异步预取操作就不可避免。优化器在分析、优化SQL语句后,如果发现需要进行预取操作,就会激活异步预取进程。

异步预取进程对数据的读取是渐进的。如果已读入内存、还没有被使用数据的数量,达到数据库系统设定的上限后,异步预取进程就停止操作;如果低于设定的下限值后,异步预取进程又重新被激活。这种处理方式,一方面可以保证代理进程要处理的数据事先被读入内存,另一方面又可以避免太多的数据读入占用大量可用内存空间,影响到其它事务的处理。

阅读(966) | 评论(0) | 转发(0) |
0

上一篇:2.2.4 页清除进程

下一篇:2.2.1 监听进程

给主人留下些什么吧!~~