![]() |
![]() |
![]() |
![]() |
![]() |
FTP | ![]() |
![]() |
CCD | ![]() |
![]() |
Buscar | ![]() |
![]() |
Trucos | ![]() |
![]() |
Trabajo | ![]() |
![]() |
Foros | ![]() |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
![]() |
|
Herramientas | Buscar en Tema | Desplegado |
|
#1
|
||||
|
||||
No hace falta que compres ninguna máquina nueva, esa es suficiente.
Deberías probar por separado, sentencia a sentencia, para ver en cuál exactamente se produce el retardo y actuar sobre ella. |
#2
|
||||
|
||||
Además, deberías indicar qué índices tienes definidos, o quizás definir índices sobre los campos que son muy usados en las búsquedas. Ésta es una parte importante.
Saludos
__________________
Si usted entendió mi comentario, contácteme y gustosamente, se lo volveré a explicar hasta que no lo entienda, Gracias. |
#3
|
|||
|
|||
Hola, gracias por ayudarme. En cuanto a lo que me preguntan. Las lineas en donde se demora en ejecutar son justamente las que activan la consulta:
adoqclientes.Active := true; En cuanto a los indices defini indices en los campos por los cual queria que se ordenara, en la de adoqresu en en campo horain, en adoqclientes en hora. Tambien pense que si definia los indices en estos campos el servidor los ordenaria por esos campos y al hacer las consultas no tendria que poner al final de la consulta "order by horain" y "order by hora", pero como no me devolvia la consulta ordenada tuve que poner al final "order by ..." y esto hace que se demora mas, incluso cuando hago consultas que me devuelven solo 3 registros se demora 3 a 5 segundos, es mas a veces ni siquiera me los ordena bien, hay veces en que realizo la consulta por un dia determinado y a veces me devuelve ordenado y hay veces en que no. No me queda pensar otra que es problema del servidor. A menos que tambien tenga que definir indices para los campos dia en ambas tablas y al hacer el "order by" tambien tenga que poner el "dia" : select dia, horain, grupo, idnom, hingresada, confir, fechreser, nrocontrol, operacion, activo, idnombre, nombre, nombre2, apellido, telefono from resumen, clientes where (dia = :fecha) and (activo = 'True') and (idnombre = idnom) order by horain a esta consulta reemplazaria el final "order by horain" por "order by dia and horain", pero hacer esto me parece redundante porque estoy filtrando para que me mustre los registros de un dia determinado, ademas de que seguro va tardar mas en devolverme la cosulta. Pero nose que mas probar para que me devuelva la consulta ordenada siempre. No me queda otra mas que seguir probando. Gracias por cualquier consejo. |
#4
|
||||
|
||||
¿Tienes claves primarias definidas?
¿Qué SQL tienes en adoclientes? ¿Que hace CalculaResultados? Está claro que ahí es donde tienes el cuello de botella, ya que por cada registro de la consulta resumen, abres y cierras el adoclientes y encima después por cada registro, calculas el resultado. La optimización vendría por hacer un sql que unificara todo si es posible. Si no es posible.... a procedimientos almacenados. Saludos
__________________
Si usted entendió mi comentario, contácteme y gustosamente, se lo volveré a explicar hasta que no lo entienda, Gracias. |
#5
|
||||
|
||||
Un par de cosas
- Pon indices en los campos que hacen de claves en las tablas. Ejemplo, Cliente.IdNombre y Agenda.Dia.Poner indices en los campos por los que ordenas generalmente no acelera nada. - Cuando uses querys siempre tendrás que ordenar la consulta, no funciona igual que una tabla con un indice activo. - Cuando tengas que 'contar ' registros no lo hagas a 'pelo'. Utiliza consultas que te devuelvan los valores y que se ejecuten en cada cambio de datos. Para ello utiliza select count(campo) where condicion ( la condicion puede ser parametrizada ) - Con querys tambien funciona el mastersource. Suerte Un saludo
__________________
Cuando los grillos cantan, es que es de noche - viejo proverbio chino - |
#6
|
|||
|
|||
Hola, gracias por sus consejos, pude mejorar la velocidad de respuesta agregandole indices a los campos por los que pongo el filtro (dia, hora, horain).
|
![]() |
|
|
![]() |
||||
Tema | Autor | Foro | Respuestas | Último mensaje |
Dar tiempo de respuesta a una consulta | Eolo | Conexión con bases de datos | 2 | 19-02-2004 15:30:15 |
La mejor respuesta de Exámen. | obiwuan | Humor | 1 | 08-08-2003 19:09:39 |
Respuesta | danytorres | Varios | 2 | 16-07-2003 20:55:43 |
![]() |
|