热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

ocp跟oce的区别oracle_OraclePL/SQL实战

本书特色汇聚Oracle专家集体智慧内容贴近实战,讲解透彻精彩DBA修炼内力必读秘籍“本书作者阵容强大,内容全面实用,期待更多这种形

本书特色

汇聚Oracle专家集体智慧

内容贴近实战,讲解透彻精彩

DBA修炼内力必读秘籍

“本书作者阵容强大,内容全面实用,期待更多这种形式的技术书。”——亚马逊读者评论

本书由15位知名技术专家联手打造,每位作者分别用一章的篇幅介绍他们最擅长的PL/SQL相关主题,涵盖了PL/SQL开发的方方面面。本书作者要么是Oracle社区中坚分子,要么是大名鼎鼎的OakTable成员,而且经常活跃在Oracle技术培训第一线,对PL/SQL均有着深入透彻的理解,对解释复杂问题有着简单独到的方法。一册在手,众多PL/SQL牛人的真知灼见尽收眼底,你还等什么?

本书着重介绍了PL/SQL最新、最实用的特性,从什么该做和什么不该做、怎么做对,以及怎么做更有效率、效果更好等三个部分全面阐释了PL/SQL相关的各个主题。而且,每一章都配有非常贴切的示例代码、跟踪图以及输出结果,辅以深入浅出的讲解,令人在恍然大悟之后不禁拍案叫绝。各章内容均涵盖了PL/SQL实际开发中的最佳实践,反映了作者多年积累的经验和教训,其价值非同一般。

本书适合具有一定PL/SQL经验的读者学习参考。

本书主要内容如下:

 掌握使用以及避免使用PL/SQL的最佳时机;

 使用批量SQL操作高效地加载数据;

 使用管道指令、并行操作和代码剖析,提高代码的扩展性;

 为应用选择正确的PL/SQL游标类型;

 借助单元测试等有效的开发实践,减少编码错误;

 在运行时动态创建和执行SQL以及PL/SQL。

目录

第1章  避免误用

1.1 逐行处理

1.2 嵌套的逐行处理

1.3 查找式查询

1.4 对DUAL的过度访问

1.4.1 日期的算术运算

1.4.2 访问序列

1.4.3 填充主—从行

1.5 过多的函数调用

1.5.1 不必要的函数调用

1.5.2 代价高昂的函数调用

1.6 数据库链接调用

1.7 过度使用触发器

1.8 过度提交

1.9 过度解析

1.10 小结

第2章  动态SQL:处理未知

2.1  动态SQL的三种方式

2.1.1  本地动态SQL

2.1.2  动态游标

2.1.3  DBMS_SQL

2.2  动态思考的样例

2.3  安全问题

2.4  性能和资源利用率

2.4.1  反模式

2.4.2  比较动态SQL的实现

2.5  对象的依赖关系

2.5.1  负面影响

2.5.2  正面影响

2.6  小结

第3章  PL/SQL和并行处理

3.1  为什么需要并行处理

3.2  影响并行处理的定律

3.3  大数据的崛起

3.4  并行与分布式处理

3.5  并行硬件体系结构

3.6  确定目标

3.6.1  加速

3.6.2  按比例扩展

3.6.3  并行度

3.7  用于并行处理的候选工作负载

3.7.1  并行和OLTP

3.7.2  并行和非OLTP工作负载

3.8  MapReduce编程模型

3.9  在使用PL/SQL之前

3.10  可用于并行活动的进程

3.11  使用MapReduce的并行执行服务器

3.11.1  管道表函数

3.11.2  指导

3.11.3  并行管道表函数小结

3.12  小结

第4章  警告和条件编译

4.1  PL/SQL 警告

4.1.1  基础

4.1.2  使用警告

4.1.3  升级警告为错误

4.1.4  忽略警告

4.1.5  编译和警告

4.1.6  关于警告的结束语

4.2  条件编译

4.2.1  基础

4.2.2  正在运行代码的哪部分

4.2.3  预处理代码的好处

4.2.4  有效性验证

4.2.5  控制编译

4.2.6  查询变量

4.2.7  关于条件编译的结束语

4.3  小结

第5章  PL/SQL单元测试

5.1  为什么要测试代码

5.2  什么是单元测试

5.2.1  调试还是测试

5.2.2  建立测试的时机

5.3  单元测试构建工具

5.3.1  utPLSQL:使用命令行代码

5.3.2  Quest Code Tester for Oracle

5.3.3  Oracle SQL Developer

5.4  准备和维护单元测试环境

5.4.1  创建单元测试资料档案库

