oracle视频教程ocp10g认证dba从入门到精通_第1页
oracle视频教程ocp10g认证dba从入门到精通_第2页
oracle视频教程ocp10g认证dba从入门到精通_第3页
oracle视频教程ocp10g认证dba从入门到精通_第4页
oracle视频教程ocp10g认证dba从入门到精通_第5页
已阅读5页,还剩28页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

课程目标学完本课后,应能完成以下工作:通过使用SQL

来管理数据识别和管理PL/SQL

对象描述触发器和触发事件监视和解决锁定通过SQL

处理数据>

SQLPL/SQL锁定SQL>

INSERT

INTO

employeesVALUES(9999,'Bob','Builder','bob@',NULL,SYSDATE,'IT_PROG',NULL,NULL,100,90);row

created.SQL>

UPDATE

employees

SET

SALARY=6000WHERE

EMPLOYEE_ID=9999;row

updated.SQL>

DELETE

from

employeesWHERE

EMPLOYEE_ID=9999;1

row

deleted.INSERT

命令一次创建一行通过另一个表多行UPDATE

命令使用UPDATE

命令可更改表的零行或多行DELETE

命令使用DELETE

命令可从表中删除零行或多行MERGE

命令使用MERGE

命令可通过单个命令同时执行

INSERT

和UPDATE。MERGE

命令完整备注页COMMIT

和ROLLBACK

命令下面令用于结束事务处理:性更改••COMMIT:使更改成为ROLLBACK:撤消更改PL/SQLOracle

的SQL

的过程语言扩展

(PL/SQL)

是第四代编程语言(4GL)。它提供:SQL

的过程扩展平台和产品间的可移植性更高级的安全性和数据完整性保护支持面

象的编程SQL>

PL/SQL锁定管理PL/SQL

对象数据库管理员应可以:找出存在问题的

PL/SQL

对象建议适当的PL/SQL

用法将PL/SQL

对象装入到数据库中协助

PL/SQL

开发

故障PL/SQL

对象PL/SQL

数据库对象有许多类型:程序包程序包体类型主体过程函数触发器函数过程过程用于执行特定操作。过程可:通过使用参数列表传入和传出值通过使用CALL

命令来调用程序包程序包是由函数和过程组成的集合。每个程序包应由两个对象组成:程序包说明程序包体程序包说明程序包说明和程序包体内置程序包•Oracle

数据库带有350

多个内置PL/SQL

程序包,可用于:––管理和

实用程序扩展功能•请使用DESCRIBE

命令查看子程序。触发器触发事件事件类型事件示例DMLINSERT、UPDATE、DELETEDDLCREATE、DROP、ALTER、GRANT、REVOKE、RENAME数据库LOGON、LOGOFF、STARTUP、SHUTDOWN、SERVERERROR锁定使用锁定可防止多个会话同时更改同一数据。锁定是在指定语句的最低可能级别自动获取的。锁定不会升级。SQLPL/SQL>锁定事务处理1事务处理2SQL>

UPDATE

employeesSET

salary=salary*1.1WHERE

employee_id=100;SQL>

UPDATE

employeesSET

salary=salary+100WHERE

employee_id=100;锁定机制•高级数据并发处理:执行

、更新和删除时使用行级锁定查询不需要任何锁定••自动队列管理在事务处理(使用

COMMIT

或ROLLBACK

操作)结束之前一直持有锁定事务处理1事务处理2SQL>

UPDATE

employeesSET

salary=salary*1.1WHERE

employee_id=101;SQL>

UPDATE

employeesSET

salary=salary+100WHERE

employee_id=100;数据并发处理时间:09:00:00事务处理1UPDATE

hr.employeesSET

salary=salary+100WHERE

employee_id=100;事务处理2UPDATE

hr.employeesSET

salary=salary+100WHERE

employee_id=101;事务处理3UPDATE

hr.employeesSET

salary=salary+100WHERE

employee_id=102;......事务xUPDATE

hr.employeesSET

salary=salary+100WHERE

employee_id=

;数据并发处理完整备注页DML

锁定事务处理1每个DML事务处理必须获取两个锁定:针对正在更新的一行或多行的

EXCLUSIVE

行锁定针对包含这些行的表的

ROW

EXCLUSIVE

表级锁定事务处理2SQL>

UPDATE

employeesSET

salary=salary*1.1WHERE

employee_id=

106;1

rowupdated.SQL>

UPDATE

employeesSET

salary=salary*1.1WHERE

employee_id=

107;1

rowupdated.入队机制入队机制用于

:等待锁定的会话请求的锁定模式请求锁定的会话的顺序锁定UPDATE

employees

SET9:00:00UPDATE

employees

SETsalary=salary+100

WHEREsalary=salary+100

WHEREemployee_id=100;employee_id=101;1

rowupdated.1

rowupdated.UPDATE

employeesSET9:00:05SELECT

sum(salary)

FROMemployees;SUM(SALARY)-----------692634COMMISION_PCT=2

WHEREemployee_id=101;会话因锁定 而等待入队会话仍在等待!16:30:00在最后7.5个小时里进行了许多选择、、更新和删除操作,但未提交,也未回退!1

rowupdated.会话继续进行16:30:01commit;事务处理1时间 事务处理

2锁定的可能原因未提交更改长时间运行事务处理不必要的高锁定级别检测锁定在性能页选择“阻塞会话”。,查看关于锁定会话的单击“Session

ID(会话ID)”信息,包括实际

SQL

语句。解决锁定为了解决锁定

,您应该:提交或回退持有锁定的会话终止持有锁定的会话(作为最后段)使用SQL

解决锁定SQL

语句可用来确定阻塞会话并终止会话。SQL>

alter

system

kill

session

'144,8982'

immediate;SQL>

select

sid,

serial#,

usernamefrom

v$sessionwhere

sidin(select

blocking_session

from

v$session)结果:12死锁事务处理1事务处理2UPDATE

employeesSET

salary

=

salary

x

1.1WHERE

employee_id

=

1000;9:00UPDATE

employeesSET

manager =

1342WHERE

employee_id

=

2000;UPDATE

employeesSET

salary

=

salary

x1.1WHERE

employee_id

=2000;9:15UPDATE

employeesSET

manager =

1342WHERE

employee_id

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论