Oracle 等待事件 library cache pin 官方解释,作用,如何使用及优化方法
本站中文解释
Oracle事件library cache pin是Oracle数据库开发人员需要调查的重要等待事件,它涉及到用户模式等待事件和数据库等待事件。
Library Cache Pin是一种字典缓存等待,是当一个会话试图解析一个Shared Pool中的SQL语句时可能出现的等待事件。如果使用的SQL语句已经在字典缓存中,则可以被轻松的引用,但Oracle必须验证准确的SQL文本,以及每个绑定变量的类型,大小和值。另一方面,如果SQL语句不在字典缓存中,那么 Oracle会把它放入缓存去,这样就可以供他人使用。
当一个会话想要使用字典缓存中的SQL语句,另一个会话正在处理它时会发生Library Cache Pin等待事件。当一个会话正在搜索时,所有其他会话尝试使用同一字典缓存中的语句都会被阻止,因此,Library Cache pin等待事件是必然发生的,除非你可以确信不会有多个会话同时排队问同一字典缓存中的语句。
简单来说,LIBRARY CACHE PIN是由于在不同会话之间可能存在多种SQL语句而引发的,这时Oracle会将所有这些SQL语句存放在转到字典缓存中(或正它正被另一会话使用),因此会产生等待事件。为了解决library cache pin等待事件,你可以优化数据库的缓存使用,避免过多的缓存锁定问题。 你也可以使用一些定制的优化措施来加快library cache pin等待事件的处理,比如通过优化SQL语句的检测等。此外,你可以查看这类等待事件中发生的资源瓶颈,并对其进行分析,进而优化其性能。
官方英文解释
This event manages library cache concurrency. Pinning an object causes the heaps to be loaded into memory. If a client wants to modify or examine the object, the client must acquire a pin after the lock.
Wait Time: 3 seconds (1 second for PMON)
Parameter | Description |
---|---|
handle address |
Address of the object being loaded |
pin address |
Address of the load lock being used. This is not the same thing as a latch or an enqueue, it is basically a State Object. |
mode |
Indicates which data pieces of the object that must be loaded |
namespace |
See “namespace” |
See Also:
-
Oracle Database
Performance Tuning Guide for more information about this wait event -
Oracle Database
Performance Tuning Guide for more information about potential causes of this wait event