Hola gente!,
Estoy con una consulta que utiliza una funcion, y esa funcion a su vez
utiliza una vista. Haciendo esto tarda unos 50 segundos en ejecutarse,
pero si copio el contenido de la funcion y lo pongo como un subselect
de la consulta principal tarda 4 segundos o menos...
Lo explico mejor, esto tarda 50 seg:
select dbo.Funcion1(campo1)
from tabla
y la Funcion1 es esta:
CREATE FUNCTION [dbo].[Funcion1]
(
@campo1 int
)
RETURNS int
AS
BEGIN
DECLARE @var int
SELECT @var = sum(...)
FROM vista
WHERE campo1 = @campo1
RETURN @var
END
Ahora, si cambio lo anterior por esto, tarda 4 seg:
select ( SELECT sum(...)
FROM vista v
WHERE v.campo1 = t.campo1 )
from tabla t
Solamente para sacarme la duda, alguien sabe que puede ser???
Gracias!,
Diego