tipos sintaxis salida registrados procedimientos procedimiento parámetros parametros número nombres ejemplo ejecutar con coincide almacenados almacenado stored-procedures db2

stored procedures - sintaxis - ¿Cuáles son los pros y los contras de escribir procedimientos almacenados de DB2 en SQL frente a Java?



sintaxis de procedimientos almacenados (3)

Con las versiones más nuevas de DB2 puede escribir procedimientos almacenados en SQL o puede crear procedimientos en Java (u otros idiomas) que luego pueden agregarse a la base de datos y llamarse como los procedimientos de SQL. Me pregunto cuáles son los pros y los contras de cada método. Estoy específicamente interesado en comparar esos dos tipos de procedimientos, no en los procedimientos de debate versus el código externo, que creo que ya se ha cubierto. Esto es lo que se me ocurrió hasta ahora:

SQL:

  • Mejor rendimiento para la funcionalidad básica de SQL

  • Menos detallado para lógica simple, es decir, puede ejecutar SQL directamente

  • Sin paso de compilación adicional: solo crea el procedimiento ...

Java:

  • Código más estructurado y completo (clases, objetos, reutilización, bibliotecas)

  • Mejores recursos para ayudar tanto en términos de programadores como de documentación

¿Algún otro pensamiento?


No solo Java, sino cualquier lenguaje de procedimiento : procedimental , esa es la clave.

DB2 es un álgebra relacional, no un lenguaje de programación. Si necesita hacer algo complejo, es mejor utilizar un lenguaje de procedimientos que tratar de convertir SQL en algo que no debe ser.

En realidad usamos REXX para nuestro trabajo DB2 / z, pero he visto a los chicos usar bash en el mainframe para crear prototipos rápidamente. Algunos que solo usan SQL crean todas estas tablas temporales horribles para almacenar cosas que se guardan mejor en estructuras y lejos de la base de datos.

Mi opinión es que la complejidad es el único factor diferenciador entre usar SQL directamente en un procedimiento almacenado y un enfoque de procedimiento. Tenemos dos reglas generales al tomar estas decisiones.

1 / Si una unidad de trabajo requiere más de dos viajes a la base de datos, la convertimos en un procedimiento almacenado.

2 / Si un procedimiento almacenado crea una tabla temporal, entonces usamos un lenguaje de procedimiento para hacerlo.



La ventaja de los procedimientos almacenados de SQL es que son portátiles para otros Db2 UDb con cambios mínimos o nulos. Pero los procedimientos externos de Db2 serían una mejor opción, ya que puede hacer más con un lenguaje de procedimiento que solo con sql. Yo diría que cobol sería una mejor opción para los procedimientos almacenados externos de DB2 que Java por las siguientes razones. 1). Podría reutilizar algún código de programas existentes. La conversión de un programa secundario de cobol a un procedimiento almacenado o un procedimiento almacenado a un programa secundario de cobol es muy fácil de lograr. 2). Podrías usar el equipo de desarrollo de cobol existente que tenga conocimiento funcional con el sistema.