5.4.2  维护单元测试资料档案库

5.4.3  导入测试

5.5  构建单元测试

5.5.1  使用单元测试向导

5.5.2  创建第一个测试实施

5.5.3  添加启动和拆除进程

5.5.4  收集代码覆盖率统计信息

5.5.5  指定参数

5.5.6  添加进程验证

5.5.7  保存测试

5.5.8  调试和运行测试

5.6  扩大测试的范围

5.6.1  创建查找值

5.6.2  植入测试实施

5.6.3  创建动态查询

5.7  支持单元测试功能

5.7.1  运行报告

5.7.2  创建组件库

5.7.3  导出、导入和同步测试

5.7.4  构建套件

5.8  从命令行运行测试

5.9  小结

第6章  批量SQL操作

6.1  五金商店

6.2  设置本章的例子

6.3  在PL/SQL中执行批量操作

6.3.1  批量获取入门

6.3.2  三种集合风格的数据类型

6.3.3  为什么要自找麻烦

6.3.4  监控批量收集的开销

6.3.5  重构代码以使用批量收集

6.4  批量绑定

6.4.1  批量绑定入门

6.4.2  度量批量绑定性能

6.4.3  监视内存的使用

6.4.4  11g中的改进

6.5  批量绑定的错误处理

6.5.1  SAVE EXCEPTIONS和分批操作

6.5.2  LOG ERRORS子句

6.5.3  健壮的批量绑定

6.7  真正的好处:客户端批量处理

6.8  小结

第7章  透识你的代码

7.1  本章内容取舍

7.2  自动代码分析

7.2.1  静态分析

7.2.2  动态分析

7.3  执行分析的时机

7.4  执行静态分析

7.4.1  数据字典

7.4.2  PL/Scope

7.5  执行动态分析

7.5.1  DBMSPROFILER和DBMSTRACE

7.5.2  DBMS_HPROF

7.6  小结

第8章  合同导向编程

8.1  契约式设计

8.1.1  软件合同

8.1.2  基本合同要素

8.1.3  断言

8.1.4  参考文献

8.2  实现PL/SQL合同

8.2.1  基本的ASSERT程序

8.2.2  标准的包本地断言

8.2.3  使用ASSERT执行合同

8.2.4  其他改进

8.2.5  合同导向函数原型

8.3  示例:测试奇数和偶数

8.4  有用的合同模式

8.4.1  用NOT NULL输入且输出NOT NULL

8.4.2  函数返回NOT NULL

8.4.3  布尔型函数返回NOT NULL

8.4.4  检查函数:返回TRUE或ASSERTFAIL

8.5  无错代码的原则

8.5.1  严格地断言先决条件

8.5.2  一丝不苟地模块化

8.5.3  采用基于函数的接口

8.5.4  在ASSERTFAIL处崩溃

8.5.5  对后置条件进行回归测试

8.5.6  避免在正确性和性能之间取舍

8.5.7  采用Oracle 11g优化编译

8.6  小结

第9章  从SQL调用PL/SQL

9.1  在SQL中使用PL/SQL函数的开销

9.1.1  上下文切换

9.1.2  执行

9.1.3  欠理想的数据访问

9.1.4  优化器的难点

9.1.5  读一致性陷阱

9.1.6  其他问题

9.2  降低PL/SQL函数的开销

9.2.1  大局观

9.2.2  使用SQL的替代品

9.2.3  减少执行

9.2.4  协助CBO

9.2.5  调优PL/SQL

9.3  小结

第10章  选择正确的游标

10.1  显式游标

10.1.1  解剖显式游标

10.1.2  显式游标和批量处理

10.1.3  REF游标简介

10.2  隐式游标

10.2.1  解剖隐式游标

10.2.2  隐式游标和额外获取的理论

10.3  静态REF游标

10.3.1  详细的游标变量限制清单

10.3.2  客户端和REF游标

10.3.3  有关解析的话题

10.4  动态REF游标

10.4.1  例子和最佳用法

10.4.2  SQL注入的威胁

10.4.3  描述REF游标中的列

10.5  小结

第11章  大规模PL/SQL编程

11.1  将数据库作为基于PL/SQL的应用服务器

11.1.1  案例研究:Avaloq银行系统

11.1.2  在数据库中使用PL/SQL实现业务逻辑的优势

11.1.3  用数据库作为基于PL/SQL的应用程序服务器的限制

11.1.4  软因素

11.2  大规模编程的要求

11.3  通过规范实现一致性

11.3.1  缩写词

11.3.2  PL/SQL标识符的前缀和后缀

