Procedementos almacenados en SQL Server

Os procedementos almacenados proporcionan alta eficiencia e beneficios de seguridade

Microsoft SQL Server proporciona o mecanismo de procedemento almacenado para simplificar o proceso de desenvolvemento da base de datos agrupando as instrucións de Transact-SQL en bloques manexables. Os procedementos almacenados son apreciados pola maioría dos desenvolvedores de SQL Server que atopan a eficiencia e os beneficios de seguridade que recolle merecen o investimento inicial no tempo.

Beneficios do uso de procedementos almacenados

Por que un desenvolvedor debe utilizar os procedementos almacenados?

Estes son os principais beneficios desta tecnoloxía:

Os procedementos almacenados son similares ás funcións definidas polo usuario, pero hai diferenzas sutís.

Estrutura

Os procedementos almacenados son similares aos construídos noutros idiomas de programación.

Eles aceptan datos en forma de parámetros de entrada que se especifican no tempo de execución. Estes parámetros de entrada (se se implementan) son utilizados na execución dunha serie de declaracións que producen algún resultado. Este resultado volve ao ambiente de chamada mediante o uso dun conxunto de rexistros, parámetros de saída e un código de retorno.

Isto pode soar como un bocado, pero atoparás que os procedementos almacenados son bastante sinxelos.

Exemplo

Vexamos un exemplo práctico relacionado coa táboa denominada inventario que se mostra na parte inferior desta páxina. Esta información actualízase en tempo real, e os xestores de almacenaxe comproban constantemente os niveis de produtos almacenados no seu almacén e están dispoñibles para o seu envío. No pasado, cada xestor executaría consultas similares ás seguintes:

SELECCIONAR produto, cantidade
FROM Inventory
ONDE Warehouse = 'FL'

Isto deu como resultado un rendemento ineficiente no servidor SQL. Cada vez que un xestor de almacéns executou a consulta, o servidor de bases de datos forzouse a recompilar a consulta e executala desde cero. Tamén esixiu que o xestor do almacén tivese coñecemento de SQL e permisos axeitados para acceder á información da táboa.

No seu canto, o proceso pódese simplificar mediante o uso dun procedemento almacenado. Aquí está o código dun procedemento chamado sp_GetInventory que recupera os niveis de inventario dun determinado almacén.

CREAR PROCEDEMENTO sp_GetInventory
@location varchar (10)
AS
SELECCIONAR produto, cantidade
FROM Inventory
Onde almacén = @ localización

O xestor de almacéns de Florida pode acceder aos niveis de inventario emitindo o comando:

EXECUTE sp_GetInventory 'FL'

O xestor de almacéns de Nova York pode usar o mesmo procedemento almacenado para acceder ao inventario desta área:

EXECUTE sp_GetInventory 'NY'

Concedido, este é un exemplo sinxelo, pero os beneficios da abstracción pódense ver aquí. O administrador do almacén non necesita comprender SQL nin o funcionamento interno do procedemento. Desde unha perspectiva de rendemento, o procedemento almacenado fai marabillas. O SQL Server crea un plan de execución unha vez e despois o reutiliza conectando os parámetros axeitados no momento de execución.

Agora que aprendeu os beneficios dos procedementos almacenados, sae alí e utilízaos.

Proba algúns exemplos e mide as melloras do rendemento alcanzadas, ¡sorprenderás!

Táboa de inventario

ID Produto Almacén Cantidade
142 Faba verde NY 100
214 Peas FL 200
825 Millo NY 140
512 Faba de Lima NY 180
491 Tomates FL 80
379 Sandía FL 85