2010-05-11 44 views

回答

0

存储过程亲:

- 安全

- 性能和可扩展性

- 允许更改到一个层(数据库本身,而随后 接口/网页的实际代码)

可以轻松编写或移动

6

支持和反对的论据存储过程往往会分裂你认为是问题的正确答案:业务逻辑属于数据库还是应用程序?我会试着在提出论据时保持中立。如果我成功了,我的一些利弊会自相矛盾。

PRO

  1. 存储过程可以很容易地共享跨应用程序的数据库代码
  2. 协同定位与数据与数据相关的逻辑可以很容易地在应用程序执行业务规则。这种方法使数据拥有者有权通过数据用户。
  3. 存储过程使用针对数据库编程量身定制的语言。
  4. 存储过程与数据库一起缩放。

CON

  1. 业务逻辑不属于数据库。
  2. 存储过程是用专业和笨重的编程语言编写的,普通开发人员对此没有兴趣学习。
  3. 我们不能要求DBA编写存储过程,因为DBA讨厌开发人员。
  4. 存储过程在数据库中运行,数据库是瓶颈。

许多这些一般的观点也适用于Java存储过程。我写了一个答案your related question,所以这些优点和缺点可能看起来很亲切。

PRO

  1. Java存储过程,使我们能够扩展到数据库程序访问的功能。
  2. 特别是它可以让我们有更大的灵活性来将操作集成到数据库和操作系统域中。
  3. 很多开发人员都知道如何编写Java。
  4. Java存储过程允许我们跨不同的DBMS产品部署数据库应用程序。

CON

  1. Java不执行,以及本地数据库的代码。
  2. Java存储过程需要编写重复内置功能的定制代码。
  3. Java不适合数据库操作。
  4. Java可能会造成安全问题。特别是在数据库内部在OS上运行程序时。

以下是本机存储过程和Java存储过程真:没有数据库的工作如何能执行真的不好理解写的开发代码。这同样适用于未配备适当专业水平的前端或ORM工具。但是,这种情况不太可能出现在本机存储过程中,因为它们的功能是构建高效的数据库应用程序。

+3

DBA的讨厌的开发人员的+1:D – 2011-01-12 20:54:46