Mr.Bank

银行软件研发中心培训资料:OraclePLSQL开发培训资料

OraclePLSQL开发基础A2培训教材.doc
数据库培训_PLSQL-开发成功的PLSQL程序.ppt
数据库培训_PLSQL.ppt
死锁时数据库日志.zip
高效的PLSQL程序设计.doc

PLSQL编程讲座:
PLSQL编程讲座p1-第一章:PLSQL程序结构.ppt
PLSQL编程讲座p2-第二章:过程和函数.ppt
PLSQL编程讲座p3-第三章:包.ppt
PLSQL编程讲座p4-第四章:触发器.ppt

数据库培训_PLSQL-开发成功的PLSQL程序.ppt

完成本课程后,应该了解和掌握:
1、了解oracle如何实现数据一致性
2、掌握事务处理的基本规则
3、能够简单分析AWR报告
4、使用系统视图检查语句效率
5、了解oracle的job使用

效率问题是DBA和开发人员共同的责任
DBA:
安装和维护数据库
数据库实例级调优
分配空间和管理文件
开发人员:
知道如何在数据库中运行程序

理解ORACLE体系结构
理解锁定和并发控制特性
清楚ORACLE提供的功能
数据库端开发的重点是数据

一、数据库和实例
数据库(database):物理操作系统文件或磁盘(disk)的集合。
实例(instance):一组Oracle后台进程/线程以及一个共享内存区,这些内存由同一个计算机上运行的线程/进程所共享。
实例“一生”只能装载并打开一个数据库。
数据库可以由一个或多个实例(使用RAC)装载和打开
二、SGA和后台进程
系统全局区(SGA)
维护所有进程需要访问的多种内部数据结构;
保存已解析的SQL计划
缓存磁盘上的数据,另外重做数据写至磁盘之前先在这里缓存;
附加进程因操作系统而异
在Windows中,这些进程只是使用C调用(malloc())来分配内存
在UNIX环境中,这些进程会物理地附加到一个很大的共享内存段,这是操作系统中分配的一个内存块,可以由多个进程并发地访问

锁(lock)机制用于管理对共享资源的并发访问。
单用户数据库不需要锁
每种数据库实现锁定机制不同
共享资源包含:表数据、表、存储过程等
锁的问题
锁定丢失
悲观锁定和乐观锁定
阻塞
死锁(系统识别后会自动释放,随机杀一个进程)

DML锁-用于确保一次只有一个人能修改某一行
DDL锁-保护这些对象不会被其他会话所修改
闩(latch)-用于协调对共享数据结构、对象和文件的多用户访问(是轻量级的串行化设备)

TX锁(事务锁)
起点:事务发起第一个修改
终点:事务执行提交(COMMIT)或回滚(ROLLBACK)
锁定过程:
(1)找到想锁定的那一行的地址。
(2)到达那一行。
(3)锁定这一行(如果这一行已经锁定,则等待锁住它的事务结束,除非使用了NOWAIT选项

TM(DMLEnqueue)锁
用于确保在修改表的内容时,表的结构不会改变
一个事务修改了多少个对象,就能得到多少个TM锁
系统中允许的TM锁总数允许DBA来配置

思考:如果TM锁总数设置为0,会有什么结果?

高效的PL/SQL程序设计.doc

一、尽可能少地编写代码
一般准则:
不做无谓的操作;
如果能用单独一条SQL语句执行处理,就用一条;
如果不能的话,尽可能少地使用PL/SQL;
如果不能用PL/SQL,尽可能在存储过程中少量使用Java;
如果因性能问题,PL/SQL或者Java不能使用,则使用少量的C;
如果C语言也不能解决问题,那么就应该考虑改变策略了。


评论

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注