oracle中lock与latch的区别
1,都是锁
2,lock用于database data,针对磁盘
3,latch锁比lock锁级别低
4,latch用于管理系统资源,针对内存,shared pool latch.
5, library cache pin和library cache lock都是用于share pool的并发控制的。pin和lock都可以看作是一种锁。locks/pins会在SQL语句执行期间一直保持,在结束的时候才释放。
6,大体上可以这样理解,现在要在一个房间里面修一张桌子。
shared pool latch保护你正常找到一个可以修桌子的空房间,
library cache lock保护你可以正常把桌子搬进房间,
library cache pin保护你可以正常在房间里把桌子修完。
7,latch:It's called 锁存器, a register array for temporary keep the working status.oracle中文培训教材上翻译为栓锁,就是oracle的系统锁,进程只有获得latch才可以向db buffer cache里写入数据.闩,以区别与锁。闩是比锁低一级,或者说是用于系统内部的小型锁。latch是用于保证内存结构(如LRU List和Redo Allocation)在非常短的时间处在一致性的状态,一般不需要DBA的维护!
8,lock是用于保证数据的一致性与更高的并发度的,包括TM表类型的lock和TX纪录类型的lock。