热门标签 | HotTags
当前位置:  开发笔记 > 数据库 > 正文

说说你是如何理解Oracle数据库中latch和enqueuelock的?

答:这个问题每个人可能有每个人不同的想法,每个人的出发点可能也都不同,我的出发点先从来源找,是什么原因产生了locklatch。然后再从不同的角度去解释locklat

答:这个问题每个人可能有每个人不同的想法,每个人的出发点可能也都不同,我的出发点先从来源找,是什么原因产生了locklatch。然后再从不同的角度去解释locklat

答:这个问题每个人可能有每个人不同的想法,每个人的出发点可能也都不同,我的出发点先从来源找,是什么原因产生了lock&latch。然后再从不同的角度去解释lock&latch的本质。

Lock:

1.来源于业务也消失于业务,基本上是由于业务流程安排的不合理产生的,是一种保护业务的锁。

2.还来源于并发,俗话说没有并发就没有lock,当大量会话都要去争强一个修改权时,我们需要的是一种有序的,排队的方式来获得访问权限。这就好比大家在坐公车的时候,香港服务器租用,排队上车排队下车,谁也不能够拥挤。

3.独占资源,为什么这么说,家里的锁、银行保险箱都是为了保护贵重物品而存在,oracle的锁也一样,当我在修改一条记录的时候就相当于我自己独占了,别人要等我修改完毕后才能获取,这就是锁的特性。

4.保证读一致性,什么是读一致性,简单的通俗的说,同一时间大家看到的数据都是一样的,这么说大家好理解一些,实际要比这个复杂哦。这样的好处大家能够感受到对数据变化是统一的,避免了数据不对称造成的误解。举个例子 当你看超女演唱会的时候需要先购票,你要和她一起看这时候就需要买2张票,当你在买票的过程中,售票员需要先把2张票锁定(不管真买假买)否则在你拿钞票的过程中别人给抢购了,虚拟主机,此时女朋友就会把今天变成你的世界末日这样不太好吧!保证看到的和实际的要一致,这就是一致性的来源。

5.维护事务完整性,香港空间,这又从事务的角度来探讨lock了,大家都知道关系型数据库就是为事务而生的,只有在关系型数据库中才有事务这个概念。什么是事务的完整,就是没有提交的事务对他人是不可见的,例如 我修改一条记录,这条记录是在数据块中真真切切的修改了,但没有提交,此时别人是不可见的,别人要想查询只能从undo段中找记录前快照来查询。事物完整性是数据安全的守护神。

6.锁的信息是数据块上的一个属性是物理的,并不是逻辑上属于某个表或某几行的。


Latch:

1.来源于系统资源的紧张不够用所致。例如 SGA CPU sql解析 ,它是一种保护资源的锁。

2.来源于数据库设计,我指的是内部原理机制,是一种独占资源的机制,我一旦抢到资源后马上从里面闩住,用完之后再出来。这种系统资源是一直存在的,不管我们用不用它都是存在着的,有了latch机制我们可以更有效的管理和使用这些系统资源。

3.Latch是一种轻量级的锁,为什么说它也是锁呢,因为它也有锁的一些特性。例如独占资源 一致性等。Latch不会造成锁一样的阻塞,只会导致等待,这是2个完全不同的概念,阻塞是系统设计上的问题,等待是系统资源争用的问题,这对我们判断系统性能有很大的帮助。

4.latch也可以说是一种内存技术,用于保护数据库内存结构,是系统层面的事情,跟业务无关,例如

share_pool 里面latch争用,大多数是由没有绑定变量,低效sql,不规范sql引起的。解决方法:减少sql硬解析,优化sql语句,规范编码规则。

data_buffer_cache 里面latch争用,是由大量会话同一时间访问同一个数据块引起的。我们也称作热块现象。解决方法:把记录打散到多个数据块中,减少多个会话同一时间频繁访问一个数据块概率,防止由于记录都集中在一个数据块里产生热块现象。

5.OLTP系统中由于有大并发的产生,latch争用现象非常多。

