2008年(239)
分类:
2008-06-18 00:09:24
数据库系统有自己的内存管理和调度。整个内存空间依据存放数据和功能的不同,被划分为多个部分,主要包括:进程缓冲区、数据字典缓冲区、用户数据缓冲区、SQL语句缓冲区、日志缓冲区、锁表缓冲区。每个部分分别使用单独的页表进行请求调页管理、请求淘汰换页管理。一个数据库系统可以使用多个页尺寸读取磁盘中的数据。
进程缓冲区是进程的私有内存空间,存放进程控制块、堆栈、数据、程序代码等进程运行所需要的相关信息,被进程排它性地使用。它在进程启动时被分配,在进程中止后被回收。用户一般不用改变进程缓冲区的配置。
数据字典缓冲区存放数据库的数据字典信息,在数据库系统启动时分配。应当避免在系统正常运行过程中,由于内存空间不足,而引起对数据字典信息的读出和读入。
用户数据缓冲区存放数据库中的用户数据。这些用户数据由代理进程读入内存,由页清除进程将更新后的数据写入磁盘。它的配置和管理,对数据库系统性能有着重要的影响,应当保证它的数据命中率在95%以上。
SQL语句缓冲区存放由优化器生成的SQL语句执行计划,不要在数据库系统正常运行时对系统进行维护,以避免SQL语句的再次编译。
日志缓冲区存放事务执行过程中产生的日志信息,由日志写进程将日志缓冲区中的数据写入磁盘。
锁表缓冲区存放为数据库对象所加的锁。为保证数据的更新操作不会丢失,在处理数据前,数据库系统要对数据加相关的锁。在更新完成后,这些锁就被释放。
常见的数据库系统:DB2、ORACLE、INFORMIX、SYBASE,其内存空间结构的使用和管理不尽相同。要正确配置和管理各个数据库系统的内存使用,需要了解和掌握其内存空间的结构和作用。