Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Conexión con bases de datos (https://www.clubdelphi.com/foros/forumdisplay.php?f=2)
-   -   Optimizar con MySql (https://www.clubdelphi.com/foros/showthread.php?t=52495)

whatson 23-01-2008 01:02:54

Optimizar con MySql
 
Hola Foro
Deseo compartir lo siguiente con Ustedes y pedirles su ayuda para lograr optimizar el funcionamiento de un programa que estoy haciendo.

Tengo un bases de datos en MySQl con el driver 3.51 instalada en una maquina que destine como servidor con windows 2000.

Mi problema comenzo cuando cambie la base de datos con la cantidad real de articulos con los que se va a trabajar, que son al rededor de 50,000 registros y tambien con el cambio en el ZConnection apuntando al IP de mi servidor.


Utillizo conponentes Zeos version 6.1.5 y Mi version es Delphi 7.

Cuando trabaje en el diseño del programa utilice solamente parte de los datos de mis tablas y no me dio problemas para filtrar y actualizar, pero cuando utilice la tabla de productos con la cantidad real de registros que contiene los 50,000 empezo el problema.

Les agradeceria mucho que Me pudieran dar alguna idea para poder mejorar el rendimiento de mi programa.

Si es posible sincronizar alguna parte de la base de datos en el estacion de forma local o alguna cosa asi, para que el ancho de banda no se consuma en su totalidad y Me funcione con las demas estaciones.

Utilizo al rededor de 10 tablas con varios Query

Les agradezco cualquier comentario o sugerencia al respecto.

Nota. Tengo muy poco tiempo programando en Delphi. Gracias.:(

poliburro 23-01-2008 01:23:02

Si utilizaste filtros en tus datasets, has cometido un grave error. Lo mejor que puedes hacer ahora es modificar tu apliación para utilizar procedimientos almacenados y verificar el uso de índices en tus consultas a través del comando Explain. Suerte.

AzidRain 23-01-2008 04:41:27

Lo mas seguro es que hayas hecho justo lo que dice poli. Si usaste TZTable esta incorrecto. Si usaste un TZQuery con la propiedad SQL con "select * from nombretabla", mal también.

El arte de usar SQL es que no necesitas tratar con todos los datos a la vez como se hace en tablas.

Los filtros debes hacerlo mediante "WHEREs" en tus querys que haga un select. Es decir en lugar de hacer un
Código SQL [-]
SELECT * from productos
y una vez abierto hacer:
Código Delphi [-]
  TZQuery.filter := "tamano>100";
  TZQyery.filtered;

Debes hacer:
Código SQL [-]
SELECT * from productos where tamano>100
y volver a abrir tu query.

A grosso modo.


La franja horaria es GMT +2. Ahora son las 08:30:20.

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