几点补充 Dity代表此rame的数据已被修改,在 Dirty frame被替换之前需要同步到磁盘上 申请新的fame时如没有可替换的 frame, 则等待 如何处理多个事务同时访问一个 frame中的 数据?
26 几点补充 Dirty代表此frame的数据已被修改,在 Dirty frame被替换之前需要同步到磁盘上 申请新的frame时如没有可替换的frame, 则等待 如何处理多个事务同时访问一个frame中的 数据?
缓冲区的替换策略 最早使用策略( Lest recently used,LRU〕 当 pin_count=0时该 frame成为可选择,但并不 是马上被替换,因为在此之前有可能再次被访问 最早变成可选择的页被首先替换 Clock策略 将所有的 frame排成一个圈,下一个被替换的页 是圈上的下一个可选择的页 使用 referenced标志避免刚被访问过的 frame被 再次访问,其想法是 referenced在第一遍访问时 变成true,第二遍才替换
27 缓冲区的替换策略 最早使用策略(Lest recently used,LRU) 当pin_count=0时该frame成为可选择,但并不 是马上被替换,因为在此之前有可能再次被访问 最早变成可选择的页被首先替换 Clock策略 将所有的frame排成一个圈,下一个被替换的页 是圈上的下一个可选择的页 使用referenced标志避免刚被访问过的frame被 再次访问,其想法是referenced在第一遍访问时 变成true,第二遍才替换
缓冲区的替换策略 实际系统中的 Buffer pool DB2:dock允许有多个 Buffer Pool Sybase:LRU允许有多个 Buffer pool Informax, Oracle:LRU,单个 Buffer pool Sql server:cock,单个 Buffer pool 28
28 缓冲区的替换策略 实际系统中的Buffer Pool DB2:clock,允许有多个Buffer Pool Sybase :LRU,允许有多个Buffer Pool Informax,Oracle: LRU,单个Buffer Pool Sql Server: clock,单个Buffer Pool
Buffer poo的预取 Buffer Pool virtual memory 区别在于 Buffer poo能够发现页访问模式 页访问模式产生的原因在于,页的访问方 式由上层的查询代数和操作决定 页的预取 DB2中的 Prefetching dirty frame的强制写盘 29
29 Buffer Pool的预取 Buffer Pool与virtual memory 区别在于Buffer Pool能够发现页访问模式 页访问模式产生的原因在于,页的访问方 式由上层的查询代数和操作决定 页的预取 DB2中的Prefetching dirty frame的强制写盘
文件与索引 每个页中包含若干条记录,每个文件中包 含若干个页 每个记录有一个唯一的标识符:d,它包括 页号和在页中的位置 不同的数据库管理系统的rid的定义略有不
30 文件与索引 每个页中包含若干条记录,每个文件中包 含若干个页 每个记录有一个唯一的标识符:rid,它包括 页号和在页中的位置 不同的数据库管理系统的rid的定义略有不 同