Tengo una funcion, la cual retorna una tabla, el problema esta en el tiempo que se demorando al retornar los dato. Quiero obtimizar el tiempo al ejecutar la funcion.
Creacion de la funcion:
Código SQL:
Ver original------------- FUNCION ---------------------
CREATE FUNCTION [prueba].[fn_prueba](
@id_persona INT
, @periodo CHAR(6)
)
RETURNS TABLE
AS
RETURN (
SELECT
id
, periodo
, fecha
, usuario
FROM datos
WHERE id = @id_persona AND periodo = @periodo
)
--------------------------------------------
He realizado las siguientes pruebas para ejecutar la funcion:
1) prueba 1:
Código SQL:
Ver originalDECLARE @id_persona INT =1232,@periodo CHAR(6) = '201408'
SELECT * FROM prueba.fn_prueba(@id_persona,@periodo)
2) prueba 2
Código SQL:
Ver originalSELECT * FROM prueba.fn_prueba(1232 ,'201408')
Resultado de las pruebas:
1) para la “prueba 1” la funcion se tardo en retorna los valores seis segundo (6s)
2) para la “prueba 2” la funcion se tardo en retorna los valores 1 segundo (1s)
Conclucion:
Necesito colaboracion para determinar que puede estar sucediendo y como cual puede ser la forma de optimizar la “prueba 1” . Si la unica diferncia entre las dos pruebas es declarar las varibles “
Código SQL:
Ver originalDECLARE @id_persona INT =1232,@periodo CHAR(6) = '201408'
” y despues enviarlas por el parametro a la funcion.
Si necesitan mas informacion para determinar el problema, pueden solicitarla.
Muchas gracias por la colaboracion.