oracle编程艺术 笔记new

oracle编程艺术 笔记new

ID:11755410

大小:40.50 KB

页数:8页

时间:2018-07-13

oracle编程艺术 笔记new_第1页
oracle编程艺术 笔记new_第2页
oracle编程艺术 笔记new_第3页
oracle编程艺术 笔记new_第4页
oracle编程艺术 笔记new_第5页
资源描述:

《oracle编程艺术 笔记new》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库

1、数据库体系结构,数据库如何工作,有什么表现并发控制是什么,并发控制意味这什么必须恰当的设计性能、可扩缩性和安全性这些开发时应该考虑的问题特定的数据库有什么样的特性,如何来使用它好的SQL语句疑惑数据库能实现的为什么不让数据库做,这样我的应用就可以部署在任何地方,我想没有哪个服务器不支持Oracle吧,哪为什么还要自己再实现一次呢?存在效率低下的SQL;有大量过程性代码,但这些工作原本用一条SQL语句就足够了;为了保持数据库独立性,没有用到新特性如何对SQL调优而不修改SQL。这看起来很神奇,不过在Oracle10g中确实可以办得到,从很大程度上讲堪称首创。如何测量性能。如何查看

2、哪里出现了瓶颈。如何建立索引,对什么建立索引。如此等等。关键数据库通常是应用的基石。如果它不能很好地工作,那其他的都没有什么意义了SGV系统全局区(SystemGlobalArea)Oracle将解析、已编译好的SQL放在这里,尽量使用绑定变量,可以很好的利用SGV来平滑操作绑定变量:select*fromtablewhereid=:id软解析硬解析:占用更多的资源,锁的时间更长oracle锁:只在修改的时候才加锁。正常情况下不会升级到块级锁和表级锁,但是有一个另外:就是两段提交的一段很短的时间内;如果仅仅是读数据,Oracle绝不会对数据加锁,不会因为简单的读操作在数据行上锁

3、定;区别于别的数据的一点:写入器不会阻塞读取器书中原文:以下是对Oracle锁定策略的总结:Oracle只在修改时才对数据加行级锁。正常情况下不会升级到块级锁或表级锁(不过两段提交期间的一段很短的时间内除外,这是一个不常见的操作)。如果只是读数据,Oracle绝不会对数据锁定。不会因为简单的读操作在数据行上锁定。写入器(writer)不会阻塞读取器(reader)。换种说法:读(read)不会被写(write)阻塞。这一点几乎与其他所有数据库都不一样。在其他数据库中,读往往会被写阻塞。尽管听上去这个特性似乎很不错(一般情况下确实如此),但是,如果你没有充分理解这个思想,而且想通

4、过应用逻辑对应用施加完整性约束,就极有可能做得不对。第7章介绍并发控制时还会更详细地讨论这个内容。写入器想写某行数据,但另一个写入器已经锁定了这行数据,此时该写入器才会被阻塞。读取器绝对不会阻塞写入器。开发应用时必须考虑到这些因素,而且还要认识到这个策略是Oracle所独有的,每个数据库实现锁定的方法都存在细微的差别。即使你在应用中使用最通用的SQL,由于各数据库开发商采用的锁定和并发控制模型不同,你的应用也可能有不同的表现。倘若开发人员不了解自己的数据库如何处理并发性,肯定会遇到数据完整性问题。(开发人员从另外某种数据库转向Oracle,或者从Oracle转向其他数据库时,如

5、果没有考虑在应用中采用不同的并发机制,这种情况就尤为常见。)当然Oracle的无阻塞方法有一个副作用,如果确实想保证一次最多只有一个用户访问一行数据,开发人员就得自己做些工作;Oracle采用了一种多版本、读一致(read-consistent)的并发模型。Oracle利用这种机制提供了以下特性:1.读一致查询:对于一个时间点(pointintime),查询会产生一致的结果。2.非阻塞查询:查询不会被写入器阻塞,但在其他数据库中可能不是这样。oracle的多版本:现在假设,我们执行下面这个顺序操作:open:xforselect*fromtest;deletefromtest;

6、commit;在同一个会话中(或者也可以在另一个会话中;这同样能很好地工作),再从该表删除所有数据。甚至用COMMIT提交了删除所做的工作。记录行都没有了,但是真的没有了吗?实际上,还是可以通过游标获取到数据。OPEN命令返回的结果集在打开的那一刻(时间点)就已经确定。打开时,我们根本没有碰过表中的任何数据块,但答案已经是铁板钉钉的了。获取数据之前,我们无法知道答案会是什么;不过,从游标角度看,结果则是固定不变的。打开游标时,并非Oracle将所有数据复制到另外某个位置;实际上是DELETE命令为我们把数据保留下来,把它放在一个称为undo段(undosegment)的数据区,

7、这个数据区也称为回滚段(rollbacksegment)。读一致性(read-consistency)和多版本就是这么回事。如果你不了解Oracle的多版本机制是怎样工作的,不清楚这意味着什么,你就不可能充分利用Oracle,也不可能在Oracle上开发出正确的应用(也就是说,能确保数据完整性的应用)。多版本和闪回:ORA-08189:cannotflashbackthetablebecauserowmovementisnotenabledusingtheFLASHBACKcommand”(

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。