DB2和Oracle图放在一起看,蛮有意思。都是关系数据库系统的实现,相似的地方相当多。
不过DB2的进程模型貌似要比Oracle复杂,我想大概是两点
1. DB2支持一个实例下面可以有多个数据库。而Oracle一个实例一个数据库
2. DB2专攻MPP架构来实现复杂语句的分布式执行,这个不管是对编译优化器还是分布式的进程体系的要求要高很多。
这里有个Oracle和DB2的概念的全对比:
http://publib.boulder.ibm.com/infocenter/db2luw/v9r7/topic/com.ibm.db2.luw.apdv.porting.doc/doc/c0053114.html
DB2进程模型
DB2内存模型
Oralce进程和内存架构
进程模型的简单对比
Oracle |
DB2
|
PMON
|
db2wdog (not exactly)
|
SMON
|
No equivalent
|
Server
|
db2agent
|
DBWn
|
db2pclnr
|
CKPT
|
No equivalent
|
LGWR
|
db2loggw
|
ARCn
|
db2cart
|
No equivalent
|
db2pfchr
|
内存模型的简单对比
Oracle
|
DB2 |
SGA
|
no exact equivalent
|
Buffer Cache
one default, keep, recycle
one for each other page size
defined in init.ora
dynamically resizable
|
Buffer Pool
as many as you like
defined with CREATE BUFFERPOOL DDL
dynamically resizable
|
Log Buffer
defined in init.ora
|
Log Buffer
defined in database configuration
|
Shared Pool
|
No exact equivalent
|
Library Cache
|
Package Cache
|
Dictionary Cache
|
Catalog Cache
|
PGA
|
Application Heap, Sort Heap, etc
|
no equivalent
|
Utilities Heap
|
no equivalent
|
Lock List
|