Ver Mensaje Individual
  #1  
Antiguo 31-10-2013
Avatar de TiammatMX
TiammatMX TiammatMX is offline
Miembro
 
Registrado: jun 2006
Ubicación: Universo Curvo\Vía Láctea\Sistema Solar\Planeta Tierra\América\México\Puebla\Heróica Puebla de Zaragoza\Jardines de San Manuel\Home
Posts: 746
Reputación: 18
TiammatMX Va camino a la fama
Angry El siempre elusivo Query Timeout.

Estimados delphineros, buen día/tarde/noche, según aplique.

Les planteo mi problema:

Tengo éste código SQL que ejecuto dentro de mi aplicación.
Código SQL [-]
SELECT DISTINCT E2_CTRL_PAC
FROM   T4_CON_CITA
WHERE  T4_FECHA_CITA > 40537
AND    T4_FECHA_CITA < 40903
AND    T4_ASISTIO = 1
AND    T4_FALTO = 0
AND    C21_DX_CIE > -1
AND    NOT C22_DX_CIE IS NULL
AND    E2_CTRL_PAC NOT IN (SELECT DISTINCT E2_CTRL_PAC
FROM   T6_ESPECIALES
WHERE  T6_FECHA_CITA > 40537
AND    T6_FECHA_CITA < 40903
AND    T6_ASISTIO = 1
AND    T6_FALTO = 0
AND    C21_DX_CIE > -1
AND    NOT C22_DX_CIE IS NULL)
UNION ALL(
SELECT DISTINCT E2_CTRL_PAC
FROM   T6_ESPECIALES
WHERE  T6_FECHA_CITA > 40537
AND    T6_FECHA_CITA < 40903
AND    T6_ASISTIO = 1
AND    T6_FALTO = 0
AND    C21_DX_CIE > -1
AND    NOT C22_DX_CIE IS NULL
AND    E2_CTRL_PAC NOT IN (SELECT DISTINCT E2_CTRL_PAC
FROM   T4_CON_CITA
WHERE  T4_FECHA_CITA > 40537
AND    T4_FECHA_CITA < 40903
AND    T4_ASISTIO = 1
AND    T4_FALTO = 0
AND    C21_DX_CIE > -1
AND    NOT C22_DX_CIE IS NULL)
)
ORDER BY E2_CTRL_PAC

Para mayor abundamiento, tengo éste parámetro definido en "hard-code" dentro de mi aplicación:

Código Delphi [-]
      qryPacientes.CommandTimeout  := 360;
      qrySSAuxiliar.CommandTimeout := 360;
      qrySISRep.CommandTimeout     := 360;
      qryActualizar.CommandTimeout := 360;
      qrySumatoria.CommandTimeout  := 360;

Ahora, el problema es que sucede 1 de cada 3 veces un "cuelgue" del TADOQuery que contiene el SQL anterior, el cual en Microsoft SQL Server Management Studio tarda NO MÁS DE 1 MINUTO en arrojar los 80 y algo mil registros requeridos, y ésto después de ejecutar por casi 3 minutos.

¿Alguna idea, corrección, locura o maldición que me permita continuar mi desarrollo?
__________________
Felipe Eduardo Ortiz López. Delphi programmers does it recursively...

"Un programador, es un creador de universos en donde sólo él es responsable. Universos de complejidad prácticamente ilimitada que se puede crear en forma de programas de ordenador." - Joseph Weizenbaum.

Témele a los profetas... y a aquellos que están listos para morir por "la verdad", ya que como regla general hacen morir a muchos otros con ellos, frecuentemente antes que ellos, y a veces en lugar de ellos. — Umberto Eco
Responder Con Cita