`
chandler
  • 浏览: 81491 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

Oracle学习笔记(六)

阅读更多

52 锁:

    其实锁是每个数据库用于处理并发问题的一种手段。也就是在这里,使得数据库与数据库之间。产生了很大的不同。至少对于一个开发者来说。这里的不同相对于其他方面,会是最巨大,最实用的一个方面。书中,作者引用了一个自己的例子,可以看看。

        大体上来说。就是在除Oracle之外的数据库中,如果你要使用锁。消耗将会是巨大的。而在Oracle中,锁的机制使得锁的使用,并非那么消耗资源。对一行加锁和对10000行加锁的消耗,完全相同。

 

53丢失更新

       丢失更新是一个很神出鬼没的问题。因为在实际过程中,如果出现这种问题,真的很难排查。这并不是危言耸听。因为首先,出现这种问题对于大多数应用来说,可能性比较低。毕竟在同一时间段更新同一字段。也就是说,发生的时候,你可能想不到这一点。其次,如果发生,并且你不能重复的话,找寻的过程,几乎等同于大海捞针。而且估计并非每个应用都需要,比方说我现在在维护的系统,没有做任何防护,但是几乎没有相关的问题。

     但是,这确实必要考虑的问题。

 

54悲观锁。

       所谓悲观,和乐观。其区别在于对于并发问题的态度。悲观锁认为,如果你更新一个字段。那么势必一定会有并发性问题。这是挺悲观的。其实是否用悲观锁,除了悲观之外,关键在于这个业务是否需要用户参与处理更新的过程。

       而悲观锁的使用,Select之后加入一句For update nowait

如果出现问题,会出现以下3种情况。

第一,如果底层没有更新,那么会锁定这一行

第二,如果另一个用户在更新这一行。将会得到一个ORA-00054:resource busy的错误。必须等待

 第三,在获取和更新之间。如果有人已经修改了这一行。我们就会无法更新。如果需求如此。那么就需要重新查询

 

关于这里。我有以下几点收获。

其一,了解了判断更新的作用。以前我觉得这个很无聊

其次。悲观锁定,尽用于有状态或者有连接的环境。关于这点,其实我有疑惑的。即专属连接。我是这样理解的。只有在连接的时候。一个事物才能完成。因为悲观锁,其实是利用数据库的功能来进行

 

55.乐观锁

曾经听过,乐观锁其实不能算是一种锁。这不得不说有着几分道理。因为乐观锁的实现,本质上来说是借用程序的逻辑而不是数据库本身就有的功能。在Oracle上来说,其实现用3中方法

1,加入时间戳的字段。其实这里可以应用于任何数据库。优势在于方便。缺点么,耦合了。

2.  计算散列值。通过散列值来确定数据库是否更新。具体是使用数据库的几个函数。不过具体操作时,估计可以用程序来计算。但是缺点在于这种计算很消耗CPU资源

3.使用ORA_ROWSCN,这是10g才提出的功能。很方便。每当你自动递进

不过有点麻烦的地方。即RowScn是是块共享的。书中的例子,4条记录在2个块上。分别为12在块134在块2.如果你修改了记录2.那么记录1scn也会递进。其实也就明白了这其实还是很怪异的。毕竟,如果两句SQL更新了数据库上同一块上两条不同的记录。那么有一条肯定会失败。

如果你一点每条块独享。那么可以使用ROWDEPENDENCIES这个参数,在建立表的时候

如果需要把Rowscan转换成时间。可以害死scn_to_timestamp(ora_rowscn)。说句实话。我觉得很怪。为什么不弄一个字段,而是函数

0
0
分享到:
评论

相关推荐

    Oracle学习笔记 PDF

    ### Oracle学习笔记知识点详解 #### 一、Oracle简介 Oracle是一家知名的软件公司,以其数据库管理系统闻名全球。该公司成立于1977年,总部位于美国加利福尼亚州。Oracle不仅提供数据库解决方案,还涉及中间件、...

    Oracle学习笔记

    Oracle学习笔记 Oracle学习笔记是李兴华老师编写的Oracle从入门到精通的学习笔记,涵盖了 Oracle 的多表查询、连接、组函数和分组统计等知识点。在本篇笔记中,李兴华老师详细介绍了多表查询的基本语法、左右连接...

    Oracle学习笔记精华版

    Oracle学习笔记精华版是针对数据库管理系统Oracle的一份重要学习资源,涵盖了从基础概念到高级特性的全面知识。Oracle,作为全球广泛使用的大型企业级数据库系统,对于IT专业人员尤其是数据库管理员(DBA)来说,是...

    Oracle学习笔记.doc

    Oracle学习笔记 以下是我这一周学习oracle整理的笔记,包括课堂的内容和自己看额外看的视频补充的一些内容,基本上囊括了所有oracle的基本知识。主要的形式是例子代码加代码解释加运行结果,我个人认为对于没有学习...

    Oracle学习笔记.pdf

    在Oracle学习笔记中,对安装卸载和配置的详尽讲解,不仅为学习者提供了操作指导,而且还涉及到了数据库管理的一些基础知识点。这些内容对于数据库管理员和开发人员来说都是十分重要的,因为它们是操作Oracle数据库的...

    Oracle学习笔记-日常应用、深入管理、性能优化

    资源名称:Oracle学习笔记-日常应用、深入管理、性能优化内容简介:Oracle学习笔记-日常应用、深入管理、性能优化Oracle 11g是最具代表性的高端关系型数据库管理系统,它在世界各地的大型商务数据库应用系统中被广泛...

    oracle学习笔记整理

    以下是对Oracle学习笔记整理的主要知识点的详细说明: 1. **数据库选择**: 在决定使用哪种数据库时,通常需要考虑项目的规模、性能需求、安全性要求以及可用资源。Oracle数据库因其稳定性、可扩展性和高性能而被...

    Oracle学习笔记 Oracle学习笔记

    根据提供的信息,我们可以总结出以下Oracle数据库学习的关键知识点: ...以上是基于提供的内容整理出的Oracle学习笔记中的关键知识点。通过理解这些基础知识,可以更好地管理和操作Oracle数据库。

    oracle dba学习笔记

    Oracle DBA 学习笔记 标题:Oracle DBA 学习笔记 描述:学习使用维护 Oracle 数据库数年,对认为值得记录的 Oracle 维护脚本进行记录总结,存起来,虽然今后开源是方向,但不可否认 Oracle 仍然非常有水平的,在...

    oracle学习笔记.txt

    超详细Oracle学习笔记,详细记录了oracle的学习过程中遇到的各种问题及基础知识,适合初中级oracle使用人员学习参考。

    Oracle学习笔记——日常应用、深入管理、性能优化 示例代码

    Oracle 11g是最具代表性的高端关系型数据库管理系统,它在世界各地的大型商务数据库应用系统中被广泛应用。本书设计了大量的应用情景,介绍了数据库管理员和开发人员常用的管理、维护和优化Oracle 11g数据库的技术和...

    oracle学习笔记-入门基础

    Oracle数据库是世界上最流行的数据库管理系统之一,它提供了丰富的特性和功能来优化数据管理和查询性能。本文主要探讨Oracle数据库的入门基础知识,特别是与索引相关的概念。 首先,我们要理解ROWID的概念。ROWID是...

    oracle学习笔记下载

    ### Oracle 学习笔记知识点概览 #### 一、Oracle 数据库系统参数查询与管理 在 Oracle 数据库的学习过程中,了解如何查看和管理数据库的系统参数是非常重要的。这些参数直接影响着数据库的性能和稳定性。 ##### ...

    ORACLE经典学习笔记

    ### ORACLE经典学习笔记知识点概览 #### 第一章 ORACLE 命令 本章节主要介绍了Oracle数据库中常用的命令及其使用方法。 1. **查看参数文件**: `Desc v$parameter` - 这个命令用于查看Oracle的参数文件信息,通过...

    oracle 学习笔记

    oracle 学习笔记oracle 学习笔记oracle 学习笔记oracle 学习笔记oracle 学习笔记oracle 学习笔记oracle 学习笔记oracle 学习笔记oracle 学习笔记oracle 学习笔记oracle 学习笔记oracle 学习笔记

    全网最全的oracle学习笔记

    全网最全的oracle学习笔记,oracle学习笔记,oracle,### 4、oracle的七个服务 ```sql 1、Oracle ORCL VSS Writer Service Oracle卷映射拷贝写入服务,VSS(Volume Shadow Copy Service)能够让存储基础设备(比如...

Global site tag (gtag.js) - Google Analytics