Skip to main content

Creación de procedimientos almacenados para su servidor SQL

Procedimientos Almacenados | Curso de SQL Server #13 (Abril 2025)

Procedimientos Almacenados | Curso de SQL Server #13 (Abril 2025)
Anonim

Microsoft SQL Server proporciona el mecanismo de procedimiento almacenado para simplificar el proceso de desarrollo de la base de datos al agrupar las instrucciones Transact-SQL en bloques manejables. Los procedimientos almacenados son apreciados por la mayoría de los desarrolladores de SQL Server, quienes consideran que la eficiencia y los beneficios de seguridad que obtienen valen la pena de la inversión inicial en el tiempo.

Beneficios de utilizar procedimientos almacenados

¿Por qué debería un desarrollador utilizar procedimientos almacenados?

Aquí están los beneficios clave de esta tecnología:

  • Ejecución precompilada: SQL Server compila cada procedimiento almacenado una vez y luego vuelve a utilizar el plan de ejecución. Esto resulta en un gran aumento de rendimiento cuando los procedimientos almacenados se llaman repetidamente.
  • Reducción del tráfico cliente / servidor: Si el ancho de banda de la red es una preocupación en su entorno, le complacerá saber que los procedimientos almacenados pueden reducir las consultas SQL largas a una sola línea que se transmite por cable.
  • Reutilización eficiente de código y abstracción de programación: Los procedimientos almacenados pueden ser utilizados por múltiples usuarios y programas cliente. Si los utiliza de manera planificada, descubrirá que el ciclo de desarrollo lleva menos tiempo.
  • Controles de seguridad mejorados: Puede otorgar a los usuarios permiso para ejecutar un procedimiento almacenado independientemente de los permisos de la tabla subyacente.

Los procedimientos almacenados son similares a las funciones definidas por el usuario, pero existen diferencias sutiles.

Estructura

Los procedimientos almacenados son similares a los constructos vistos en otros lenguajes de programación.

Aceptan datos en forma de parámetros de entrada que se especifican en el momento de la ejecución. Estos parámetros de entrada (si se implementan) se utilizan en la ejecución de una serie de declaraciones que producen algún resultado. Este resultado se devuelve al entorno de llamada mediante el uso de un conjunto de registros, parámetros de salida y un código de retorno.

Esto puede sonar como un bocado, pero encontrará que los procedimientos almacenados son bastante simples.

Ejemplo

Veamos un ejemplo práctico relacionado con la tabla denominada inventario que se muestra al final de esta página. Esta información se actualiza en tiempo real, y los gerentes de almacén están revisando constantemente los niveles de los productos almacenados en su almacén y disponibles para su envío. En el pasado, cada administrador ejecutaba consultas similares a las siguientes:

SELECCIONE Producto, CantidadDe inventarioDONDE Almacén = 'FL'

Esto resultó en un rendimiento ineficiente en el servidor SQL. Cada vez que un administrador de almacén ejecutaba la consulta, el servidor de la base de datos se veía obligado a volver a compilar la consulta y ejecutarla desde cero. También requería que el administrador del almacén tuviera conocimiento de SQL y permisos apropiados para acceder a la información de la tabla.En su lugar, el proceso se puede simplificar mediante el uso de un procedimiento almacenado. Aquí está el código para un procedimiento llamado sp_GetInventory que recupera los niveles de inventario para un almacén determinado.

CREAR PROCEDIMIENTO sp_GetInventory@ ubicación varchar (10)COMOSELECCIONE Producto, CantidadDe inventarioDONDE Almacén = @ubicación

El gerente de almacén de Florida puede acceder a los niveles de inventario emitiendo el comando:

EJECUTAR sp_GetInventory 'FL'

El gerente de almacén de Nueva York puede usar el mismo procedimiento almacenado para acceder al inventario de esa área:

EJECUTAR sp_GetInventory 'NY'

Por supuesto, este es un ejemplo simple, pero los beneficios de la abstracción se pueden ver aquí. El administrador del almacén no necesita comprender SQL o el funcionamiento interno del procedimiento. Desde una perspectiva de rendimiento, el procedimiento almacenado hace maravillas. El SQL Server crea un plan de ejecución una vez y luego lo reutiliza insertando los parámetros apropiados en el momento de la ejecución.Ahora que ha aprendido los beneficios de los procedimientos almacenados, salga y úselos.

Pruebe algunos ejemplos y mida las mejoras de rendimiento logradas. ¡Se sorprenderá!

Tabla de inventario

CARNÉ DE IDENTIDADProductoAlmacénCantidad
142Judías verdesNueva York100
214ChícharosFlorida200
825MaízNueva York140
512Habas de limaNueva York180
491Los tomatesFlorida80
379SandíaFlorida85