rendimiento al enviar los parametros a una funcion definida por el usuario [sql server 2008r2]
Publicado por holas12 (1 intervención) el 06/08/2014 19:56:01
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:
------------- FUNCION ---------------------
He realizado las siguientes pruebas para ejecutar la funcion:
Conclucion:
Si necesitan mas informacion para determinar el problema, pueden solicitarla.
Muchas gracias por la colaboracion.
Creacion de la funcion:
------------- FUNCION ---------------------
CREATE FUNCTION [prueba].[fn_prueba](
RETURNS TABLE
AS
RETURN (
SELECT
FROM datos
WHERE id = @id_persona AND periodo = @periodo
)
--------------------------------------------@id_persona INT
, @periodo CHAR(6)
), @periodo CHAR(6)
RETURNS TABLE
AS
RETURN (
SELECT
id
, periodo
, fecha
, usuario
, periodo
, fecha
, usuario
FROM datos
WHERE id = @
)
He realizado las siguientes pruebas para ejecutar la funcion:
1) prueba 1:
Resultado de las pruebas: DECLARE @id_persona INT =1232,@periodo CHAR(6) = '201408'
SELECT * FROM prueba.fn_prueba(@id_persona,@periodo)
2) prueba 2 SELECT * FROM prueba.fn_prueba(@id_persona,@periodo)
SELECT * FROM prueba.fn_prueba(1232 ,'201408')
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)
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 “DECLARE @id_persona INT =1232,@periodo CHAR(6) = '201408'
” y despues enviarlas por el parametro a la funcion.
” y despues enviarlas por el parametro a la funcion.
Si necesitan mas informacion para determinar el problema, pueden solicitarla.
Muchas gracias por la colaboracion.
Valora esta pregunta


0