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

Consulta con error de tiempo de espera caducado

Estas en el tema de Consulta con error de tiempo de espera caducado en el foro de SQL Server en Foros del Web. Buenas, tengo la siguiente consulta SQL: SELECT Remota, COUNT(Remota) AS conta FROM Usr_Eventos WHERE (TipoMedida = 305) AND Fecha>='01/04/2009' AND Fecha<='30/04/2009' GROUP BY Remota; Cada ...
  #1 (permalink)  
Antiguo 17/07/2009, 00:53
 
Fecha de Ingreso: noviembre-2007
Mensajes: 44
Antigüedad: 16 años, 5 meses
Puntos: 0
Consulta con error de tiempo de espera caducado

Buenas, tengo la siguiente consulta SQL:

SELECT Remota, COUNT(Remota) AS conta
FROM Usr_Eventos
WHERE (TipoMedida = 305) AND Fecha>='01/04/2009' AND Fecha<='30/04/2009'
GROUP BY Remota;

Cada vez que la ejecuto, ya sea desde visual basic .NET o desde SQL Server 2005 me sale el siguiente error:

valor de tiempo de espera caducado el periodo de tiempo de espera caducó antes de completar la operación o el servidor no responde

Como puedo solucionarlo?

Muchas gracias
  #2 (permalink)  
Antiguo 17/07/2009, 08:01
Avatar de flaviovich  
Fecha de Ingreso: agosto-2005
Ubicación: Lima, Peru
Mensajes: 2.951
Antigüedad: 18 años, 8 meses
Puntos: 39
Respuesta: Consulta con error de tiempo de espera caducado

Prueba agregando (NOLOCK) despues de FROM Usr_Eventos.
__________________
No repitamos temas, usemos el Motor de busquedas
Plantea bien tu problema: Ayúdanos a ayudarte.
  #3 (permalink)  
Antiguo 17/07/2009, 09:14
Avatar de iislas
Colaborador
 
Fecha de Ingreso: julio-2007
Ubicación: Mexico, D.F.
Mensajes: 6.482
Antigüedad: 16 años, 9 meses
Puntos: 180
Respuesta: Consulta con error de tiempo de espera caducado

Otro tip, cambia el formato de tu fecha a YYYYMMDD

WHERE (TipoMedida = 305)
AND Fecha >= '20090401' AND Fecha <= '20090430'

Ademas, si quieres ayudar a tu motor a la interpretacion del codigo y un mejor plan de ejecucion, siempre deja espacios entre los signos de comparacion.

Saludos
  #4 (permalink)  
Antiguo 17/07/2009, 09:51
Avatar de flaviovich  
Fecha de Ingreso: agosto-2005
Ubicación: Lima, Peru
Mensajes: 2.951
Antigüedad: 18 años, 8 meses
Puntos: 39
Respuesta: Consulta con error de tiempo de espera caducado

Primera vez que me entero de los espacios entre signos.
Donde leiste eso?
__________________
No repitamos temas, usemos el Motor de busquedas
Plantea bien tu problema: Ayúdanos a ayudarte.
  #5 (permalink)  
Antiguo 17/07/2009, 12:36
Avatar de iislas
Colaborador
 
Fecha de Ingreso: julio-2007
Ubicación: Mexico, D.F.
Mensajes: 6.482
Antigüedad: 16 años, 9 meses
Puntos: 180
Respuesta: Consulta con error de tiempo de espera caducado

ja, lo lei en el Novedades ..........

No, esta en las mejores practicas sobre el desarrollo de aplicaciones con T-SQL
  #6 (permalink)  
Antiguo 17/07/2009, 12:56
Avatar de Dradi7  
Fecha de Ingreso: junio-2008
Ubicación: Peru - Lima
Mensajes: 1.518
Antigüedad: 15 años, 10 meses
Puntos: 220
Respuesta: Consulta con error de tiempo de espera caducado

como????

de donde obteniste eso
__________________
La clave de todo triunfador es eliminar todas sus excusas y sus limitaciones
  #7 (permalink)  
Antiguo 17/07/2009, 13:16
Avatar de iislas
Colaborador
 
Fecha de Ingreso: julio-2007
Ubicación: Mexico, D.F.
Mensajes: 6.482
Antigüedad: 16 años, 9 meses
Puntos: 180
Respuesta: Consulta con error de tiempo de espera caducado

Dradi7, no se dice "obteniste", si no "obtuviste".

4.10 SQL Server Best Practices

33. Los operadores de la cláusula WHERE afectan la velocidad en la resolución de una consulta. Se debe usar mas el operador “=” y usar menos el operador “<>” (en lo posible). En su orden de rapidez son:
 =
 >, >=, <, <=
 LIKE
 <>

Se aconseja, que para una mejor interpretacion del codigo, se utilicen espacios de separacion entre las clausulas a comparar, ejemplo:

WHERE Filax>10

Por

WHERE Filax > 10
  #8 (permalink)  
