四、诊断latch竞争
1、概念
Latch是简单的、低层次的序列化技术,用以保护SGA中的共享数据结构,比如并发用户列表和buffer cache里的blocks信息。一个服务器进程或后台进程在开始操作或寻找一个共享数据结构之前必须获得对应的latch,在完成以后释放latch。不必对latch本身进行优化,如果latch存在竞争,表明SGA的一部分正在经历不正常的资源使用。
1)Latch的作用:
A、序列化访问:保护SGA中的共享数据结构;保护共享内存的分配。
B、序列化执行:避免同时执行某些关键代码;避免互相干扰。
2)Latch请求的两种类型:
A、willing-to-wait:请求的进程经过短时间的等待后再次发出请求,直到获得latch
B、immediate:如果没有获得latch,请求的进程不等待,而是继续处理其他指令。
2、检查Latch竞争
检查latch free是不是主要的wait event:
Select * from v$system_event order by time_waited;
检查latch的使用情况:
Select * from v$latch:
与willing-to-wait请求有关的列:gets、misses、sleeps、wait_time、cwait_time、spin_gets
与immediate请求有关的列:immediate_gets、immediate_misses
Gets: number of successful willing-to-wait requests for a latch;
Misses: number of times an initial wiling-to-wait request was unsuccessful;
Sleeps: number of times a process waited after an initial willing-to-wait request;
Wait_time: number of milliseconds waited after willing-to-wait request;
Cwait_time: a measure of the cumulative wait time including the time spent spinning and sleeping,the overhead of context switches due to OS time slicing and page faults and interrupts;
Spin_gets: gets that misses first try but succeed after spinning.
Immediate_gets: number of successful immediate requests for each latch;
Immediate_misss: number of unsuccessful immediate requests for each latch;
一般无需调整latch,但是下列的措施是有用的:
A、对处于竞争中的latch做进一步的调查
B、如果竞争主要存在于shared pool和library cache中,可以考虑调整应用
C、如果进一步的调查显示需要调整shared pool和buffer cache,就进行调整
Select * from v$latch where name like ‘%shared pool%’ or name like ‘%library cache%’;
如果竞争是在shared pool或library cache上,表示下列集中情况:
A、不能共享的sql,应检查他们是否相似,考虑以变量代替sql中的常量:
Select sql_text from v$sqlarea where executions=1 order by upper(sql_text);
B、共享sql被重新编译,考虑library cache的大小是否需要调整:
SELECT sql_text,parse_calls,executions FROM v$sqlarea where parse_calls>5;
C、library cache不够大。
分享到:
相关推荐
### Oracle性能调整的十大要点详解 #### 一、SGA(共享全局区)优化 **1. Shared Pool Tuning** Shared Pool是SGA的一个重要组成部分,用于存储最近使用过的SQL语句及其执行计划等信息。优化Shared Pool对于提高...
### Oracle性能诊断之——Latch Free:深入理解与分析 在探讨Oracle数据库的性能优化与故障诊断时,"Latch Free"事件往往成为关注的焦点。这一主题不仅涉及Oracle内存管理的核心机制,还触及到多线程环境下的并发...
通过这样的分析,DBA(数据库管理员)可以识别出哪些latches经常导致等待,从而调整数据库参数,优化SQL语句,或者考虑其他性能改进措施,如增加缓存大小、减少并发度等,以降低latch竞争,提升系统性能。...
Oracle数据库中的"Latch Free"等待事件是数据库性能优化的一个重要概念。在深入探讨这个主题之前,我们先要理解什么是Latch和Lock,以及它们之间的区别。 Latch(锁片或轻量级锁)是一种低级别的同步机制,主要用于...
通过对Oracle数据库性能调整的深入了解,我们可以更好地诊断和解决性能问题,从而提高系统的整体性能。无论是从操作系统层面还是数据库内部,每一步调整都需要细致入微的考虑和测试。通过合理调整共享池参数、使用...
在Oracle数据库中,`Library Cache Latch`竞争是一个常见的性能瓶颈问题,通常会导致系统响应时间增加、性能下降等问题。本篇文章将详细探讨如何诊断并解决该问题。 #### 确定系统慢的原因 为了找出导致系统变慢的...
在Laravel框架中,"Laravel Latch"是一个用于处理会话、认证和授权的工具,它增强了Laravel原生的安全特性。...在实际开发中,结合laravel-latch-master源代码的学习,将有助于深入理解其工作原理和最佳实践。
Oracle数据库是一种广泛使用的大型关系型数据库管理系统,它在处理并发事务时采用了一种称为“Latch”和“Lock”的并发控制机制。Latch(闩锁)和Lock(锁定)都是Oracle用来确保数据一致性、防止数据冲突的关键组件...
- **2.1.2 Oracle性能调整的十大要点** - 本书总结了Oracle性能调整的关键点,涵盖了硬件配置、软件设置、SQL优化等方面。 - 十大要点包括但不限于:正确配置SGA/RGA大小、合理设置并发级别、使用高效的索引策略等...
理解并解决Oracle数据库中的Latch和Mutex竞争问题对于提升系统性能至关重要。通过对竞争现象的细致分析,结合使用Oracle提供的各种工具和技术,我们可以有效地识别并解决问题,进而提高数据库的整体运行效率。
1. Latch:用于多线程环境下的同步,过多的 latch 竞争可能成为性能瓶颈。 2. 锁管理:理解不同类型的锁(如行级锁、表级锁)及其行为,避免死锁。 七、硬件与操作系统优化 1. I/O优化:高速磁盘、RAID配置、固态...
在本文档中,我们将讨论 Oracle 性能优化的一些技术和方法,包括 SGA 的优化、配置优化、排序操作诊断、Latch 竞争、Rollback(Undo)Segment 优化、Lock Contention 应用优化、Block 的效率提升等等。 一、SGA ...
Oracle提供了多种工具和视图,如V$LATCH、V$LATCH_CHILDREN等,用于跟踪和诊断Latch的竞争情况。通过对这些工具的分析,DBA可以了解哪些Latch是竞争热点,并据此采取措施优化系统性能。 ### 七、获取Latch信息的...
标签“Oracle11g 性能调优”进一步强调了文档的核心主题,即通过调整配置、优化查询等方式来提升 Oracle 11g 数据库的性能表现。 #### 部分内容解读及知识点总结: **版权与使用说明:** 文档开头包含了版权和使用...
Oracle STATSPACK是一种强大的性能分析工具,主要用于诊断和优化Oracle数据库的运行效率。它由Oracle在9i版本中引入,后来在10g及更高版本中被Automatic Workload Repository (AWR)所取代,但即便如此,STATSPACK...
在Oracle数据库系统中,"Latch Contention"是一个关键性能问题,它涉及到多个进程或线程在尝试获取同一资源锁(Latch)时的竞争。这通常会导致系统性能下降,因为当一个进程等待另一个进程释放Latch时,数据库操作...
此外,Latch会占用更多的逻辑资源,并可能导致额外的延迟,影响系统性能。 【产生Latch的常见情况】 1. **if-else条件分支语句**:如果在Verilog代码中,if语句后面没有对应的else语句,编译器可能隐式创建一个...
### Oracle 常见等待事件及其对性能的影响与优化 #### 一、Oracle等待事件概述 在Oracle数据库中,等待事件是指数据库实例在执行某个操作过程中由于资源竞争或限制而处于等待状态的情况。这些等待事件可能导致...
- **V$视图**:Oracle 提供了大量的动态性能视图(V$ Views),这些视图包含了关于数据库实例运行状态的各种信息,如V$SESSION、V$WAITSTAT、V$LATCH等,对于深入分析性能问题非常有用。 #### 四、优化SQL语句 SQL...