![]() |
![]() |
| Paypal | FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
|||||||
| Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Buscar | Temas de Hoy | Marcar Foros Como Leídos |
![]() |
|
|
Herramientas | Buscar en Tema | Desplegado |
|
|
|
#1
|
||||
|
||||
|
Cita:
__________________
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. |
|
#2
|
||||
|
||||
|
A mi un proceso similar Dbf hacia Db (Pardox), 60.000 registros más o menos me tardan 15 minutos, utilizo incluso una barra de progreso.
No ataco directamente la tabla DBf sino que lanzo un SQL Select *. El post solamente lo hago despues de añadir el último registro. Pienso que uno de los problemas en los que interviene esta lentitud, son los índices que tenga la tabla destino. Un Saludo.
__________________
Guía de Estilo de los Foros Cita:
|
|
#3
|
|||
|
|||
|
Gracias Neftali, aunque he hecho una prueba de rendimiento haciendo 1000 insert contra 1000 append .. post y es el doble de rápido ejecutando secuencias sql de inserción.
|
|
#4
|
|||
|
|||
|
Gracias Marcoszorrilla. La tabla que estoy llenando tiene un solo índice que además es clave primaria. La última parte que realizo cuando paso el fichero DBF a access no le cuesta mas de 1 minuto ya que puedo lanzar la consulta SQL que haga la inserción de usa sola vez. Uso la siguiente secuencia:
INSERT INTO Tabla SELECT * FROM fichero_dbf IN "{ruta del fichero}" "dBASE IV;" Si hubiera una secuencia similar pero que el fichero origen fuera un fichero de texto, me salvaría la vida. |
|
#5
|
||||
|
||||
|
Casualmente yo nececito hacer algo similar.
Para ejecutar esa instrucción SQL, utilizas un ADOConnection+ADODataSet y para la tabla DBF un TTable común? No logro que funcione esa instruccion, hay algún error en las comillas o los string que mostraste?
__________________
Gracias de antemano por vuestra ayuda. ·.:*:.·Yako·.:*:.· |
|
#6
|
||||
|
||||
|
Podrias dar numeros? Que es lo que se demora? Cuanto es el tiempo?
Quiero decir: - Cuanto se gasta leyendo un registro... cuanto se demora en leer en total - Cuanto se gasta dando un inserte - El codigo de ejemplo de que es lo que haces - Los parametros de conexion (que componentes usas ademas). Me interesa saber que nivel de aislamiento de transacciones manejas... La "otra" tabla que es? Si intentas usar el asistente de importacion de datos de Acces, cuanto se demora este? Se me ocurre: 1- Estas usando cursores de solo lectura-hacia adelante? Deberias.... 2- Intenta lanzar todos los insert dentro de una transaccion...deberia ser mas rapido 3- Si usas ADO, puedes intentar con un cursor del lado del servidor (CursorLocation=Server)
__________________
El malabarista. |
|
#7
|
|||
|
|||
|
Hola hgiacobone,
para lanzar la instrucción SQL uso un componente TADOCommand. La rutina que uso es la siguiente: Código:
Un saludo. |
![]() |
| Herramientas | Buscar en Tema |
| Desplegado | |
|
|
|