Ir al contenido


Foto

¿Alguna forma de "acelerar" el trabajo de un ADOQuery?


  • Por favor identifícate para responder
3 respuestas en este tema

#1 TiammatMX

TiammatMX

    Advanced Member

  • Miembros
  • PipPipPip
  • 1.750 mensajes
  • LocationUniverso Curvo\Vía Láctea\Sistema Solar\Planeta Tierra\América\México\Ciudad de México\Xochimilco\San Gregorio Atlapulco\Home

Escrito 11 agosto 2011 - 03:53

Chavos del foro, ¿alguno tiene conocimiento de cómo puedo agilizar un TADOQuery para que no tarde MUCHO tiempo en devolver un dataset? Tengo un TADOQuery que llama a un Stored Procedure que produce un dataset. Y se tarda 45 segundos en devolverlo.

Usando Delphi 6, MS SQL Server y los componentes normales de acceso a base de datos ADO.
  • 0

#2 Rolphy Reyes

Rolphy Reyes

    Advanced Member

  • Moderadores
  • PipPipPip
  • 2.092 mensajes
  • LocationRepública Dominicana

Escrito 12 agosto 2011 - 06:33

Saludos.

Para mejorar el desempeño de un proceso va a depender de muchos factores.  Pero puedes revisar lo que le cuesta a SQL Server ejecutar tu SP y ver si le "caben" algunos indices.

Si el uso del DataSet resultante se utilizaría para recorrerlo en una dirección puedes cambiar el valor de la propiedad CursorType a ctOpenForwardOnly.  A su vez puedes revisar la propiedad ExecuteOptions.

Prueba y comenta! (y)
  • 0

#3 Khronos

Khronos

    Advanced Member

  • Miembro Platino
  • PipPipPip
  • 56 mensajes

Escrito 12 agosto 2011 - 07:49

También puede ser que la consulta SQL no esté bien optimizada o que sea muy pesada...


Saludos.
  • 0

#4 TiammatMX

TiammatMX

    Advanced Member

  • Miembros
  • PipPipPip
  • 1.750 mensajes
  • LocationUniverso Curvo\Vía Láctea\Sistema Solar\Planeta Tierra\América\México\Ciudad de México\Xochimilco\San Gregorio Atlapulco\Home

Escrito 12 agosto 2011 - 08:12

Saludos.

Para mejorar el desempeño de un proceso va a depender de muchos factores.  Pero puedes revisar lo que le cuesta a SQL Server ejecutar tu SP y ver si le "caben" algunos indices.

Si el uso del DataSet resultante se utilizaría para recorrerlo en una dirección puedes cambiar el valor de la propiedad CursorType a ctOpenForwardOnly.  A su vez puedes revisar la propiedad ExecuteOptions.

Prueba y comenta!

Lo intento el día de hoy y les comento el resultado. Me interesa mucho como para dejarlo al olvido.

También puede ser que la consulta SQL no esté bien optimizada o que sea muy pesada...


Saludos.


En parte es ésto..., pero el detalle es que no hay manera de "bajarle" el proceso por que no da el resultado deseado.
  • 0




IP.Board spam blocked by CleanTalk.