Oracle 11g/12c PL/SQL 高级开发
Jerry Zhao 查看讲师
百林哲咨询(北京)有限公司专家团队成员
20余年软件的设计、开发与管理工作,具有编程的经验与技巧,熟悉大型数库库开发、设计、测试、管理,为甲骨文、海关总署、上海中金所、宁夏地税、苏州郎新、中海油、广东联通、伊利集团、中国邮政等培训和咨询。
浏览:3211次
详情 DETAILS

简介

本课程是专门为从事Oracle系统应用开发编程人员而设置;较详细介绍Oracle 11g/12c版本PL/SQL基本使用和高级编程方法与性能技巧。包括:内置包的基本介绍、PL/SQL应用监控与调试、性能问题的诊断和优化方法等。

目标

1、了解Oracle 11g/12c版本PL/SQL高级编程方法相关知识;

2、掌握Oracle 11g/12c版本PL/SQL应用性能诊断与优化方法;

3、掌握 PL/SQL应用维护方法与技巧 

课程时长

3天(18H)

受众人群

基于Oracle 系统的应用系统开发人员;基于Oracle 的数据库管理与维护人员;基于Oracle 环境的应用测试人员;Oracle 系统技术支持/性能调整人员

分享提纲

1、PL/SQL 知识概要 

针对具有PL/SQL使用基础和经验的技术人员,本部分以样例的形式直接回顾PL/SQL编程的方法,省略基本原理的描述。

1.1SQL*Plus 环境

1.2SQL*Plus 必须掌握的命令回顾 (几个关键命令 )

1.3SQL Developer 4.x 下载概要

1.4安装SQL Developer

1.5SQL Developer 连接与 TNS

1.6使用 SQL Developer 编辑与调试 PL/SQL 程序 

2、PL/SQL 基础概要


2.1变量与数据类型

2.2显式光标与隐式光标回顾 

2.3异常处理 

2.4异常处理与应用错误捕获方法

3、 PL/SQL 编程基础    

如果对Oracle 系统的性能感兴趣时,下面的性能视图可帮助你了解到性能问题的关键信息,这里,我们通过样例的方法来解析性能问题的诊断步骤和方法。

3.1 函数存储过程编方法 

3.2包的概念与编写方法(概要) 

3.3触发器与触发器编写方法(概要) 

4、Oracle11g/12c内置包与新功能 

Oracle 系统内部的应用主要是由内置支持,现在的Oracle EM 图形界面实际运行时也要通过内置包来完成。作为开发一个通用的软件产品,掌握Oracle系统的内置包的使用可以达到事半功倍的效果。这里主要概要介绍常见的内置包,详细的介绍会分散在之后的各小章节上。

4.1默认安装下Oracle 11g普通内置包 

4.2特殊需要与特殊内置包及其安装脚本 

4.3SYS Schema下常见的内置包概要 

4.4其他Schema 下的内置包概要 

4.512c 版本内置包变化与新内置包 

5、元数据DBMS_METADATA包

无论你是否参与表结构和索引、视图等创建,但当你采用PL/SQL编程时都与相关的对象产生联系,这些联系有的是显式的,有些则是隐式的。当PL/SQL出现问题时,了解元数据概念和使用内置包获取相关对象的信息,给解决问题的方向就找对了。这里介绍元数据报的使用方法和样例,帮助开发与维护工程师快速定位问题非常关键。

5.1关于元数据问题 

5.2DBMS_METADATA元数据包基本程序说明

5.3DBMS_METADATA包获取依赖关系和权限信息 

5.4DBMS_METADATA包较深入使用研究 

5.5_METADATA包 实现维护技巧与样例 

6、DML事务可恢复问题 

如果你编写的应用中包含有DML语句,则与事务有关,当Oracle服务器与存储出现问题时会影响到相关的DML语句的正常运行,也就说,会导致某些DML语句没有正常结束,那么自然导致数据完整性问题。如何主动地避免这样的问题发生和发生DML失败时自动解决是衡量一个编写DML语句的开发人员是否严谨的关键。

