要理解library cache lock/pin,先要理解library cache object是什么,他的存储格式是什么
library cache object在内存中是分成2部分来存储的,第一部分是头信息,叫做handle,头信息里保存了指向具体保存该对象的地址,这个叫做heap,一个对象可能分为很多个heap
要访问或者修改一个对象,首先要锁住其头信息,也就是handle,以防止其他session同时访问或者修改该对象,这是library cache lock要做的事情
而当实际的访问或者修改对象的内容时,则要根据头信息去访问或者修改具体的heap的,那么也要防止其他session同时访问或者修改这些heap,所以对heap需要加library cache pin来保护
跟tx/tm的锁的区别就在于,library cache/lock/pin保护的是内存中的library cache object,而tx/tm保护的是schema object
===========================================================
4.查看spid相应执行sql
(SELECT DECODE(sql_hash_value, 0, prev_hash_value, sql_hash_value),
DECODE(sql_hash_value, 0, prev_sql_addr, sql_address)
FROM v$session b
WHERE b.paddr =
(SELECT addr FROM v$process c WHERE c.spid = '15125'))
ORDER BY piece ASC
5.查看block所在的表空间
6.产生批处理可以执行文件
for i in -60..-1 loop
dbms_output.put_line('exec proc_tbl_sms_order_from(sysdate'||i||') ;');
end loop;
end ;
ALTER TABLE tbl_mt_succ ADD PARTITION TBL_MT_SUCC_2008P3 VALUES LESS THAN (TO_DATE('2008-04-01','YYYY-MM-DD') ) ; --增加分区
select my.SID, st.NAME, my.VALUE from v$mystat my, v$statname st where st.STATISTIC# = my.STATISTIC# and st.NAME = 'redo size'

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/15142212/viewspace-592374/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/15142212/viewspace-592374/
本文深入探讨了Oracle数据库中librarycacheobject的内存管理机制,详细解释了librarycachelock和librarycachepin的作用,以及它们如何防止并发访问时的数据不一致问题。
346

被折叠的 条评论
为什么被折叠?



