sql >> Base de Datos >  >> RDS >> Sqlserver

¿Qué es el procedimiento almacenado y por qué procedimiento almacenado?

Hola,

En este artículo hablaré sobre el procedimiento almacenado que debe usarse en proyectos grandes.

Creo que definitivamente debería usarse en proyectos a gran escala porque la diferencia de los procedimientos almacenados solo ocurre en proyectos que requieren rendimiento y eficiencia a gran escala.

El procedimiento almacenado en general, podemos describirlo de la siguiente manera:declaraciones SQL que no es necesario compilar después de la primera compilación y se mantienen en el servidor de la base de datos. Por otro lado, podemos decir declaraciones T-SQL almacenadas en el servidor de base de datos en lugar de la capa de aplicación.

Los procedimientos almacenados, como en otros lenguajes de programación, se pueden ejecutar sin parámetros. También se le llama SP cuando se usa en el desarrollo de aplicaciones. Todas las operaciones de la base de datos se pueden realizar con procedimientos almacenados.

Una de las características más hermosas del uso de procedimientos almacenados es quizás separar los códigos del lenguaje de programación de las consultas de la base de datos DML (lenguaje de manipulación de la base de datos). Además, una vez que haya escrito y compilado un SP, puede usarlo muchas veces.

En general, explicaré las ventajas de los procedimientos almacenados y por qué se usan demasiado de la siguiente manera.

  • Los procedimientos almacenados son muy rápidos porque se mantienen en el servidor de la base de datos, la razón es que no necesitan compilarse una vez más después de compilar una sola vez. Sin embargo, el código SQL que envió en la capa de la aplicación debe compilarse una y otra vez en cada transacción. Esta es una gran pérdida de tiempo para proyectos a gran escala y servidores que atienden a más de 1 cliente.
  • Proporciona excelentes ahorros en el tráfico de red.
  • Proporciona parametrización automática a sentencias SQL. En lugar de reemplazar todos los parámetros en el lugar donde pasan las declaraciones SQL, solo puede modificar los parámetros o reglas dentro del SP. Esto también corrige la complejidad de las aplicaciones que permite que su aplicación sea modular.
  • Puede usar comandos T-SQL además de expresiones de programación (if, while, for, etc.) al escribir procedimientos almacenados.
  • Los procedimientos almacenados son más confiables porque solo los parámetros de entrada y salida aparecen en la capa de aplicación. Si pensamos que el acceso al servidor de la base de datos se suele realizar con el ID de usuario y la contraseña, podemos decir que usar SP es un elemento de confianza para nuestros códigos.

He explicado las ventajas de los procedimientos almacenados que me vinieron a la mente anteriormente. Casi todas las aplicaciones de software no usan códigos sql normales en general.

Como dije anteriormente, ser administrado desde un solo punto y usarlo en más de un lugar y no poder ver a otras personas fácilmente hace que los SP sean muy ventajosos.

Especialmente cuando pensamos en el tráfico de red, enviar muchas líneas de comandos SQL enviados por el cliente al servidor en lugar de enviar el nombre del procedimiento almacenado al servidor una vez, significa que el tráfico de red se alivia mucho.

Hay cuatro tipos de procedimientos almacenados.

  1. Procedimiento almacenado del sistema:  están en la base de datos maestra y sp_ El prefijo se utiliza para estos procedimientos almacenados. Se utilizan en trabajos administrativos relacionados con el sistema en la base de datos.
  2. Procedimiento almacenado basado en el usuario: Estos procedimientos almacenados se utilizan para nuestras aplicaciones. Puede eliminar o cambiar estos SP.
  3. Procedimiento almacenado extendido: Generalmente, se compila como .dll y es un tipo de procedimiento almacenado que compila la funcionalidad del servidor de base de datos. se agrega solo a la base de datos maestra.
  4. Procedimiento CLR almacenado: Es una especie de procedimiento almacenado desarrollado en un entorno CLR utilizando cualquier lenguaje.