latch: shared pool

SQL> select name, parameter1, parameter2, parameter3 from v$event_name where name like '&event';
Enter value for event: latch: shared pool
old   1: select name, parameter1, parameter2, parameter3 from v$event_name where name like '&event'
new   1: select name, parameter1, parameter2, parameter3 from v$event_name where name like 'latch: shared pool'

NAME                           PARAMETER1      PARAMETER2      PARAMETER3
------------------------------ --------------- --------------- ---------------
latch: shared pool             address         number          tries

SQL>

Problem Confirmation:问题定位
    Significant waits on "latch: shared pool"
    Other waits related to shared pool such as library cache waits may also be seen
    Overall database performance may be significant
    There may be high number of hard parsing

"latch: shared pool"("latch:共享池"):
The shared pool is part of the SGA and it's main components are the library cache and the dictionary cache.  The shared pool holds objects such as optimized queries, parsed sqls, security checks, and packages in memory to allow sessions fast access. When the shared pool space is exhausted old entries are aged out to allow new entries. Shared pool space may become exhausted due to small shared pool, or sqls that are not shared, or high impact on the data dictionary.  Activity in the shared pool is protected by the shared pool latch which, when held by a session, prevents changes being made to it.
共享池是SGA的一部分,它的主要组件是库缓存和字典缓存。 共享池包含对象,如优化查询,解析的sqls,安全检查和内存中的包,以允许会话快速访问。 当共享池空间耗尽时,旧的条目会超时以允许新的条目。 共享池空间可能由于共享池很小或者不共享的sqls而枯竭,或者对数据字典影响很大。 共享池中的活动受共享池锁存器的保护,共享池锁定器在会话期间阻止对其进行更改。

解决:
1.Tuning the Shared Pool Latch(调整共享池锁存)
争用"锁定:共享池"通常归因于以下一个或多个:
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Oracle 性能调整 (真正由ORACLE甲骨文出品)<br><br>如何开始调整? <br> – 解决性能问题的步骤 <br> 分析症状 <br> 确定问题范围 <br> 参数调整or <br> 结构调整or <br><br> 应用调整 <br> 性能监控 <br><br>Shared Pool <br> – SHARED_POOL_SIZE 控制共享SQL缓冲存储区和数据字 <br> 典缓冲存储区的大小 <br> – 字典缓冲存储区存储关于数据对象的信息 <br> – 监控V$ROWCACHE,若命中率< 95%,考虑增加 <br> SHARED_POOL_SIZE <br> – 监控V$LIBRARYCACHE 来确定多重加载的数量 <br> – 若命中率< 75%,确定需要多重加载的对象 <br> – V$SQLAREA, 检索可能的候选共享SQL <br> – 建议使用存储过程和变量 <br> – 使用DBMS_SHARED_POOL把大的或常用的PL/SQL, <br> cursors, sequences, triggers, packages and procedures <br> 预装入SGA <br><br> 如果在应用SQL编程中不使用捆绑变量,很容易引起 <br> shared_pool 和library cache 的latch 竞争. <br> 这种latch等待时间可以通过优化SQL来减少. <br> Oracle 8i Release 2 (8.1.6)可以做直接常量和捆绑变量的 <br> 自动转换,Oracle9i又进一步扩充了该功能… <br><br> CURSOR_SHARING=FORCE <br> (Default is EXACT; 8iR2) <br><br> 如果通过监测v$sqlarea发现有因为没有使用捆绑变量所引起 <br> 的性能问题: <br> 50M的shared pool可以工作正常 <br> 50M的shared pool,当x$ksmsp中的记录数超过200,000条 <br> 时就可能会引起性能问题. <br> 200M的shared pool,当x$ksmsp中的记录数超过580,000条 <br> 时,性能会无法忍受. <br> – 每个查询会耗用2%CPU <br> – 大量的I/O <br><br> 所以: <br> – 170 meg = 5038 SQL Areas = 131319 x$ksmsp records <br> Keep the Shared_pool_size at 100M or lower (50M if possible). <br><br> If v$sqlarea looks like this: <br> select empno from rich778 where empno =451572 <br> select empno from rich778 where empno =451573 <br> select empno from rich778 where empno =451574 <br> select empno from rich778 where empno =451575 <br> select empno from rich778 where empno =451576 <br><br>Use cursor_sharing=force (sqlarea goes to this): <br> select empno from rich778 where empno =:SYS_B_0 <br><br>Oracle9i Enterprise Edition Release 9.0.1.0.0 - Production <br>(SIMILAR takes into account the statistics as well…) <br><br>SQL> alter session set cursor_sharing=SIMILAR; <br><br>System altered. <br><br>Oracle8i Enterprise Edition Release 8.1.7.0.0 – Production <br>SQL> alter session set cursor_sharing=SIMILAR; <br><br>ERROR: ORA-00096: invalid value SIMILAR for parameter <br> cursor_sharing, must be from among EXACT, FORCE <br>

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值