OLAP系统中由于很少有表频繁修改,执行的sql语句又不多,因此latch也不多。


Leonarding
2012.12.06
天津&winter
分享技术~成就梦想
Blog:

本文出自 “leonarding Blog” 博客,请务必保留此出处

推荐阅读
  • Ubuntu 环境下配置 LAMP 服务器
    本文详细介绍了如何在 Ubuntu 系统上安装和配置 LAMP(Linux、Apache、MySQL 和 PHP)服务器。包括 Apache 的安装、PHP 的配置以及 MySQL 数据库的设置,确保读者能够顺利搭建完整的 Web 开发环境。 ... [详细]
  • web页面报表js下载,web报表软件 ... [详细]
  • 8个IDC大数据基础定义解析丨IDC
    本文针对IDC数据行业相关名词术语进行解析,分为4组相关概念,希望大家读完 ... [详细]
  • 主机托管是指企业将服务器托管在专业数据中心,以替代自建数据中心的方式。这种方式不仅节省了成本,还提供了多种技术和管理上的优势。然而,主机托管也存在一些潜在的挑战,特别是在部署多个应用时。本文将详细探讨主机托管的主要利弊,帮助企业做出更明智的决策。 ... [详细]
  • 图数据库与传统数仓实现联邦查询使用CYPHER实现从关系数据库过滤时间序列指标一、MySQL得到研报实体在Oracle中的唯一ID二、Oracle中过滤时间序列数据三、CYPHER ... [详细]
  • 大数据领域的职业路径与角色解析
    本文将深入探讨大数据领域的各种职业和工作角色,帮助读者全面了解大数据行业的需求、市场趋势,以及从入门到高级专业人士的职业发展路径。文章还将详细介绍不同公司对大数据人才的需求,并解析各岗位的具体职责、所需技能和经验。 ... [详细]
  • Java EE 平台集成了多种服务、API 和协议,旨在支持基于 Web 的多层应用程序开发。本文将详细介绍 Java EE 中的 13 种关键技术规范,帮助开发者更好地理解和应用这些技术。 ... [详细]
  • 本文为初学者提供了一条清晰的学习路线,帮助他们逐步成长为优秀的Web开发人员。通过十个关键步骤,涵盖从基础到高级的各个方面,确保每位学习者都能找到适合自己的学习方向。 ... [详细]
  • vsftpd配置(虚拟用户、匿名用户登录)
    一、ftp服务搭建(一)概述1.ftp连接及传输模式(1)控制连接TCP21,用于发送FTP命令信息 ... [详细]
  • ABP框架是ASP.NET Boilerplate的简称,它不仅是一个开源且文档丰富的应用程序框架,还提供了一套基于领域驱动设计(DDD)的最佳实践架构模型。本文将详细介绍ABP框架的特点、项目结构及其在Web API优先架构中的应用。 ... [详细]
  • 本文介绍了 Oracle SQL 中的集合运算、子查询、数据处理、表的创建与管理等内容。包括查询部门号为10和20的员工信息、使用集合运算、子查询的注意事项、数据插入与删除、表的创建与修改等。 ... [详细]
  • 本文讲述了一位80后的普通男性程序员,尽管没有高学历,但通过不断的努力和学习,在IT行业中逐渐找到了自己的位置。从最初的仓库管理员到现在的多技能开发者,他的职业生涯充满了挑战与机遇。 ... [详细]
  • 古代城墙的高度究竟有多少?
    古代城墙是保护城市和国家的重要设施,常出现在影视剧中的壮观景象令人印象深刻。然而,这些城墙的实际高度是否如影视剧中所展现的那样高呢?本文将探讨古代城墙的真实高度及其建造背景。 ... [详细]
  • 本文探讨了 TypeScript 中泛型的重要性和应用场景,通过多个实例详细解析了泛型如何提升代码的复用性和类型安全性。 ... [详细]
  • 面试题总结_2019年全网最热门的123个Java并发面试题总结
    面试题总结_2019年全网最热门的123个Java并发面试题总结 ... [详细]
author-avatar
落渊绝夜
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有