暂无图片
暂无图片
1
暂无图片
暂无图片
暂无图片

oracle数据库性能优化之——latch的加深认知

DBA学习笔记 2021-04-21
1205

本次依然讲解的是性能优化中的latch,主要是对latch的加深认知

1、latch的位置,从哪才会出现latch
资源的请求和分配
共享池
   sql解析,sql重用....
数据缓冲池
  数据访问,数据写入磁盘,数据读入内存...
  修改数据块
  数据段扩展

2、oracle中有哪些latch

3、latch机制

4、latch的获取方式

wait方式--如果无法获取请求的latch,则:
– spin
• 当一个会话无法获得需要的latch时,会继续使用CPU(CPU空转),达到一个间隔后,
再次尝试申请latch,直到达到最大的重试次数。
– sleep
• 当一个会话无法获得需要的latch时,会等待一段时间(sleep),达到一个间隔后,再次
尝试申请latch,如此反复,直到达到最大的重试次数。
� No wait方式--如果无法获取请求的latch,则:
– 不会发生sleep或者spin.
– 转而去获取其它可用的Latch

5、latch争用

share pool 中latch的争用---绑定变量
示例如下:
1)create or replace procedure p1
    as
       l_cnt number;
   begin
  for i in 1..10000
       loop
         execute immediate 'select count(*) from emp  where empname=scott '|| i into l_cnt;
       end loop;
    end;
  
2) create or replace procedure p2
     as
       l_cnt number;
     begin
        for i in 1..10000
       loop
           select count(*) into l_cnt from emp where empno=7788;
       end loop;
    end;
  
3)查看latch争用的情况
 select * from v$latchname where name like 'library cache%';

    LATCH# NAME                                                                   HASH
---------- ---------------------------------------------------------------- ----------
       337 library cache load lock                                          2952162927

4)可以利用sql_trace进行追踪

最后修改时间:2021-04-21 14:56:06
文章转载自DBA学习笔记,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论