6.1关于DML操作与撤销数据概念 

6.2Oracle 11g/12c 的DML操作与完整性方法 

6.3DBMS_RESUMABLE 包用途说明 

6.4如何用DBMS_RESUMABLE 避免DML操作失败

6.5基于10g/11g/12c 版本的DML操作失败监控方法 

7、Web环境PL/SQL应用监控与调试

现在许多基于Oracle环境运行的应用既包括直接内部程序,也包括来自Web环境的应用。针对复杂的Oracle应用环境,需要诊断直接的应用或者来自Web系统的应用进行实时的跟踪与监控,从而进行问题的定位。

7.1使用DBMS_SESSION 实现会话监控 

7.2使用DBMS_SESSION 实现会话跟踪 

7.3DBMS_APPLICATION_INFO包 实现应用诊断 

7.4Web环境应用监控与跟踪 

使用DBMS_MONITOR 包实现Web环境的应用跟踪

8、PL/SQL应用与环境问题分析 

PL/SQL应用在运行时,都要使用Oracle服务器的资源和访问相关的对象。如果某个应用运行时处于不良的状态,维护人员需要获取当时的相关情况。这里介绍的DBMS_UTILITY包就像它的名称一样,主要用于处理各种Oracle系统内部的信息,包括获取相关的数据运行信息,会话时的相关信息等。

8.1PL/SQL 应用运行与服务器资源 

8.2DBMS_UTILITY包及其函数与存储过程 

8.3使用DBMS_UTILITY包获取相关信息样例

9、11g/12c版本的PL/SQL性能方法 

编写PL/SQL 应用也要与时俱进,因为每个Oracle版本都存在差异,比如,10g/11g 新的数据类型、对批量数据的处理增加了FORALL语句等。这里分别介绍这两部分的内容。

9.1变量类型与性能 

9.210g/11g 新数据类型与性能 

9.312c 版本 数据类型 的变化 

9.4关于批量绑定概念 

9.5使用 FORALL 进行批量绑定 

9.611g 版本 结果缓存新方法 

9.7SELECT 语句 查询结果缓存方法 

9.8DBMS_RESULT_CACHE包与缓存管理 

10、PL/SQL应用优化与会话参数调整 

本部分介绍Oracle 11g版本的会话级相关参数及其在PL/SQL应用中的设置方法。此外,还介绍DBMS_SYSTEM包设置会话级参数的样例。

10.1会话与使用资源实时监控方法 

10.2关于会话参数设置问题 

10.3Oracle 11g/12c PL/SQL 相关的新参数 

10.4使用DBMS_SYSTEM与参数设置 

10.5依赖关系与无效对象快速查询 

10.6无效对象的编译各种方法与技巧 

10.7其他的性能诊断工具使用方法 

11、PL/SQL应用性能诊断方法

PL/SQL编写的程序不可能都是高效的应用,面对那些运行效率低下的应用的诊断就是PL/SQL开发人员和维护人员关注的主题。这里介绍基于10g和11g版本诊断方法和技巧。

11.1SQL 语句跟踪方法 

11.2使用DBMS_PROFILE包诊断 

11.3使用DBMS_HPROF包诊断 

11.4PL/SQL 性能诊断的其他工具与方法

11.5更多内置包的监控方法

12、Oracle PL/SQL 应用的安全实现 

Oracle 系统PL/SQL 应用在完成创建后, PL/SQL代码存储在数据字典中,当PL/SQL应用经过授权给用户后,用户即可执行相应的PL/SQL应该用。但是,这样的机制在默认情况下也存在安全问题的,本小节介绍如何确保PL/SQL应用的安全和数据库的安全。

12.1DBMS_DDL包实现PL/SQL 加密概要 

12.2关于定义者与调用者 

12.3SQL injections(注入)概要 

12.4减少被攻击面

12.5使用 DBMS_ASSERT 包防止攻击

12.6编写有免疫的代码 

13、(可选)复杂PL/SQL应用与相关的包概要 

