[Code] Al ejecutar en SSMS es más rápido que al crearlo como procedimiento almacenado

Un caso extraño y que sucede más a menudo de lo esperado es cuando un procedimiento almacenado tarda más en ejecutarse que al hacer el mismo ejercicio en el editor de consultas de SSMS, en este artículo presentaré una técnica aprendida recientemente

 

El tema está con los parámetros: cuando tengo un procedimiento con el siguiente esquema:

create procedure MiProcedimiento
@Valor1 int,
@Valor2 varchar(50),
@valor3 date
as
begin 

............

y dicho procedimiento tarda mucho tiempo y no tarda mucho menos en SSMS sugiero intentar lo siguiente:

create procedure MiProcedimiento
@Valor1 int,
@Valor2 varchar(50),
@valor3 date
as
begin 

declare 
@Valor1Interna int = @Valor1,
@Valor2Interna varchar(50) = @Valor2,
@valor3Interna date =@Valor3

--Cuerpo del procedimiento

End

En mi experiencia he encontrado que al aplicar este truco el rendimiento del procedimiento es el mismo que el encontrado en SSMS, declarar las variables internamente favorece el rendimiento, no es necesario hacerlo en todas las ocaciones, pero resuelve el problema planteado

 

Espero sea de ayuda,

FREDDY LEANDO ANGARITA CASTELLANOS
Sql Server MVP

 

 

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *