Procedimientos vs T-SQL en SQL Server

stored_procedures_2¿Por qué recomendar el uso de los procedimientos almacenados en lugar de las sentencias T-SQL? Los procedimientos almacenados deben de ser una de las herramientas reinas de los motores de bases de datos (cómo es el caso de SQL Server) y de los DBA ¿Por qué?

  1. Mayor optimización para el motor: Este mismo no debe compilar (a menos que se lo indiquemos) cada instrucción T-SQL, sino que ya la tiene compilada y esto genera mucho mayor rendimiento. También se da el caso que el procedimiento reside en nuestro servidor por lo cual el trafico de red es muy inferior al que podemos hacer si mandamos las T-SQL desde nuestro cliente.
  2. Seguridad: Los procedimientos no solo son buenos por rendimiento, sino que nos permiten hacer las operaciones no directamente sobre nuestras tablas.
  3. Reutilización de código: El uso de procedimientos es muy útil para esto, si la consulta de rangos de fechas para buscar los pedidos en firme de un cliente por ejemplo, la necesitamos en mas de una aplicación, entonces podemos reutilizar el procedimiento sin problemas
  4. Reglas de negocio: En un procedimientos podemos poner reglas de negocio y así que nuestras aplicaciones se beneficien de ello, ojo con esto, no abusar, si debes usar cursores o cosas complicadas donde el desempeño este en juego, es preferible hacerlo en un COM, ahora de no ser así los procedimientos son muy buenos y óptimos para todo esto.

Una cosa adicional al uso de procedimientos almacenados, es que si no lo hacemos así y lo ponemos en la aplicación, luego si hay que cambiar algo seguramente debamos recompilar nuestras aplicaciones y esto es muy difícil de mantener, mientras que con procedimientos en la mayoría de los casos las modificaciones (si no tienen nuevos parámetros de entrada o salida) no afectan a la aplicación.

Comentarios