latch wait posting
当一个进程在pin之后,还不能获得一个latch时,就进入了sleep了。由_max_sleep_holding_latch(一个进程持有一个latch时的最大休眠时间,以防止其他进程在等待这个latch的时间过长)控制,_max_exponential_sleep(表示一个进程在sleep的时间,如。1,1,2,2,4,4。defulat为2秒)在进入sleep之前这个进程必须把自己放到latch的latch waiting list上,这样当持有latch的进程在free latch时候,就会把检查这个队列,如果发现在latch waiting list上有进程等待,就会设置等待的进程的semaphore,这样这个等待的进程就可以立即进入了CPU的就绪队列,如果没有这种结构来,那么等待的进程会继续sleep,直到再次醒来,通过这种结构可以在latch请求进程之前快速的进行切换从而提高了性能。_latch_wait_posting这个参数用来定义在哪些结构上使用latch waiting post,default为1,表示在dictionary和row cache上的相关latch使用这种结构,也可以设为2,表示除cache buffer chain之外的所有latch都使用这种结构。当然使用2也会带来一定的管理上的开销,所以在调整此参数时需要特别小心。在10G以后这个参数已经被抛弃掉了。
阅读(2685) | 评论(1) | 转发(0) |