DB2 体系结构和进程概述
在客户机端,本地或远程应用程序与 DB2® 客户机库链接。本地客户机使用共享内存和信号进行通信;远程客户机使用协议(例如命名管道 (NPIPE) 或 TCP/IP)进行通信。在服务器端,活动由引擎可分派单元 (EDU) 控制。
图 1 显示了 DB2
体系结构和进程的一般概述。
图 1. 客户机连接和数据库服务器组件
EDU 显示为圆圈或圆圈组。
EDU 在所有平台上都作为线程实现。DB2 代理程序是最常见的 EDU 类型。这些代理程序代表应用程序执行大量 SQL 和 XQuery 处理。其他常见的 EDU 包括预取程序和页清理程序。
可以指定一组子代理程序来处理客户机应用程序请求。如果服务器所在的机器包含多个处理器或者是分区数据库环境的组成部分,那么可以指定多个子代理程序。例如,在对称多处理(SMP)环境中,多个 SMP 子代理程序可以利用多个处理器。
所有代理程序和子代理程序都由一个共享算法管理,该算法将最大程度地减少创建和破坏 EDU 的操作。
缓冲池是数据库服务器内存中的一个区域,用户数据页、索引数据页和目录数据页被临时地移至该区域,并可以在该处被修改。由于访问内存中的数据比访问磁盘中的数据快得多,因此缓冲池是数据库性能的重要因素。
缓冲池以及预取程序和页清理程序 EDU 的配置决定了应用程序能够多快地访问数据。
- 预取程序在应用程序需要数据之前从磁盘检索该数据,并将其移入缓冲池。例如,如果没有数据预取程序,那么需要扫描大量数据的应用程序将必须等待数据从磁盘移入缓冲池。应用程序的代理程序将异步预读取请求发送至公共预取队列。当预取程序可用时,它们使用大块或散射读取输入操作将请求的页从磁盘读入缓冲池,从而实现那些请求。如果使用多个磁盘来存储数据,那么可以采用条带分割技术将数据分布到那些磁盘上。条带分割技术使预取程序能够同时使用多个磁盘来检索数据。
- 页清理程序将数据从缓冲池移回到磁盘。页清理程序是独立于应用程序代理程序的后台 EDU。它们将查找已被修改的页,并将那些已更改的页写入磁盘。页清理程序确保缓冲池中有空间供预取程序正在检索的页使用。
如果没有独立的预取程序和页清理程序 EDU,那么应用程序代理程序将必须执行缓冲池与磁盘存储器之间的所有数据读取和写入操作。