`

latch的理解

阅读更多

1.shared pool latch和library cache latch:

共享池基本上由库缓存和字典缓存构成
SQL语句的操作过程中服务器进程需要访问共享池和高速缓存,如:发出 一个SQL语句时,服务器进程首先要向共享池的库缓存中查看是否缓存有已编译过的版本,如果没有,就要重新分析,重新申请一个共享的SQL区放置这个语句 的执行计划等等,这些操作都需要申请shared pool latch和library cache latch.  如果本来可以共享的SQL语句因为没有使用绑定变量,而频繁被重新分析,这样势必导致这些申请过多。还有一方面原因,如果library cache 太小,就会引起语句游标被挤出内存的现象。因此需要调整共享池,更有效解决方法是查看SQL,避免低效率的SQL。
如果使用共享服务器连接方式, 这种连接方式在SGA方面要设置的内存高一些,用户个人UGA可以小一些。设置大池,可以使共享池更加专用于缓存sql 和pl/sql, 这样有大内存调用要求时,如RMAN备份时,启用多个I/Oslaves,并行处理时,不会影响共享中缓存的经常被访问的而没有被cache进内存的块。 如果连接数太多时,应改变连接方式,使用专有服务器连接。


2.cache buffer lru chain latch


到SQL语句 执行阶段,比如一个更新语句,更新某个数据块,服务器进程这时以要向高速缓存发出请求查询其中是否已经缓存有它要找的数据,如果没有,要从硬盘上把相应的 数据块拷贝一份放进高速缓存,这样还要搜索LRU列表,找到一个自由buffer放置服务器进程从磁盘上读来的拷贝。这就需要申请cache buffers lru latch。当脏块需要被DBWn进程写入磁盘时,DBWn进程需要访问LRU列表以便写脏块,具体的不必赘述。 全表扫描过的表会被放在LRU列表的 lru端很快地被剔除出内存,会导致经常访问的数据块在高速缓存中停留的时间很短,因此建议经常访问的小型表要cache在内存里。不适当的索引导致优化 器不会去选择索引扫描而是选择全表扫描。 同样高速缓存设置得太大,导致DBWn进程经常疲于搜索LRU列表去写脏块。因此,这方面的锁冲突要看具体情 况,如果因为全表扫描太多,那么就需要创建合适的索引,如果高速缓存太大,就调整调整缓存,如果高速缓存不能减少的话,而且你有多个CPU的话,可以增加 DBWn进程。如果只有一个CPU,那么使用dbwr I/O slaves进程效果要差些,因为slaves进程只能帮助I/O写脏块,不能帮助DBWR进程搜索LRU列表。

分享到:
评论

相关推荐

    latch相关内容讲解

    为了更好地理解和管理Latch,可以编写SQL脚本来获取相关的统计信息。以下是一些示例SQL查询: ```sql -- 获取Latch的基本信息 SELECT * FROM V$LATCH; -- 获取Latch子类的信息 SELECT * FROM V$LATCH_CHILDREN; -...

    oracle Latch free等待事件

    在深入探讨这个主题之前,我们先要理解什么是Latch和Lock,以及它们之间的区别。 Latch(锁片或轻量级锁)是一种低级别的同步机制,主要用于保护共享资源,防止多个线程同时访问导致的数据不一致。与Lock(锁)相比...

    Oracle性能诊断之——Latch free

    ### Oracle性能诊断之——Latch Free:深入理解与分析 在探讨Oracle数据库的性能优化与故障诊断时,"Latch Free"事件往往成为关注的焦点。这一主题不仅涉及Oracle内存管理的核心机制,还触及到多线程环境下的并发...

    学习动态性能表(11)--v$latch$v$latch_children

    总结来说,理解和监控V$LATCH及其相关视图对于理解Oracle数据库的内部工作原理、优化性能和解决并发问题至关重要。通过定期收集和分析这些数据,数据库管理员能够更好地诊断和解决数据库系统的性能瓶颈。

    Oracle中的Latch和Lock.pdf

    Oracle数据库是一种广泛使用的大型关系型数据库管理系统,它在...在实际操作中,可以利用Oracle提供的相关视图(如V$LOCK、V$LATCH等)和SQL语句来监控和分析Latch和Lock的状态,以更好地理解和优化数据库的并发行为。

    一本关于CMOS Latchup的书,内容详细

    通过详细的理论分析和技术指导,本书不仅为读者提供了理解Latchup的基础知识,还涵盖了如何预防和解决这一问题的具体方法。对于从事集成电路设计、制造以及相关领域的研究人员来说,这本书是一份宝贵的资源。随着...

    fpga中latch简介

    为了更直观地理解Latch的产生,可以通过编写代码并在综合之后查看RTL图来观察是否有Latch的出现。例如,通过比较在Case语句中加入或不加入`default`分支的情况,可以看到明显的区别。 #### 七、Latch的实用性 1. *...

    Latch和Lock的区别

    在Oracle数据库系统中,了解和区分...理解这两种机制如何协同工作对于优化Oracle数据库性能和避免并发问题至关重要。在数据库设计和调优过程中,合理地使用和配置Latch与Lock是提高系统并发性能和稳定性的重要手段。

    芯片latchup原理总结

    《芯片LATCHUP原理详解...总的来说,理解并有效预防LATCHUP对于保障芯片的正常运行至关重要。通过深入理解其工作原理,结合上述的预防措施,我们可以大大降低LATCHUP对集成电路的影响,从而提高芯片的稳定性和可靠性。

    Laravel开发-laravel-latch

    在Laravel框架中,"Laravel Latch"是...通过理解和充分利用Laravel Latch,开发者可以构建更安全、更健壮的Web应用程序。在实际开发中,结合laravel-latch-master源代码的学习,将有助于深入理解其工作原理和最佳实践。

    oracle_latch

    Oracle Latch 是数据库管理系统Oracle中的一个重要概念,它是一种同步机制,用于控制对共享资源的并发访问。...理解并掌握如何有效地使用和调整Shared Pool Latch,对于提升Oracle数据库的性能和稳定性至关重要。

    4-bit_LATCH.rar_PIC_latch

    首先,让我们理解什么是4位LATCH。一个4位LATCH可以同时存储4个二进制位的数据,相当于一个小型的存储单元。这种LATCH由四个基本的单比特LATCH组成,每个都能独立地存储一位数据。LATCH的工作原理基于两个状态:设置...

    Resolving_Oracle_Latch_Contention.rar_latch contention_oracle

    通过阅读这份文档,读者可以更深入地理解Oracle Latch Contention的实际情况,并掌握实际操作中的解决步骤。 总之,Oracle Latch Contention是数据库管理员面临的一个重要挑战。理解其原理、诊断方法和解决方案,...

    所有参数,latch,等待时间

    在Oracle数据库管理中,"所有参数,latch,等待时间"是三个关键概念,它们对于理解和优化数据库性能至关重要。下面将分别对这三个方面进行详细解释。 首先,"所有参数"通常指的是Oracle数据库的初始化参数...

    electrostatic discharge and latchup

    静电放电(Electrostatic Discharge,简称ESD)与闩锁效应(Latch-Up)是集成电路设计与制造中两个至关重要的问题,...通过深入理解这些现象的机理,并采取有效措施进行预防,可以显著提高IC产品的质量和市场竞争力。

    verilog中latch问题

    在Verilog编程中,正确使用控制流语句如`if`和`case`至关重要,因为不完整的语句可能会导致意外的锁存器(latch)产生,这不仅可能导致设计错误,还可能浪费硬件资源。 **一、什么是锁存器?** 锁存器和触发器都是...

    CMOS Latchup and ESD and Attena Effest.7z

    压缩包内的文件提供了更深入的理论分析和实例,如《对CMOS闭锁效应的透彻理解》探讨了Latch-up的机制和解决方案,《CMOS集成电路闩锁效应的形成机理和对抗措施研究》详细讨论了抗Latch-up的技术,《latch-up和ESD》...

    latch-up闩锁效应.pdf

    **Latch-up 闩锁效应** ...综上所述,理解和预防Latch-up及ESD现象对于IC设计至关重要,它们是保证芯片可靠性和寿命的关键因素。通过深入理解其原理并采用有效的设计策略,可以有效地减少这些问题的发生。

    latch Contention

    理解锁的工作原理以及如何有效管理和调优锁竞争对于提高Oracle数据库的整体性能具有重要意义。通过合理地调整相关参数和优化应用程序,可以显著减少锁竞争带来的负面影响,从而提高数据库系统的稳定性和效率。 ####...

Global site tag (gtag.js) - Google Analytics