Inicio > Transact-SQL > Regenere el plan de ejecución (WITH RECOMPILE)

Regenere el plan de ejecución (WITH RECOMPILE)


Para que el motor regenere el plan de ejecución cada vez que sea ejecutado un Procedimiento almacenado, debemos crearlo con la opción WITH RECOMPILE.

El costo es que el SQL Server pierde tiempo en recompilar en vez de usar la cache, pero si este costo es menor al de ejecutar un plan ineficiente, se debe hacer.

CREATE PROCEDURE dbo.spPruebaRecompile
@Param INT
WITH RECOMPILE
AS
BEGIN
  SELECT
* FROM Prueba WHERE Prueba.Id = @Param
END

Utilizar RECOMPILE dentro de una consulta (SQL Server 2005 o superior).

Solución es similar a la anterior, con la ventaja de que en vez de recompilar todo el procedimiento almacenado, el SQL  solo recompila una consulta especifica. Esto es útil cuando tenemos varias consultas en un procedimiento almacenado.

CREATE PROCEDURE dbo.spPruebaRecompileConsulta
@Param INT
AS
BEGIN
SELECT
* FROM Prueba WHERE Prueba.Id = @Param OPTION(RECOMPILE)
SELECT * FROM Consulta WHERE Consulta.Id = @Param
END

Categorías:Transact-SQL
  1. Aún no hay comentarios.
  1. No trackbacks yet.

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s

A %d blogueros les gusta esto: