Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Conexión con bases de datos
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Conexión con bases de datos

 
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 06-01-2007
nfrfabian nfrfabian is offline
Miembro
 
Registrado: ago 2006
Posts: 55
Poder: 18
nfrfabian Va por buen camino
Velocidad de respuesta de servidor

Hola a todos. Muchas gracias por su ayuda. Mi problema es el siguiente.
Trabajo con Ms SQL Server 2005, me conecto por medio de Ado. Yo solia usar Adotables para la conexion con las tablas, pero viendo los consejos de ustedes parece que es mucho mas rapido el tiempo de respuesta del servidor cuando se usa una adoquery porque el servidor solo envia a mi aplicacion el resultado de mi consulta y no toda la tabla. En fin tengo 2 tablas: maestro - detalle, como yo trabajaba con adotable a la tabla detalle le ponia como mastersource el datasource de la tabla maestro. Al pasar esta relacion a adoquery tuve problemas. Leyendo un poco la ayuda de delphi arme la relacion de la siguiente forma:
tengo las siguientes tablas en el servidor:

- resumen: dia, horain, grupo, idnom, hingresada, confir, fechreser, nrocontrol, operacion, activo.

- clientes: idnombre, nombre, nombre2, apellido, telefono

- agenda: dia, gabinete, hora, grupo, idnom, idprofesio, idservicio

- componente adoquery adoqresu
En el valor de la propiedad (TWideStrings) del adoqresu pongo: 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)

Puse un valor "fecha" a la propiedad (Tparameters) del adoqresu, este valor lo uso para elegir el dia en que se va a realizar la consulta de resumen.
Esta forma es la que explica la Ayuda de Delphi, nose si habra otra mas rapida o mejor.

- componente adoquery adoagenda
En el valor de la propiedad (TWideStrings) del adoagenda pongo: select dia, gabinete, hora, grupo, idnom, idprofesio, idservicio from agenda where dia = :fecha and idnom = :idnombre

El boton que realiza los calculos tiene las siguientes instrucciones:

adoqresu.Active := false;
adoqresu.Parameters[0].value := varifecha;
adoqresu.active := true;

while not adoqresu.Eof do
begin
adoqclientes.Active := false;
adoqclientes.Parameters[0].Value := varifecha;
adoqclientes.Parameters[1].Value := adoqresu.fields[3].value;
adoqclientes.Active := true;
while not adoqclientes.eof do
begin
calcularresultado; // calcularresultado solo cuenta la cantidad de cada idservicios
adoqclientes.next;
end;
adoqclientes.next;
end;


Este procedimiento funciona aceptablemente cuando la cantidad de registros que tiene tanto la tabla resumen y agenda son pocos. Pero con una tabla resumen con 12000 y agenda con 60000 registros aprox. y despues de realizar la consulta y devolver en promedio "solo" 200 registros aprox. el servidor se tarda entre 5 y 15 segundos.
Me parece que un servidor que se demore 5 segundos en devolverte 200 registros sin nada pesado (imagen o cosa por el estilo, solo datos del tipo smallint o varchar) no es un servidor que funcione correctamente. O el servidor funciona mal o la consulta esta mal hecha o no estoy utilizando los componentes correctos o las funciones de los componentes que uso no son las correctas.
Yo tengo la esperanza que el problema sea falta de recursos de pc, tengo en una sola computadora con 1gb de ram y procesador athlon de 2100 ejecutando el servidor sql server y mi aplicacion. Se que la memoria minima no es suficiente pero para pruebas pense que no afectaria tanto al rendimiento de mi aplicacion. Pero antes de comprar una computadora mas nueva quiero estar seguro que el problema es ese.
Desde ya gracias por sus consejo y disculpen lo largo consulta. Gracias.
Responder Con Cita
 



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
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


La franja horaria es GMT +2. Ahora son las 14:01:18.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi