Jump to content


Photo

ADO, ODBC, Delphi7, mariadb muy lento

ado odbc delphi7 mariadb

  • Please log in to reply
5 replies to this topic

#1 Koalasoft

Koalasoft

    Advanced Member

  • Miembros
  • PipPipPip
  • 142 posts
  • LocationMéxico

Posted 06 March 2019 - 05:40 PM

Estimados saludos a todos ...

 

Tengo una aplicación hecha en Delphi 7, usando ADO y ODBC para conectarme a una base de datos en un equipo CentOS 7.0 con mariadb.

 

En la aplicación, se hacen los módulos comunes de alta, baja, actualización y consultas, pero en cada proceso hago una conexión y la cierro cuando se realiza dicho proceso.

 

Todo marchaba bien, pero ya cuando empezó a crecer la base de datos (hasta ahora solo 50mb) empezó SOLO el proceso de conexión a estar muy lento.

 

Saben si esto es normal usando estos componentes?

 

La aplicación esta hecha en Delphi7, driver ODBC maria db, en el equipo cliente, la base de datos esta en un equipos Linux Centos 7 y es mariadb.

 

Alguien que le haya pasado algo asi?


  • 0

#2 egostar

egostar

    missing my father, I love my mother.

  • Administrador
  • 14460 posts
  • LocationMéxico

Posted 07 March 2019 - 08:48 AM

Hola amigo

 

Hay muchas razones por las que se degrada la respuesta de una base de datos.

 

Por ejemplo:

 

  • Abrir y cerrar la conexión por cada evento es una de ellas,
  • El diseño la tabla (si no tienes indices o tienes indices en exceso).
  • El diseño de las consultas (JOINS mal aplicados)
  • Que tengas un problema en la conexión de red.

 

Etc...

 

Saludos


  • 0

#3 Koalasoft

Koalasoft

    Advanced Member

  • Miembros
  • PipPipPip
  • 142 posts
  • LocationMéxico

Posted 07 March 2019 - 09:05 AM

Hola amigo

 

Hay muchas razones por las que se degrada la respuesta de una base de datos.

 

Por ejemplo:

 

  • Abrir y cerrar la conexión por cada evento es una de ellas,
  • El diseño la tabla (si no tienes indices o tienes indices en exceso).
  • El diseño de las consultas (JOINS mal aplicados)
  • Que tengas un problema en la conexión de red.

 

Etc...

 

Saludos

 

Al parecer mis problemas pueden ser los primeros 2 puntos, ya que si, abro y cierro conexción por evento y por los indices, pues solo tengo 1 en cada tabla, no se si eso sea igual.

 

Seguiré checando o si alguien tiene otra idea mas agradesco la ayuda !!   Saludos..


  • 0

#4 Delphius

Delphius

    Advanced Member

  • Administrador
  • 6295 posts
  • LocationArgentina

Posted 07 March 2019 - 08:59 PM

Abir y cerrar una conexión consume muchos recursos. Cambia ahí.

Lo que comenta Eliseo sobre el tema índices y joins también es muy importante. No basta con tener uno o varios índices, sino de tener los correctos, en los campos adecuados.

 

Y no menos importante, ODBC es tecnología "obsoleta". Reconsidera otra forma de conexión, estoy casi seguro que buena parte del bajo desempeño no sólo es por estar reconectando cada 2 x 3, sino que además empleas ODBC.

 

El tema de los JOINs es más complicado. En ocasiones es inevitable y los motores de por si ya se encargan de optimizar lo mejor que se puede.

 

Saludos,


  • 0

#5 Koalasoft

Koalasoft

    Advanced Member

  • Miembros
  • PipPipPip
  • 142 posts
  • LocationMéxico

Posted 08 March 2019 - 08:11 PM

Abir y cerrar una conexión consume muchos recursos. Cambia ahí.

Lo que comenta Eliseo sobre el tema índices y joins también es muy importante. No basta con tener uno o varios índices, sino de tener los correctos, en los campos adecuados.

 

Y no menos importante, ODBC es tecnología "obsoleta". Reconsidera otra forma de conexión, estoy casi seguro que buena parte del bajo desempeño no sólo es por estar reconectando cada 2 x 3, sino que además empleas ODBC.

 

El tema de los JOINs es más complicado. En ocasiones es inevitable y los motores de por si ya se encargan de optimizar lo mejor que se puede.

 

Saludos,

 

En el caso que uso ADO, cuando tengo una conexión abierta, como puedo hacerle para que tarde mas tiempo la conexión (aunque no la est usando)?

 

Sobre lo index no creo tener problema alli.

 

Y sobre los ODBC, que puedes recomendarme para evitar estos?, por ahora sigo usando D7, ya que la migración hacia embarcadero comunity creo seria algo tedioso, reprogramación, no se... 

 

Y efectivamente el tema de los JOINs es mas que inevitable para las consultas.

 

Gracias de antemano !! 


  • 0

#6 Delphius

Delphius

    Advanced Member

  • Administrador
  • 6295 posts
  • LocationArgentina

Posted 08 March 2019 - 08:38 PM

El problema es el combo ADO + ODBC. Utiliza otras suites, como Zeos por ejemplo. Si bien Zeos no es de las rápidas tendrá mejor perfomance que ADO + ODBC.

Y sabiendo que MariaDB es un clon de MySQL, es bastante probable que muchos componentes y suites pensados para MySQL funcionen con MariaDB.

 

De todas formas el cambiar a otra suite implicará cambiar algo de código.

Y no estés conectando y desconectando. Inicia la conexión y mantenla abierta hasta finalizar la aplicación. La excepción a la norma es que tuvieras problemas con la conexión (y/o la red) y debas volver a reconectarte.

 

Saludos,


  • 0





Also tagged with one or more of these keywords: ado, odbc, delphi7, mariadb

IP.Board spam blocked by CleanTalk.