CREATE PROCEDURE dbo.Test (@p varchar(10))
AS
DECLARE @param varchar(10)
SET @param = @p + '%'
SELECT * FROM table1 t1
INNER JOIN table2 t2 on t1.id = tr.id
WHERE t2.desc LIKE @param
Tengo una consulta que es similar a uno por encima y cuando se utiliza en este procedimiento almacenado que se ejecuta indefinidamente sin dar ninguna salida. Pero si uso la misma consulta como,
SELECT * FROM table1 t1
INNER JOIN table2 t2 on t1.id = tr.id
WHERE t2.desc LIKE 'A%' -- notice no parameter here
Esto se ejecuta en menos de un segundo.
Mi tabla2 tiene 140K registros y tabla1 algunos 250K
Cualquier idea de lo que podría ser la causa como operador para correr lento?
¿Has mirado un plan de explicación para la consulta? –
Según sus pruebas, no parece tener nada que ver con la palabra clave similar, ya que incluso la versión rápida incluye ese operador. – JohnFx
intenté ejecutar ambos y se ejecuta menos de un segundo cuando utilizo los parámetros directamente. –