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

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

 

数说Social Research 数说Social Research

社媒领域的AI Agent,全能营销智能助手

数说Social Research 164 查看详情 数说Social Research

 

答:这个问题每个人可能有每个人不同的想法,每个人的出发点可能也都不同,我的出发点先从来源找,是什么原因产生了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” 博客,请务必保留此出处

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/525579.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2025年11月9日 07:51:08
下一篇 2025年11月9日 07:52:53

相关推荐

  • java怎么编译运行.html_java编译运行.html方法【教程】

    Java程序的编译运行与HTML无关,需使用JDK。1. 编写HelloWorld.java文件;2. 命令行执行javac HelloWorld.java生成.class文件;3. 执行java HelloWorld运行程序。注意:HTML是网页标记语言,不能直接运行Java代码,勿将二者混淆。确…

    2025年12月23日
    000
  • html文档中含有java怎么运行_html含java运行方法【教程】

    现代浏览器不支持Java Applet,推荐通过JavaScript调用Java后端服务或使用WebAssembly运行Java代码。 如果您在HTML文档中嵌入了Java代码,但发现无法正常运行,这通常是因为现代浏览器不再支持Java小程序(Applet)或相关插件。以下是几种实现HTML中Jav…

    2025年12月23日
    000
  • 怎么运行html的applet小程序_运行html applet小程序步骤【指南】

    现代浏览器已不再默认支持Java Applet,需通过安装JRE、启用插件、使用支持NPAPI的旧版浏览器(如Firefox 52.9 ESR)、调整Java安全级别至中,并将网站添加到例外站点列表方可运行。 如果您在尝试运行HTML中的Applet小程序时遇到问题,可能是因为现代浏览器已不再默认支…

    2025年12月23日
    000
  • 使用BeautifulSoup和JSON有效抓取动态加载的网页表格数据

    本教程旨在解决使用BeautifulSoup抓取网页表格时,因数据动态加载导致部分内容缺失的问题。通过分析网页背后的API请求,直接获取并解析JSON数据源,再结合BeautifulSoup提取的HTML结构信息,最终实现完整且准确的数据抓取。文章将提供详细的代码示例和实现步骤。 理解网页动态内容与…

    2025年12月23日
    400
  • 解决BeautifulSoup爬取网页表格中动态内容缺失问题

    本文旨在解决使用BeautifulSoup爬取网页表格时,因部分数据通过JavaScript动态加载导致内容缺失的问题。通过详细分析Oracle云定价页面的案例,教程将指导读者如何识别并获取隐藏在JSON API中的动态数据,并将其与BeautifulSoup解析的静态HTML内容有效整合,最终构建…

    2025年12月23日
    000
  • HTML数据如何存储到数据库 HTML数据存储的技术方案比较

    直接存储原始HTML字符串最常见,适用于富文本编辑器输出等内容,实现简单、读取快,但需防范XSS和SQL注入;结构化JSON存储适合需程序化处理的场景,支持条件查询但渲染开销大;专用格式如Delta适用于协同编辑;分离存储则提升大型系统的查询性能与管理灵活性。 将HTML数据存储到数据库时,核心目标…

    2025年12月23日
    000
  • Java GUI在Web部署中的挑战与现代解决方案

    本文旨在澄清Java Web Start(JWS)在Web页面内运行GUI的常见误解,指出JWS用于本地应用启动而非嵌入式Web GUI。文章将探讨JWS的局限性及其被Oracle弃用的原因,介绍OpenWebStart作为其开源替代方案,并重点推荐Vaadin Flow作为使用纯Java构建真正W…

    2025年12月22日
    000
  • Java GUI Web部署策略与现代替代方案

    本文旨在澄清Java GUI应用在Web页面中直接运行的常见误区,特别是关于Java Web Start (JWS) 的作用与局限性。我们将探讨JWS的实际工作机制、其被Oracle废弃的原因,并介绍OpenWebStart作为现有JWS应用的替代方案。此外,文章将重点推荐Vaadin Flow等现…

    2025年12月22日
    300
  • HTML表单如何实现白名单功能?怎样只允许授权用户?

    要实现%ignore_a_1%的白名单功能并确保只有授权用户操作,核心答案是必须依赖后端服务器进行严格的身份认证、会话管理、授权检查和数据验证,前端仅能提供用户体验层面的初步提示而不能保障安全;具体而言,首先通过用户身份认证(如用户名/密码或oauth)确认用户身份,服务器创建会话并返回标识符,后续…

    2025年12月22日
    000
  • 表单中的ERP怎么连接?如何对接企业资源计划系统?

    将表单数据连接到erp系统的核心是打通数据流,确保信息能从前端无缝流入企业核心系统,主要通过api接口集成、中间件/ipaas、文件导入导出和rpa四种方式实现;其中api集成因其实时性高、安全性好、可扩展性强,成为现代系统的首选方案,尤其适用于支持开放api的erp系统;当业务涉及多系统复杂集成时…

    2025年12月22日
    100
  • HTML如何实现文本加密?怎么隐藏敏感内容?

    纯前端技术无法真正加密或安全隐藏敏感内容,因为html、css和javascript均在客户端运行,源代码和数据可被用户通过开发者工具轻易查看;2. 所谓“隐藏”如display: none、hidden属性或javascript移除dom,仅是视觉上的屏蔽,数据仍存在于页面中;3. 真正的安全必须…

    2025年12月22日
    000
  • 表单中的智能合约怎么集成?如何自动执行表单条款?

    要实现表单数据与智能合约的精准匹配及条款的自动执行,核心在于通过后端服务进行数据类型转换、多层校验并严格遵循abi规范调用合约;智能合约通过内置条件逻辑或借助chainlink keepers等自动化服务实现触发执行;需应对gas成本、安全风险、异步体验和预言机依赖等挑战,采用layer 2、元交易…

    2025年12月22日
    000
  • 想提升IT技能?哪些含金量高的认证值得考?

    it职业发展:高含金量认证助您成功 想在IT领域提升竞争力?选择合适的认证至关重要。本文推荐几项国内外认可度高的IT认证,助您在职业道路上更进一步。 热门认证推荐: 1. 高级软件设计师(软考高级): 国内IT领域含金量最高的认证之一。涵盖软件工程、项目管理及计算机基础知识。证明您在软件设计和开发方…

    2025年12月22日
    000
  • 数据库查询与HTML整合

    通过以下步骤,您可以将数据库查询结果整合到 html 页面中:建立数据库连接。执行查询并存储结果。遍历查询结果并将其显示在 html 元素中。 使用 PHP 将数据库查询与 HTML 整合 整合数据库查询结果和 HTML 页面可使您创建动态和交互式 Web 应用程序。本文将引导您完成使用 PHP 执…

    2025年12月22日
    000
  • 深入解析HTML如何读取数据库

    html 无法直接读取数据库,但可以通过 javascript 和 ajax 实现。其步骤包括建立数据库连接、发送查询、处理响应和更新页面。本文提供了利用 javascript、ajax 和 php 来从 mysql 数据库读取数据的实战示例,展示了如何在 html 页面中动态显示查询结果。该示例使…

    2025年12月22日
    000
  • html怎么读取数据库

    HTML 本身不具备直接读取数据库的能力,而是需要结合后端编程语言和数据库查询语言来实现。后端代码负责与数据库交互,从数据库中读取数据,并将数据嵌入到 HTML 页面中。这个过程通常涉及设置数据库、编写后端代码、将后端代码嵌入 HTML、配置服务器和访问网页。此外,前端 JavaScript 也可以…

    2025年12月22日
    000
  • 前端与后端的职责与技能要求

    前端与后端是软件开发中不可或缺的两个部分,它们分别承担着不同的职责和技能要求。本文将从职责和技能方面探讨前端与后端开发工程师的工作内容和要求。 一、前端工程师的职责及技能要求前端工程师负责实现用户界面和交互功能,直接面向用户,需要具备以下职责和技能要求: 实现网站或应用程序的用户界面设计,确保页面视…

    2025年12月22日
    000
  • 前端后端开发的发展历程与趋势展望

    随着互联网的迅猛发展和信息技术的日新月异,前端和后端开发作为两个重要的IT领域在过去几十年中也取得了巨大的进步。本文将探讨前端后端开发的发展历程,分析当前的发展趋势,并展望未来的发展方向。 一、前端后端开发的发展历程 早期阶段在互联网刚刚兴起的时期,网站开发主要关注内容的呈现,前端开发工作主要集中在…

    2025年12月22日
    000
  • 剖析前端和后端的技术差异

    前端和后端是软件开发中常见的两个领域,前端指的是用户界面和用户交互逻辑的开发,而后端则负责处理数据存储、逻辑处理和业务规则的实现。两者在技术上有着明显的差异,本文将从不同的角度来剖析前端和后端的技术差异。 首先,在技术栈方面,前端和后端使用的技术有很大的不同。前端常用的技术包括HTML、CSS和Ja…

    2025年12月22日
    000
  • 了解localstorage:它的数据库特点是什么?

    探究localstorage:它是一种什么样的数据库? 概述:在现代的Web开发中,数据的存储和管理是非常重要的一部分。随着技术的不断进步,新的数据库技术也不断涌现。其中之一就是localstorage。本文将介绍localstorage的概念、用途以及一些常用的代码示例,帮助读者更好地了解并使用l…

    好文分享 2025年12月21日
    000

发表回复

登录后才能评论
关注微信