易截截图软件、单文件、免安装、纯绿色、仅160KB

学习《Oracle 9i10g编程艺术》的笔记 (二)

 一.锁
数据库使用锁(lock) 来保证任何给定时刻最多只有一个事务在修改给定的一段数据。实质上讲,
正是锁机制才使并发控制成为可能。例如,如果没有某种锁定模型来阻止对同一行的并发更新,数据库就
不可能提供多用户访问。不过,如果滥用或者使用不当,锁反倒会阻碍并发性。如果你或数据库本身不必
要地对数据锁定,能并发地完成操作的人数就会减少。因此,要理解什么是锁定,你的数据库中锁定是怎
样工作的,这对于开发可扩缩的、正确的应用至关重要。
还有一点很重要,你要知道每个数据库会以不同的方式实现锁定。有些数据库可能有页级锁,另外
一些则有行级锁;有些实现会把行级锁升级为页级锁,另外一些则不然;有些使用读锁,另外一些不使用;
有些通过锁定实现串行化事务,另外一些则通过数据的读一致视图来实现(没有锁)。如果你不清楚这些微
小的差别,它们就会逐步膨胀为严重的性能问题,甚至演变成致命的bug。
以下是对Oracle 锁定策略的总结:
Oracle 只在修改时才对数据加行级锁。正常情况下不会升级到块级锁或表级锁(不过两段提
交期间的一段很短的时间内除外,这是一个不常见的操作)。
如果只是读数据,Oracle 绝不会对数据锁定。不会因为简单的读操作在数据行上锁定。
60
/ 849
写入器(writer)不会阻塞读取器(reader)。换种说法:读(read)不会被写(write)阻
塞。这一点几乎与其他所有数据库都不一样。在其他数据库中,读往往会被写阻塞。尽管听上
去这个特性似乎很不错(一般情况下确实如此),但是,如果你没有充分理解这个思想,而且想
通过应用逻辑对应用施加完整性约束,就极有可能做得不对。第7 章介绍并发控制时还会更详
细地讨论这个内容。
写入器想写某行数据,但另一个写入器已经锁定了这行数据,此时该写入器才会被阻塞。读
取器绝对不会阻塞写入器。
开发应用时必须考虑到这些因素,而且还要认识到这个策略是Oracle 所独有的,每个数据库实现锁
定的方法都存在细微的差别。即使你在应用中使用最通用的SQL,由于各数据库开发商采用的锁定和并发
控制模型不同,你的应用也可能有不同的表现。倘若开发人员不了解自己的数据库如何处理并发性,肯定
会遇到数据完整性问题。(开发人员从另外某种数据库转向Oracle,或者从Oracle 转向其他数据库时,如
果没有考虑在应用中采用不同的并发机制,这种情况就尤为常见。)
2.防止丢失更新
Oracle 的无阻塞方法有一个副作用,如果确实


相关文档:

oracle数据类型number

Oracle使用标准、可变长度的内部格式来存储数字。这个内部格式精度可以高达38位。
    NUMBER数据类型可以有两个限定符,如:
    column NUMBER ( precision, scale)
    precision表示数字中的有效位。如果没有指定precision的话,Oracle将使用38作为精度。
&nb ......

向Oracle插入timestamp类型字段

 如果是中文字符集:
[TEST@ora10gr1#2009-11-25/08:39:38]
SQL>create table t1(t timestamp);
Table created.
[TEST@ora10gr1#2009-11-25/08:39:56]
SQL>insert into t1 values(to_timestamp('21NOV09 10:04:12.032','DDMONYY HH24:MI:SS.FF'));
* ERROR at li ......

利用oracle快照dblink解决数据库表同步问题


本实例已完全通过测试,单向,又向同步都可使用.
--名词说明:源——被同步的数据库
            目的——要同步到的数据库
前6步必须执行,第6以后是一些辅助信息.
--1、在目的数据库上,创建dblink
drop public database link dblink_or ......

ORACLE插入日期数据

 oracle数据库插入日期型数据
往Oracle数据库中插入日期型数据(to_date的用法)
今天碰到了需要往Oracle数据库中插入日期型数据,要使用TO_DATE函数,在网上发现一篇写的不错的文章,摘来一起分享。
INSERT  INTO  FLOOR  VALUES  ( to_date ( '2007-12-20 18:31:34' , 'YYYY-MM-DD HH24:M ......

学习《Oracle 9i10g编程艺术》的笔记 (一)

1.位图索引
最近我参与了一个项目。开发人员正饱受性能问题之苦,看上去他们的系统中许多事务在串行
进行。他们的做法不是大家并发地工作,而是每个人都要排一个长长的队,苦苦等着前面的人完成后才能
继续。应用架构师向我展示了系统的体系结构,这是经典的三层方法。他们想让Web 浏览器与一个运行JSP
(JavaServer Pa ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号