![]() |
![]() |
![]() |
![]() |
![]() |
FTP | ![]() |
![]() |
CCD | ![]() |
![]() |
Buscar | ![]() |
![]() |
Trucos | ![]() |
![]() |
Trabajo | ![]() |
![]() |
Foros | ![]() |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
![]() |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
|||
|
|||
![]() Hola!!!
Soy nuevo en este foro por lo cual les doy las gracias por adelantado a quién pudiera ayudarme con lo siguiente: Tango una aplicación que al realizar la consulta de la información se tarda y finalmente manda el mensaje de Termino tiempo de espera Si el mismo script lo hago en el Administrador corporativo, directamente en la tabla me manda el mismo mensaje pero si lo hago en el analizador de consultas de SQL se tarda 35 segundos y arroja el resultado La conección la hago a través del ADOConnection en donde el CommandTimeOut y el CommandConecction estan en 0. Ojala pudieran orientarme para poder realizar las consultas sin que mande este mensaje. La tabla tiene aproximadamente 375,000 registros. No pude subir las imágenes para que vieran las pantallas pero si alguien me puede orientar como hacerlo se los agradecería bastante. Saludos Luis Aguilar |
#2
|
||||
|
||||
Bienvenido a clubdelphi, ¿ya leiste nuestra guía de estilo?, gracias por tu colaboración
![]() En principio, lo que no es normal es que tarde tanto, ¿la BD está bien?, en caso afirmativo ¿tienes los índices oportunos?, ¿qué sentencia estás usando?, ¿qué tipo de base de datos es?, ¿cual es el mensaje exacto de error?, etc...
__________________
La otra guía de estilo | Búsquedas avanzadas | Etiquetas para código | Colabora mediante Paypal |
#3
|
||||
|
||||
Precisamente éste es el problema. TADOConnection tiene el problema que con ciertos drivers de MS SQL Server y otros motores de bases de datos no hace caso al "supuesto" infinito que representa el cero en ésta propiedad.
Yo tuve un problema similar y lo solucioné poniéndoles explícitamente valores a ésta propiedad, de entre 20 y 60 minutos (así de pesada estaba la consulta) y funciona a las mil maravillas. Te aconsejo que tú hagas lo mismo. Saludines...
__________________
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 |
#4
|
|||
|
|||
Tengo una Tabla maestra y a partir de esa genere otras mas, una por año o ciclo escolar, no manejo indices, la sentencia es la siguiente:
SELECT Estado, IdCentro, Centro, IdAlumno, IdControl, ApellidoPaterno, ApellidoMaterno, Nombre, Nivel, SituacionFinal, FolioBoleta, FolioCertificado, FechaNacimiento, CURP, Descripcion FROM Alumnos0910 WHERE (IdEstado = '26') AND (ApellidoPaterno = 'AGUILAR') La bases de datos es de SQL2000, y el mensaje textual es Termino el tiempo de espera o en Delphi es: Project ProjectConsultas.exe raised exception class OleException with message "Termino el tiempo de espera" Procces Stoped Acabo de ponerle 50 y 50 al CommandTimeOut y al CommandConecction pero sigue persistiendo el mensaje. |
#5
|
||||
|
||||
¿Eso qué es?, ¿Microsoft sql?
Amigo, y ¿quieres que sea rápido? ![]()
__________________
La otra guía de estilo | Búsquedas avanzadas | Etiquetas para código | Colabora mediante Paypal |
#6
|
|||
|
|||
Gracias por la atención y sus tips.
Si es microsoft SQL Server 2000. Podrían orientarme en como decidir cual indice es el mejor para las tablas? Las tablas tienen un campo que es irrepetible para cada registro, podría ser éste mi indice? Ojala Pudieran orientarme al respecto. Mil gracias |
#7
|
|||
|
|||
Quizá valga la pena comentar que utilizo en mi aplicación aparte del AdoConnection uso un ADOQuery, y un Dbgrid en donde muestro los resultados, además de otra opción para poder exportar el resultado a excel.
Gracias por la atención. |
#8
|
||||
|
||||
Hombre, si tienes un campo que no se puede repetir, ese sería del tipo 'único'. Para el índice, además de un campo 'clave' para cada registro, en tu caso debes tener como mínimo los que uses en las búsquedas y condicionantes: 'idEstado' y 'ApellidoPaterno'.
__________________
La otra guía de estilo | Búsquedas avanzadas | Etiquetas para código | Colabora mediante Paypal |
#9
|
||||
|
||||
Lo primero que hay que saber es en qué parte de la consulta se están perdiento esos 35 segundos.
Para eso hay que analizar la consulta. Desde el Query Analizer de SQL Server, lanza la consulta y visualiza el plan de ejecución de la consulta. ![]() Una vez que sepas a qué se dedica el tiempo de la consulta, entonces podemos ver cómo actualizar (filtros, índices,...) Ejecuta y pon el plan, a ver qué se puede mejorar.
__________________
Germán Estévez => Web/Blog Guía de estilo, Guía alternativa Utiliza TAG's en tus mensajes. Contactar con el Clubdelphi ![]() P.D: Más tiempo dedicado a la pregunta=Mejores respuestas. |
#10
|
|||
|
|||
Gracias a todos por el apoyo.
Lo solucione creando los indices. Nuevamente muchas gracias por los consejos y orientaciones!!! |
![]() |
|
|
![]() |
||||
Tema | Autor | Foro | Respuestas | Último mensaje |
Tiempo de espera por Zeus | santi33a | Conexión con bases de datos | 0 | 21-06-2012 19:13:18 |
Tiempo de espera.- | BuenaOnda | Conexión con bases de datos | 13 | 16-11-2007 03:12:32 |
Tiempo de Espera | barrauda | Varios | 4 | 16-07-2007 02:28:01 |
Tiempo de espera | emeritos | Varios | 1 | 29-06-2006 11:49:26 |
Incrementar el tiempo de espera en ADO | mvelgar | Conexión con bases de datos | 4 | 14-07-2005 21:43:05 |
![]() |
|