11.4  代码和数据的模块化

11.4.1  包和相关的表作为模块

11.4.2  含有多个包或子模块的模块

11.4.3  模式作为模块

11.4.4  在模式内部模块化

11.4.5  用模式模块化与在模式内模块化的比较

11.5  使用PL/SQL面向对象编程

11.5.1  使用用户定义类型的面向对象编程

11.5.2  使用PL/SQL记录面向对象编程

11.5.3  评估

11.6  内存管理

11.6.1  测量内存使用

11.6.2  集合

11.7  小结

第12章  渐进式数据建模

12.1  从二十年的系统开发中总结的经验

12.2  数据库和敏捷开发

12.3  渐进式数据建模

12.4  重构数据库

12.5  通过PL/SQL创建访问层

12.6  敏捷宣言

12.7  用PL/SQL进行渐进式数据建模

12.7.1  定义接口

12.7.2  思考可扩展性

12.7.3  测试驱动开发

12.7.4  明智地使用模式和用户

12.8  小结

第13章  性能剖析

13.1  何谓性能

13.1.1  功能需求

13.1.2  响应时间

13.1.3  吞吐量

13.1.4  资源利用率

13.1.5  性能是功能的一种

13.2  什么是剖析

13.2.1  顺序图

13.2.2  概要文件之神奇

13.2.3  性能剖析的好处

13.3  性能测量

13.3.1  这个程序为什么慢

13.3.2  测量嵌入

13.3.3  识别

13.3.4  条件编译

13.3.5  内建的剖析器

13.3.6  扩展的SQL跟踪数据(事件10046)

13.3.7  针对Oracle的测量工具库(ILO)

13.4  问题诊断

13.4.1  R方法

13.4.2  ILO示例

13.4.3  剖析示例

13.5  小结

第14章  编码规范和错误处理

14.1  为什么要制订编码规范

14.2  格式化

14.2.1  大小写

14.2.2  注释

14.2.3  比较

14.2.4  缩进

14.3  动态代码

14.4  包

14.5  存储过程

14.5.1  命名

14.5.2  参数

14.5.3  调用

14.5.4  局部变量

14.5.5  常量

14.5.6  类型

14.5.7  全局变量

14.5.8  本地存储过程和函数

14.5.9  存储过程元数据

14.6  函数

14.7  错误处理

14.7.1  错误捕获

14.7.2  错误报告

14.7.3  错误恢复

14.7.4  先测试再显示

14.8  小结

第15章  依赖关系和失效

15.1  依赖链

15.2  缩短依赖链

15.3  数据类型引用

15.4  用于表修改的视图

15.5  把组件添加到包

15.6  依赖链中的同义词

15.7  资源锁定

15.8  用触发器强制执行依赖

15.9  创建最初禁用的触发器

15.10  小结

作者介绍

译者简介

卢涛

1995年参加工作,高级程序员、系统分析师、高级工程师。2004年起接触Oracle数据库,获得Oracle数据库管理9i至11g、PL/SQL开发、性能优化、RAC管理、数据仓库等多个OCP、OCE、OCS认证。ITPUB社区Oracle开发版版主,《剑破冰山——Oracle开发艺术》一书合著者。做过需求分析、系统分析、架构设计、数据库和应用程序性能优化等工作。参与数次全国性普查数据处理系统的设计、开发和运维。

审校人简介

苏旭晖

在IT行业摸爬滚打20多年,1997年至今一直致力于Oracle开发,擅长用SQL、PL/SQL。ITPUB社区Oracle开发版版主,以及《剑破冰山——Oracle开发艺术》一书合著者。现居加拿大多伦多,从事数据库应用系统的设计与开发工作。出国前任职于厦门巨龙软件公司。多年来致力于金融、公安、医疗、社保等行业软件的研发。

李颖

2006年毕业于渤海大学英语系,主修英语教育专业。英语爱好者

贾书民

河北省统计局数据管理中心调研员,高级程序员、高级工程师。有多年Unix系统管理、数据库系统管理与设计、数据处理软件开发经验。1993年起开始使用Oracle开发了《河北省综合数据库系统》等多个大型应用系统。参与过《第五次全国人口普查数据处理系统》等多个国家级项目的设计和开发。擅长使用SQL、PL/SQL进行高效数据分析处理。所开发项目获第四届全国统计科学技术进步一等奖。此外,他还参与编写《剑破冰山——Oracle开发艺术》一书。

相关文章

1推荐

