
资源由 www.eimhe.com 美河学习在线收集提供
了一个解析的步骤,如果share pool中没有,这时服务器进程就会进
行一系列的操作,对这条SQL语句进行解析,生成执行 。
所以当服务器进程拿到了SQL语句后,会做1、找 2、解析
share pool最主要的作用是缓存SQL语句和对应的执行计划。
对share pool的访问和修改的操作都是服务器进程做的。
当SQL语句执行的时候,需要去取数据,表的数据都在数据文件中。
buffer cache就是用来缓存数据文件的数据,因为A用户访问了某个
表,而B用户访问同一个表的可能性非常大的,如果没有buffer cache
的话,每次访问dbf的时候,都要发生物理IO,所以当进程访问dbf
时,服务器进程首先会去buffer cache里面找,这个表所对应的数据
在buffer cache里面有没有,有的话就直接访问buffer cache,把数据
取出来通过网络返回给客户端,所以服务器进程执行SQL语句获取数
据的时候,首相找的是buffer cache,如果buffer cache没有,就到dbf
上找,从dbf中把数据取出来后不是直接把数据返回给用户,而是把
数据放到buffer cache中,再从buffer cache中把数据返回给用户。从
dbf中取数据到buffer cache的操作(物理读)是由服务器进程完成的。
logic IO:逻辑IO,服务器进程执行SQL语句的时候,要访问某个表,
首先要读buffer cache,看buffer cache中有没有这个表的数据,有的
话就直接从buffer cache中读,这种读叫做逻辑读、内存读。
评论