本部分介绍Oracle 环境复杂应用相关的知识,比如会话间如何实时交换数据,如果将PL/SQL查询结果转换为HTML文件等。此外,还介绍12c 版本的新变化。

13.1DBMS_PIPE包管道实现会话间通信 

13.2DBMS_FILE 包与OS文件的I/O 方法 

13.312c 版本DBMS_METADATA元数据包新变化 

13.412c版本 DBMS_SQL.RETURN_RESULT 新变化 

14、(可选)PL/SQL调试技术

应用系统效率不加,具体的原因就是相应的SQL语句的问题,而PL/SQL程序包含多个SQL语句,哪些语句是问题的根源就需要进行跟踪和调试,这里介绍的是如何对PL/SQL进行跟踪的方法。

14.1关于SQL跟踪方法与工具

14.2安装DBMS_TRACE()

14.3使用DBMS_TRACE()管理运行 

14.4PL/SQL 跟踪样例 

15(选)DBMS_APPLICATION_INFO

由于PL/SQL 程序不具备交互性,所以跟踪时确定问题语句比较困难。这个内置包就是用于定位正在执行的PL/SQL源代码中实际处理逻辑,通过调用该包来记录正在执行的操作的当前位置,从而确定问题根源。针对这个所提供的功能,我们介绍的内容如下:

15.1DBMS_APPLICATION_INFO

15.2包使用简单样例

15.3跟踪B/S结构的会话

15.4实践样例

16、(可选)DBMS_MONITOR

现在多数应用系统环境的都是B/S结构,而许多Java或4GL通过调用PL/SQL 程序实现数据库的处理,正是由于此,对B/S的跟踪采用原来的方法不易确定其真实位置,所以,从Oracle10g开始,用DBMS_MONITOR包通过模块名称和客户机名称来建立一个跟踪,从而实现问题的确定。本部分介绍的内容包括:

16.1会话概念回顾

16.2用DBMS_MONITOR包需要设置的参数

16.3服务名称、模块名称和动作名称的组合进行跟踪

16.4DBMS_MONITOR-会话级跟踪样例 

17、(可选)UTL_FILE 

许多应用系统环境采用PL/SQL编程主要为了加快数据处理的效率,但也有采用PL/SQL的内置包灵活实现各种操作。这个内置包可实现对OS路径文件的操作,包括写文件和读文件等。你可使用这个包浆你的处理结果转换成PDF或HTML等格式文件。本部分介绍的内容包括:

17.1关于OS文件的I/O 问题

17.2UTL_FILE 包的功能

17.3使用UTL_FILE实现查询结果输出为HTML 

18、(可选)DBMS_PIPE包 

在较复杂的应用系统中,经常需要将某些数据快速实时传递给一组约定好的进程中,从而快速进行特别的处理。这个包可实现在进程传递数据包的方法。本部分介绍的内容包括:

18.1Oracle 系统中的进程

18.2DBMS_PIPE功能

18.3DBMS_PIPE存储过程

18.4DBMS_PIPE例子

19(可选)DBMS_TRANSACTION包

对于采用Oracle系统进行分布式环境应用开发的人员来说,经常担心的是每个DML语句是否成功完成,如果没有成功完成,则如何找到问题所在和恢复相关事务。而恢复事务在Oracle系统里与别的数据库不同,可用手工方法恢复,也可自动恢复。采用这个内置包可实现对分布事务的管理。本部分介绍的内容包括:

19.1Oracle 系统的分布式处理流程

19.2关于Oracle 系统的两阶段提交

19.3未决事务的处理

19.4使用DBMS_TRANSACTION包处理未决事务


企业服务热线:400-106-2080
电话:18519192882
投诉建议邮箱:venus@bailinzhe.com
合作邮箱:service@bailinzhe.com
总部地址:
北京市-丰台区-汽车博物馆东路6号3号楼1单元902-B73(园区)
全国客户服务中心:
天津市-南开区-桂苑路15号鑫茂集团鑫茂军民园1号楼A座802-803
公众号
百林哲咨询(北京)有限公司 京ICP备2022035414号-1