I worked for Lockheed right after college. In my first year, I was part of a team assigned to evaluate Manufacturing Resources Planning (MR…...

lt

发表于 2012-03-03

3推荐

图灵社区按:

TEAP是什么?TEAP是Turingbook Early Access Program的简称,即早期试读,它公布的是图灵在途新书未经编辑的内容。一本书的翻译周期约为3到6个月,如果在翻译过程中,译者就能与读者进行沟通和交流,对整本书的翻译品质是有帮助的。通过T…...

lt

发表于 2012-03-14

3推荐

图灵社区按:

TEAP是什么?TEAP是Turingbook Early Access Program的简称,即早期试读,它公布的是图灵在途新书未经编辑的内容。一本书的翻译周期约为3到6个月,如果在翻译过程中,译者就能与读者进行沟通和交流,对整本书的翻译品质是有帮助的。通过T…...

lt

发表于 2012-03-16

推荐

图灵社区按:

TEAP是什么?TEAP是Turingbook Early Access Program的简称,即早期试读,它公布的是图灵在途新书未经编辑的内容。一本书的翻译周期约为3到6个月,如果在翻译过程中,译者就能与读者进行沟通和交流,对整本书的翻译品质是有帮助的。通过T…...

lt

发表于 2012-03-19

5推荐

图灵社区按:

TEAP是什么?TEAP是Turingbook Early Access Program的简称,即早期试读,它公布的是图灵在途新书未经编辑的内容。一本书的翻译周期约为3到6个月,如果在翻译过程中,译者就能与读者进行沟通和交流,对整本书的翻译品质是有帮助的。通过T…...

lt

发表于 2012-03-22

8推荐

1.现在很多外版书越来越多采用彩色或双色印刷,书中描述也经常提及颜色(如:《算法》第4版的红黑树),如果能印成彩色或双色的,就不用费心去改图,改描述了,也不必增加彩页。更大的好处是,读者得到了和原版书一样的体验。

2.代码部分,如果有文字版,建议用文字版,这样如果译者挑出了错…...

lt

发表于 2012-08-21

8推荐

刚拿到这本书的时候,真有点不敢相信,一本书竟然有15位作者。这是多么强大的作者阵容啊!先看看作者都什么来头。Lewis Cunningham,在IT领域已经工作了20多年。自1993年以来一直与Oracle数据库打交道。他的专长是应用程序设计、数据库设计,以及大容量的VLDB数…...

薄荷糖

发表于 2012-09-26

16推荐

其实只能算诀窍或技巧,故意用个大名字吸引注意力。

还要说明,本文只适用英文原版技术书的译文。考虑到图灵的大部分书属于此类,因此不在标题中写出。

我曾经是一名程序员,程序讲究严谨,因此对书的文字也把它当程序看了。

1.常识

必须对欲勘误的书的知识领域有些了解,比如《影响物…...

lt

发表于 2012-10-10

推荐

运行在Oracle 11.2,按照回退半条路也不行的规则

------------------

| 1 || 3 |

| || |

--- --------

0 56

--- …

...

lt

发表于 2012-11-10

1推荐

文档格式确实有了质的提高,文档结构图层次分明,采用的字体也更美观,

虽然代码用了图片,但打印效果和文字基本相同。

有些不适的是:

专门对原文一些地方的错误作的注解,被忽略了。

一些词语特别是术语被修改了,有些单词有多种中文译法,专门为了与另一个英文单词区分而保留的,现在…...

lt

发表于 2012-09-01

明日提交第一批译文

lt  发表于 2012-01-04 20:58:33

听说快译完了。

武卫东  发表于 2012-03-13 05:17:10

还早呢5月31日完成

lt  发表于 2012-03-13 12:15:19

听说下周差不多能编辑完了

lt  发表于 2012-07-27 16:13:34

收到排版稿了,美观了,但是还要校对

lt  发表于 2012-08-31 15:49:41

此书有出版了吗?在哪可以买到?

Winhanverky  发表于 2012-10-21 16:45:11

当当上已经有预售了

lt  发表于 2012-10-28 19:46:35

china-pub.com也预售

lt  发表于 2012-11-02 13:57:33

今天在OTN嘉年华听紫风说amazon也有售了

lt  发表于 2012-11-09 18:27:31

已经交稿了

lt  发表于 2012-06-05 13:10:53

听说已经进入编辑期了

lt  发表于 2012-06-27 16:38:31



推荐阅读
  • 如何高效启动大数据应用之旅?
    在前一篇文章中,我探讨了大数据的定义及其与数据挖掘的区别。本文将重点介绍如何高效启动大数据应用项目,涵盖关键步骤和最佳实践,帮助读者快速踏上大数据之旅。 ... [详细]
  • 在前一篇文章《Hadoop》系列之“踽踽独行”(二)中,我们详细探讨了云计算的核心概念。本章将重点转向物联网技术,全面解析其基本原理、应用场景及未来发展前景。通过深入分析物联网的架构和技术栈,我们将揭示其在智能城市、工业自动化和智能家居等领域的广泛应用潜力。此外,还将讨论物联网面临的挑战,如数据安全和隐私保护等问题,并展望其在未来技术融合中的重要角色。 ... [详细]
  • PHP中元素的计量单位是什么? ... [详细]
  • 本地存储组件实现对IE低版本浏览器的兼容性支持 ... [详细]
  • PHP预处理常量详解:如何定义与使用常量 ... [详细]
  • MySQL 8.0 MGR 自动化部署与配置:DBA 和开源工具的高效解决方案
    MySQL 8.0 MGR 自动化部署与配置:DBA 和开源工具的高效解决方案 ... [详细]
  • 在PHP中使用`exec`函数执行Shell命令时,需要特别注意安全性问题。当使用来自远程的数据构建命令时,极易引发命令注入漏洞。本文详细探讨了如何避免使用污染数据,确保系统命令的安全执行,并提供了多种防护措施和最佳实践。 ... [详细]
  • Spring框架的核心组件与架构解析 ... [详细]
  • 每日学术推荐:异质图神经网络在抽取式文档摘要中的应用研究
    在抽取式文档摘要任务中,学习跨句子关系是至关重要的一步。本文探讨了利用异质图神经网络来捕捉句子间复杂关系的有效方法。通过构建包含不同类型节点和边的图结构,模型能够更准确地识别和提取关键信息,从而生成高质量的摘要。实验结果表明,该方法在多个基准数据集上显著优于传统方法。 ... [详细]
  • Docker入门指南:初探容器化技术
    Docker入门指南:初探容器化技术摘要:Docker 是一个使用 Go 语言开发的开源容器平台,旨在实现应用程序的构建、分发和运行的标准化。通过将应用及其依赖打包成轻量级的容器,Docker 能够确保应用在任何环境中都能一致地运行,从而提高开发和部署的效率。本文将详细介绍 Docker 的基本概念、核心功能以及如何快速上手使用这一强大的容器化工具。 ... [详细]
  • 本文作为探讨PHP依赖注入容器系列文章的开篇,将首先通过具体示例详细阐述依赖注入的基本概念及其重要性,为后续深入解析容器的实现奠定基础。 ... [详细]
  • MemFireDB 在实时高并发的在线事务处理(OLTP)系统中表现出色。随着移动互联网、电商和社交应用等领域的迅猛发展,传统单机关系型数据库(如MySQL)或分库分表架构已难以满足日益增长的性能需求。MemFireDB 通过其高效的内存计算能力和灵活的分布式架构,能够显著提升系统的响应速度和处理能力,确保在高负载情况下依然保持稳定性和可靠性。此外,MemFireDB 还支持复杂的查询操作和事务管理,适用于需要高性能和低延迟的应用场景。 ... [详细]
  • 本文作为“实现简易版Spring系列”的第五篇,继前文深入探讨了Spring框架的核心技术之一——控制反转(IoC)之后,将重点转向另一个关键技术——面向切面编程(AOP)。对于使用Spring框架进行开发的开发者来说,AOP是一个不可或缺的概念。了解AOP的背景及其基本原理,对于掌握这一技术至关重要。本文将通过具体示例,详细解析AOP的实现机制,帮助读者更好地理解和应用这一技术。 ... [详细]
  • 掌握PHP框架开发与应用的核心知识点:构建高效PHP框架所需的技术与能力综述
    掌握PHP框架开发与应用的核心知识点对于构建高效PHP框架至关重要。本文综述了开发PHP框架所需的关键技术和能力,包括但不限于对PHP语言的深入理解、设计模式的应用、数据库操作、安全性措施以及性能优化等方面。对于初学者而言,熟悉主流框架如Laravel、Symfony等的实际应用场景,有助于更好地理解和掌握自定义框架开发的精髓。 ... [详细]
  • SQLmap自动化注入工具命令详解(第28-29天 实战演练)
    SQL注入工具如SQLMap等在网络安全测试中广泛应用。SQLMap是一款开源的自动化SQL注入工具,支持12种不同的数据库,具体支持的数据库类型可在其插件目录中查看。作为当前最强大的注入工具之一,SQLMap在实际应用中具有极高的效率和准确性。 ... [详细]
author-avatar
此女我很爱_484
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有