代码之家  ›  专栏  ›  技术社区  ›  Brian Deterling

与Java相比,用SQL编写DB2存储过程的优缺点是什么?

  •  2
  • Brian Deterling  · 技术社区  · 16 年前

    对于较新版本的DB2,您可以用SQL编写存储过程,也可以用Java(或其他语言)创建过程,然后将这些过程添加到数据库中,并像SQL过程一样调用。我想知道每种方法的优缺点是什么。我特别感兴趣的是比较这两种类型的过程,而不是讨论过程和外部代码,我认为它们已经被介绍过了。以下是我到目前为止得出的结论:

    • 提高基本SQL功能的性能

    • 对于简单的逻辑,您可以直接运行SQL

    • 没有额外的编译步骤-只需创建过程。。。

    • 更结构化、功能更全面的代码(类、对象、重用、库)

    • 在程序员和文档方面提供更好的帮助资源

    还有其他想法吗?

    3 回复  |  直到 16 年前
        1
  •  4
  •   paxdiablo    16 年前

    不仅仅是Java,还有任何过程语言: 程序性 ,这是关键。

    DB2是一种关系代数,而不是一种编程语言。如果您需要做一些复杂的事情,最好使用过程语言,而不是尝试将SQL弯曲成它不应该做的事情。

    实际上,我们在DB2/z工作中使用REXX,但我看到这里的人在大型机上使用bash进行快速原型设计。一些只使用SQL的人创建了所有这些可怕的临时表,用于存储最好保存在结构中且远离数据库的内容。

    1/如果一个工作单元需要对数据库进行两次以上的访问,我们将其设置为存储过程。

        2
  •  0
  •   MadMurf    16 年前

    您可能已经发现了这一点,但为了以防万一,对于这里讨论的任何其他人,都有一本关于存储过程和DB2V9更改的IBM红皮书 DB2 9 for z/OS Stored Procedures: Through the CALL and Beyond

        3
  •  -1
  •   kishore    15 年前

    出于以下原因,我认为cobol比Java更适合DB2外部存储过程。 1). 您将能够重用现有程序中的一些代码。将cobol子程序转换为存储过程或将存储过程转换为cobol子程序非常容易实现。