第1章 **能的PL/SQL
本章讨论PL/SQL的效能。这里故意避开术语“性能”,因为效能不只是性能。我们将准确地定义什么是“**能的PL/SQL”,并解释如何使PL/SQL代码符合这个定义。
当恰到好处地使用PL/SQL时,可以构建出性能良好、便于日后修改并可以应付大量用户的应用程序。PL/SQL应该成为基于数据库的应用程序开发必选的开发语言。因此,当在公司里使用Oracle时,应该鼓励将PL/SQL作为应用程序的不可或缺的组件。
1.1 为何使用PL/SQL
在讲述与PL/SQL效能有关的重要问题之前,先来看一下***这几年经常问的问题:“我真的需要使用PL/SQL吗?”
自从上世纪80年代末起,人们一直在忙于使应用程序摆脱大型机,首先转向客户-服务器应用(client-server),然后又转向基于Web的解决方案,应用程序的数据(保存于Oracle数据库中)已经远远脱离了应用程序代码本身。
因而,当存储过程**次出现于Oracle版本7服务器端的时候,其卖点就是作为在慢速网络中改善客户/服务器(client/server)应用程序性能的解决方案。我们摒弃了从客户端应用程序发送很多离散数据库调用的做法,而将这些调用绑定于服务器端的PL/SQL存储过程中,客户端只需要发送一个简单的调用,这样就可以减少对网络速度的依赖。
这是对PL/SQL价值的严重贬损(让我们面对它吧,我们真不希望贬损Oracle的任何一个特点)。更糟糕的是,它导致了一个错误观点:如果你不准备将应用程序运行于广域网,就不需要PL/SQL。但本书将反复证明,在Oracle项目中不使用PL/SQL就等于编程时将一只手绑在后背上。然而,在一个项目中,你首先要面临的难题可能并不是如何保证**地运用PL/SQL,而是如何说服管理者心悦诚服地使用它!
……