SQL Server - Procedimientos Almacenados
SQL Server - Procedimientos Almacenados
SQL Server - Procedimientos Almacenados
Procedimientos almacenados
• Es fundamental en la gestión de BD
– velocidad
– eficiencia
• WHERE fecha>@fecha
• …
– END
• ALTER PROCEDURE nombre
• @pais nvarchar(15)
• WITH…
• WHERE Country>@pais
• …
– END
• exec clienteporpais ‘Spain’
• Para probarlo
– exec nombreprocedimiento ‘1/1/1999’
• END
GO
• para probar el Procedimiento almacenado
– debes indicar dónde se coloca el parametro de
salida
• ejecutamos el codigo en consulta
– DECLARE @respuesta int
– EXEC nombreprocedimento anterior 10,20,
@respuesta OUTPUT
– SELECT ‘la solución es ‘ , @respuesta
Optimizar procedimientos almacenados
• cuando sql ejecuta una consulta por primera vez
– antes la compila
• analiza la consulta para ver lo que se intenta conseguir
• mira las tablas, columnas que se ponen en where
• plan de ejecución
• lo almacena en la cache de procedimientos
– area de ram dedicado para esto
– si cambiamos algo en la consulta
» recompila
» pero a veces errores pq debe comenzar desde principio
• Obligar a Sql a compilar de nuevo un
procedimiento almacenado
– crearlo con la instrucción WITH RECOMPILE
• obliga a crear un nuevo plan de ejecución
• cuando el procedimiento almacenado tiene parametros
de entrada que cambian dráticamente
• CREATE PROCEDURE nombreprocedimiento
• @fecha [datetime] = ‘1/1/2003’
• WITH RECOMPILE, EXECUTE AS CALLER
• AS
BEGIN
SELECT Nombre, Color, precio, fechaventa
FROM productos
WHERE fechaventa> @fecha
ORDER BY fechaventa, Nombre
END
GO
• tb puedes dejar el procedimiento original y al
ejecutar
• devolvera 1 o 0
• xp_fixeddrives
– muestra letras de unidades de discos fijos y
cuantos MB libres tienen
Ejecutar procedimientos extendidos