Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   multiples conexiones a una base de datos con firebird (https://www.clubdelphi.com/foros/showthread.php?t=76918)

novato_erick 04-12-2011 20:50:22

multiples conexiones a una base de datos con firebird
 
Mi muy estimado Sres


Estoy realizando una aplicacion el cual se requiere que mas de 20 usuarios esten simultaneamente conectado a una base de datos e incluso precisamente ingresando cliente, el problema esta es que si tengo usuarios ingresando clientes y otros buscando clientes en otro formulario para ser modificado o utilizado en un modulo de factura el programa en ocasiones se pega. para realizar Mis pruebas de desarrollo tengo 5 maquinas el cual 3 de ellas ingresan Clientes y 2 de ellas buscan y modifican clientes, la base de datos es firebird 2.5 y la tabla de clientes le ingrese registro de clientes actuales el cual son mas de 50,000 (cincuentamil registros) para comprobar la velocidad de busqueda pero no he logrado mejorarlo

Alguien con mas experiencia podria darme un consejo, utilizando componentes como DBExpress, ClientDataSet, DataSetProvieder.


Saludos

novato_erick

Casimiro Notevi 04-12-2011 20:52:35

¿Qué quiere decir que "en ocasiones se pega"?

novato_erick 04-12-2011 21:39:54

El programa no responde. o demora en agregar o enconrar un cliente.


Saludos

Casimiro Notevi 04-12-2011 21:46:46

Pues tendrás que explicarnos en detalle cómo trabajas, el código de las búsquedas, las tablas y sus índices, relaciones entre ellas, etc. porque así, sin ninguna información, poco podemos hacer :)
Desde luego, 20 conexiones y 50.000 registros es poquita cosa para que tarde en hacer algo.

novato_erick 05-12-2011 15:29:33

Esta es mi tabla en la base de datos con firebird
 
Código SQL [-]
Create Table Clientes (
  Id_cliente Integer Not Null,
  Cedula Varchar(20) Character Set Ascii Not Null Collate Ascii,
  Nombre Varchar(100) Character Set Ascii Not Null Collate Ascii,
  Pais Varchar(50) Character Set Ascii Not Null Collate Ascii,
  Direccion Varchar(250) Character Set Ascii Not Null Collate Ascii,
  Telefono Varchar(15) Character Set Ascii Collate Ascii,
  Fax Varchar(10) Character Set Ascii Collate Ascii,
  Celular Varchar(15) Character Set Ascii Collate Ascii,
  Email Varchar(40) Character Set Ascii Collate Ascii,
  Fecha Date Default 'now',
  Observaciones Varchar(250) Character Set Ascii Collate Ascii);


Alter Table Clientes Add Primary Key (id_cliente);


Set Term ^ ;

Create Trigger Bi_clientes_id_cliente For Clientes
Active Before Insert
Position 0
As
Begin
  If (new.id_cliente Is Null) Then
      New.id_cliente = Gen_id(clientes_id_cliente_gen, 1);
End^

Set Term ; ^

marcoszorrilla 05-12-2011 15:37:36

Yo te preguntaría en el componente que hace las búsquedas tienes declarados campos LookUp ó Calculados.

Hace unos días sin ir más lejos descubrí que un proceso que realizaba 137 recibos tardaba muchísimo, primero desactive los controles xxx.DisableControls y vi que no mejoraba gran cosa.

Pensé que podían ser los campos LookUp

Código Delphi [-]
Dmclientes.IBDtsRecibos.AutoCalcFields:=False;

Coloqué la instrucción anterior antes del proceso y la contraria al finalizar y todo volvió a la normalidad.

Un Saludo.


La franja horaria es GMT +2. Ahora son las 14:23:19.

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