Ver Mensaje Individual
  #5  
Antiguo 10-05-2006
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - Espańa
Posts: 18.289
Reputación: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
Cita:
Empezado por joanajj
La base a ido creciendo y tiene como unos 8 o 9000...
...se me ocurrió pulsar la tecla Fin para posicionarme en el último registro y tardó como 5 minutos en hacerlo
Está claro que Access es una Base de Datos de escritorio, y no se puede pretender usarla en proyectos profesionales, pero lo que no es normal es que el recorrido de una tabla de 8000 registros tarde 5 minutos. Ahí hay algo mal.

En Delphi, trabajando con un fichero MDB y accediendolo con ADO, yo he trabajado con volúmenes mucho superiores a ese y funciona perfectamente.

Cita:
Empezado por joanajj
...usando alguna base de datos alternativa se puede mejorar
Coincido en lo que han dicho, no todo se arregla diciendo "Cambia a FireBird/SQLServer que son Bases de Datos en Serio". Como te he comentado, no son normales esos tiempos, lo que significa que el problema no está en la Base de Datos.
Recorrer una tabla de Access con 30000 registros debe hacerse casi de forma inmediata y el locate igual.

¿Puedes poner algo de código del que estás utilizando? ¿Dar más detalles?

Cita:
Empezado por amadis
(1) ...ese comportamiento es normal de access trabajado desde delphi.
(2) ...Según había leido es como una traba para que los programadores no usen access desde lenguajes ajenos a microsoft.
(3) ...Podrias migrar el access a Paradox.
(1) En absoluto es un comportamiento normal. los Ficheros MDB de Jet4 (no confundir con Access que es un programa propietario para tratarlos) funcionan bien en local (al igual que lo puede hacer Paradox) siempre y cuando se usen correctamente y "no se les pida más de lo que son" (una Base de Datos de escritorio).

(2) No hay ninguna traba en utilizar Delphi+ADO+MDB; Es más, creo que a MS le debe interesar que mucha gente use sus ficheros MDB; Significa que algunos de éstos acabarán utilizado/comprando Access (propiedad de MS).

(3) Migrar una Base de Datos MDB+ADO a Paradox+BDE es como "dejar de comer Pan para comer tortas"; Dudo mucho que obtengas más rendimiento; Es más estoy casi seguro de que accediendo a MDB con ADO (acceso nativo) se obtiene más rendimiento que accediendo a Paradox a través del BDE; Aunque en definitiva son opciones muy similares; Si vas a cambiar, debes hacerlo a un SGBD (sigo pensando que no siempre todo se arregla así).

Antes de hacer cambios, yo revisaría:
(1) Cómo tienes definda la estructura de la Base de Datos. Sobre todo claves primarias, claves foráneas e índices sobre las tablas.
(2) Actualizate las MDAC a alguna de las últimas versiones.
(3) Repara y compacta la Base de Datos para asegurarte de que no tiene problemas. Si tienes dudas, crea un Base de Datos en balnco e importa la anterior.
(4) Revisa que tengas bien configurada la conexión en el ADOTable/ADOConection (usando Jet4)
(5) Revisa las propiedades CursorType de la conexión y del ADOTable.
(6) ¿Estás trabajando en Red? Si es así revisa que no tengas problemas de Red. Como te he dicho esos tiempos "denotan claramente" un problema (no son achacables a Access).
(7) Piensa en usar SQL para búsquedas en lugar de Locate. Revisa campos sobre los que usas locate para añadir índices.

Todo depende de qué tipo de proyecto estés haciendo:
* Local o en Red
* Monopuesto o Multipuesto
* Volumen de Datos/Tablas
* ...

Tal vez con más datos y algo de código te podamos ayudar más...

Un saludo
__________________
Germán Estévez => Web/Blog
Guía de estilo, Guía alternativa
Utiliza TAG's en tus mensajes.
Contactar con el Clubdelphi

P.D: Más tiempo dedicado a la pregunta=Mejores respuestas.

Última edición por Neftali [Germán.Estévez] fecha: 10-05-2006 a las 10:36:40.
Responder Con Cita