对于顺序表或索引扫描,可以将数据库服务器配置为在处理当前页的过程中预读多页。数据库服务器将自动预读正在为查询处理的当前页的后面几页,除非禁用自动预读操作。预读使应用程序能够更快地运行,因为它们将花费更少的时间等待磁盘 I/O。
自动预读取在连续扫描数据记录期间请求将页面放入缓冲池高速缓存,这可在服务器检测到查询(包括 OLTP 查询和索引扫描)遇到 I/O 时提高查询的性能。
顺序数据或索引读取期间,只要数据库服务器检测到有必要执行预读,就会执行预读。
onconfig 文件中的 RA_PAGES 参数指定数据库服务器执行预读时,要从磁盘或索引读取的页数。
RA_THRESHOLD 参数指定内存中导致数据库服务器执行另一个预读的未处理页的数量。例如,如果 RA_PAGES 设置为 10,且 RA_THRESHOLD 为 4,那么数据库服务器将在缓冲区中留有 4 个要处理的页时预读 10 个页。
可以使用 onstat -p 命令来查看数据库服务器读取和写入,并监视需要某个线程等待共享内存锁存器的次数。RA-pgsused 输出字段显示数据库服务器预读使用的页数,并监视数据库服务器对预读的使用。
使用 onstat -g rah 命令可显示有关预读请求的统计信息。