Antiguo 17/07/2009, 13:44
Avatar de Dradi7  
Fecha de Ingreso: junio-2008
Ubicación: Peru - Lima
Mensajes: 1.518
Antigüedad: 15 años, 10 meses
Puntos: 220
Respuesta: Consulta con error de tiempo de espera caducado

perdon por la falta de escritura por la prisa se me salto lo que escribia

SQL Server Best Practices lo voy a revisar y no sabia nada sobre los espacios en blanco pero es buena la recomendacion para las mejores practicas de SQL
gracias por la informacion
__________________
La clave de todo triunfador es eliminar todas sus excusas y sus limitaciones
  #9 (permalink)  
Antiguo 17/07/2009, 15:18
Avatar de flaviovich  
Fecha de Ingreso: agosto-2005
Ubicación: Lima, Peru
Mensajes: 2.951
Antigüedad: 18 años, 8 meses
Puntos: 39
Respuesta: Consulta con error de tiempo de espera caducado

Esta muy interesante, y muy util, aunque primero lo voy a comprobar.
En todo caso, veo esas SQL Server Best Practices como una "salida" a un defecto de los programadores de Microsoft.
Gracias por el dato!
__________________
No repitamos temas, usemos el Motor de busquedas
Plantea bien tu problema: Ayúdanos a ayudarte.
  #10 (permalink)  
Antiguo 17/07/2009, 15:33
Avatar de iislas
Colaborador
 
Fecha de Ingreso: julio-2007
Ubicación: Mexico, D.F.
Mensajes: 6.482
Antigüedad: 16 años, 9 meses
Puntos: 180
Respuesta: Consulta con error de tiempo de espera caducado

mmmmmm, flaviovich, yo no calificaria como un DEFECTO a la programacion o programadores, en lo particular, cuando me entere de esta situacion, en lo peronsal, ya aplicaba dicha recomendacion, pero bueno, es interesante conocer los diferentes puntos de vista.
  #11 (permalink)  
Antiguo 17/07/2009, 15:52
Avatar de flaviovich  
Fecha de Ingreso: agosto-2005
Ubicación: Lima, Peru
Mensajes: 2.951
Antigüedad: 18 años, 8 meses
Puntos: 39
Respuesta: Consulta con error de tiempo de espera caducado

Me referia a las herramientas o metodologias usadas para interpretar el codigo sql.
Sabes por que te digo; has programado en perl?
En perl, mediante las expresiones regulares tu puedes identificar cualquier cadena segun requerimiento, sin importar cuantos espacios hay entre simbolos, etc.
Seguro me estoy equivocando y la interprecion de codigo se hace en un nivel mas bajo.
Tu sabes como lo hace?
__________________
No repitamos temas, usemos el Motor de busquedas
Plantea bien tu problema: Ayúdanos a ayudarte.
  #12 (permalink)  
Antiguo 20/07/2009, 00:44
 
Fecha de Ingreso: noviembre-2007
Mensajes: 44
Antigüedad: 16 años, 5 meses
Puntos: 0
Respuesta: Consulta con error de tiempo de espera caducado

Muchas gracias por las respuestas ^^

Ahora me va más rápido!
  #13 (permalink)  
Antiguo 20/07/2009, 10:52
 
Fecha de Ingreso: abril-2009
Mensajes: 9
Antigüedad: 15 años, 1 mes
Puntos: 0
De acuerdo Respuesta: Consulta con error de tiempo de espera caducado

Cita:
Iniciado por iislas Ver Mensaje
Dradi7, no se dice "obteniste", si no "obtuviste".

4.10 SQL Server Best Practices

33. Los operadores de la cláusula WHERE afectan la velocidad en la resolución de una consulta. Se debe usar mas el operador “=” y usar menos el operador “<>” (en lo posible). En su orden de rapidez son:
 =
 >, >=, <, <=
 LIKE
 <>

Se aconseja, que para una mejor interpretacion del codigo, se utilicen espacios de separacion entre las clausulas a comparar, ejemplo:

WHERE Filax>10

Por

WHERE Filax > 10
Muy buen aporte no me iré (al menos hoy) sin aprender algo nuevo
se aplica también al resto de productos de microsoft como .Net ?
  #14 (permalink)  
Antiguo 20/07/2009, 13:11
Avatar de iislas
Colaborador
 
Fecha de Ingreso: julio-2007
Ubicación: Mexico, D.F.
Mensajes: 6.482
Antigüedad: 16 años, 9 meses
Puntos: 180
Respuesta: Consulta con error de tiempo de espera caducado

Tal vez, creo que va por ahi del codigo interpretado........
  #15 (permalink)  
Antiguo 23/07/2009, 04:56
 
Fecha de Ingreso: noviembre-2007
Mensajes: 44
Antigüedad: 16 años, 5 meses
Puntos: 0
Respuesta: Consulta con error de tiempo de espera caducado

Después de varias pruevas he visto que si que he rebajado el tiempo de la consulta sql pero no es suficiente, cuando el intervalo de fechas es de 2 meses tarda mucho tiempo. La consulta queda así des de la última modificación:

