Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » SQL Server »

rendimiento al enviar los parametros a una funcion definida por el usuario [sql serv

Estas en el tema de rendimiento al enviar los parametros a una funcion definida por el usuario [sql serv en el foro de SQL Server en Foros del Web. 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 ...
  #1 (permalink)  
Antiguo 06/08/2014, 12:06
 
Fecha de Ingreso: agosto-2014
Mensajes: 2
Antigüedad: 5 años, 8 meses
Puntos: 0
rendimiento al enviar los parametros a una funcion definida por el usuario [sql serv

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
  1. ------------- FUNCION ---------------------
  2.     CREATE FUNCTION [prueba].[fn_prueba](
  3.         @id_persona INT
  4.         , @periodo CHAR(6)
  5.     )
  6.     RETURNS TABLE
  7.     AS
  8.     RETURN (
  9.        
  10.         SELECT
  11.             id
  12.             , periodo
  13.             , fecha
  14.             , usuario  
  15.         FROM datos
  16.         WHERE id = @id_persona AND periodo = @periodo
  17.     )
  18. --------------------------------------------
He realizado las siguientes pruebas para ejecutar la funcion:
1) prueba 1:
Código SQL:
Ver original
  1. DECLARE @id_persona INT =1232,@periodo CHAR(6) = '201408'
  2.         SELECT * FROM prueba.fn_prueba(@id_persona,@periodo)
2) prueba 2
Código SQL:
Ver original
  1. SELECT * 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 original
  1. DECLARE @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.

Última edición por gnzsoloyo; 06/08/2014 a las 12:28
  #2 (permalink)  
Antiguo 06/08/2014, 12:10
Avatar de Libras
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: En la hermosa perla de occidente
Mensajes: 7.412
Antigüedad: 13 años, 7 meses
Puntos: 774
Respuesta: rendimiento al enviar los parametros a una funcion definida por el usuario

y si muestras el plan de ejecucion de tu codigo, no de la funcion solo del select, como haces eso, ctrl + L desde el management studio y ahi sabras donde es donde cojea el select :)
__________________
What does an execution plan say to t-sql query? Go f**k yourself, if you are not happy with me
  #3 (permalink)  
Antiguo 06/08/2014, 12:13
 
Fecha de Ingreso: agosto-2014
Mensajes: 2
Antigüedad: 5 años, 8 meses
Puntos: 0
Respuesta: rendimiento al enviar los parametros a una funcion definida por el usuario

El problema es que no lo tengo instaldo
estoy es por SqlDbx
  #4 (permalink)  
Antiguo 06/08/2014, 13:58
Avatar de iislas
Colaborador
 
Fecha de Ingreso: julio-2007
Ubicación: Mexico, D.F.
Mensajes: 6.482
Antigüedad: 12 años, 8 meses
Puntos: 180
Respuesta: rendimiento al enviar los parametros a una funcion definida por el usuario

Pequeño detalle, estas en un blog de SQL SERVER, conéctate via SSME y manda el PLAN DE EJECUCION.
__________________
MCTS Isaias Islas
  #5 (permalink)  
Antiguo 06/08/2014, 14:38
Avatar de Libras
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: En la hermosa perla de occidente
Mensajes: 7.412
Antigüedad: 13 años, 7 meses
Puntos: 774
Respuesta: rendimiento al enviar los parametros a una funcion definida por el usuario

bueno no tienes plan de ejecucion, pero.....tienes indices en la tabla??? que indices tiene???
__________________
What does an execution plan say to t-sql query? Go f**k yourself, if you are not happy with me

Etiquetas: funcion, parametros, rendimiento, select, siguiente, sql, tabla, usuario
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 18:13.