SELECT Remota, Fecha, COUNT(Remota) AS conta
FROM Usr_Eventos WITH (NOLOCK)
WHERE (TipoMedida = 305) AND (Fecha BETWEEN '1/06/2009' AND '18/07/2009')
GROUP BY Remota, Fecha


Alguna idea para reducir el tiempo?
  #16 (permalink)  
Antiguo 23/07/2009, 08:36
Avatar de iislas
Colaborador
 
Fecha de Ingreso: julio-2007
Ubicación: Mexico, D.F.
Mensajes: 6.482
Antigüedad: 16 años, 9 meses
Puntos: 180
Respuesta: Consulta con error de tiempo de espera caducado

AND (Fecha >= '20090601' AND Fecha <= '20090718')

Supongo que TipoMedia y Fecha, son indices, cierto????
  #17 (permalink)  
Antiguo 24/07/2009, 04:26
 
Fecha de Ingreso: noviembre-2007
Mensajes: 44
Antigüedad: 16 años, 5 meses
Puntos: 0
Respuesta: Consulta con error de tiempo de espera caducado

SELECT Remota, COUNT(Remota) AS conta
FROM Usr_Eventos WITH(NOLOCK)
WHERE Fecha BETWEEN '20090716' AND '20090718' AND (TipoMedida = 305)
GROUP BY Remota;

El tiempo de ejecución prácticamente no varia, lo he cronometrado y antes me hacia 13,03 segundos y ahora son 12,80 segundos.

Alguna idea para reducir el tiempo de la consulta? Y sobre el tema indices, el problema es que Usr_Eventos no es una tabla, sinó una vista y he de decir que no tengo permisos sobre las tablas, sólo tengo permisos para acceder a la vista.


PD: Que da mas rendimiento, BETWEEN o (Fecha>= x AND Fecha < y)

Última edición por oscuros; 24/07/2009 a las 04:59
  #18 (permalink)  
Antiguo 24/07/2009, 11:56
Avatar de iislas
Colaborador
 
Fecha de Ingreso: julio-2007
Ubicación: Mexico, D.F.
Mensajes: 6.482
Antigüedad: 16 años, 9 meses
Puntos: 180
Respuesta: Consulta con error de tiempo de espera caducado

deja de utilizar BETWEEN y usa AND, tal cual te lo envie
  #19 (permalink)  
Antiguo 28/07/2009, 00:48
 
Fecha de Ingreso: noviembre-2007
Mensajes: 44
Antigüedad: 16 años, 5 meses
Puntos: 0
Respuesta: Consulta con error de tiempo de espera caducado

De acuerdo, cambio el between por fecha>= And fecha < pero el tiempo de espera se reduce en nada y menos...

ya no se que hacer
  #20 (permalink)  
Antiguo 28/07/2009, 08:53
Avatar de iislas
Colaborador
 
Fecha de Ingreso: julio-2007
Ubicación: Mexico, D.F.
Mensajes: 6.482
Antigüedad: 16 años, 9 meses
Puntos: 180
Respuesta: Consulta con error de tiempo de espera caducado

¿Indices?, hay indices........
  #21 (permalink)  
Antiguo 26/04/2012, 08:31
 
Fecha de Ingreso: enero-2009
Mensajes: 178
Antigüedad: 15 años, 4 meses
Puntos: 2
Respuesta: Consulta con error de tiempo de espera caducado

Donde encontraste esas recomendaciones sobre T-SQL?
Gracias
  #22 (permalink)  
Antiguo 27/04/2012, 10:31
 
Fecha de Ingreso: agosto-2006
Mensajes: 56
Antigüedad: 17 años, 8 meses
Puntos: 0
Respuesta: Consulta con error de tiempo de espera caducado

¿LA clausula with(NOLOCK) la puedo colocaren una instrucción insert?
  #23 (permalink)  
Antiguo 27/04/2012, 11:02
Avatar de Libras
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: En la hermosa perla de occidente
Mensajes: 7.412
Antigüedad: 17 años, 8 meses
Puntos: 774
Respuesta: Consulta con error de tiempo de espera caducado

Madre mia NoLock en un insert? un nolock es para evitar que si estas insertando, actualizando o borrando el select se espere hasta que los el query que inserta se termine de ejecutar...si aplicas un nolock en un insert, update o delete simplemente no te deja ya que el nolock es para regresarte los datos que estan ucommited para un insert eso no tendria caso :P.

Saludos!
__________________
What does an execution plan say to t-sql query? Go f**k yourself, if you are not happy with me
  #24 (permalink)  
Antiguo 27/04/2012, 12:02
Avatar de iislas
Colaborador
 
Fecha de Ingreso: julio-2007
Ubicación: Mexico, D.F.
Mensajes: 6.482
Antigüedad: 16 años, 9 meses
Puntos: 180
Respuesta: Consulta con error de tiempo de espera caducado

NOLOCK, se empieza a dejar de utilizar en 2005 y superiores, ya que esta instruccion es por pagina, te recomienda que leas un poco sobre ROWLOCK.
__________________
MCTS Isaias Islas
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 02:39.