Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Conexión con bases de datos
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Conexión con bases de datos

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 09-03-2010
ivantech ivantech is offline
Miembro
 
Registrado: dic 2009
Posts: 27
Poder: 0
ivantech Va por buen camino
Talking Append en tabla con mas de 100,000 registros

saludos

necesito saber que mecanismo a tomar en consideración para hacer un Append en tablas que pueden superar en corto tiempo los 100,000 registros. estoy consciente que es engorroso hacer append con estas cantidades de informaciones pero me gustaría saber o que me haga sugerencias de como hacer un insert o append optimo y rápido ya con estas cantidades de registros. utilizo delphi 7 + ODBC + Firebird 2.5 para capturar las informaciones, estoy sujeto a cualquier tipo de sugerencia.
Responder Con Cita
  #2  
Antiguo 09-03-2010
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Igual que si la tabla tuviera cinco registros o un millón:

Código SQL [-]
insert into tabla
column1, column2,...
values
(value1, value2,...)

En otras palabra, usa sentencias SQL de inserción, no uses componentes de tipo Table.

// Saludos
Responder Con Cita
  #3  
Antiguo 09-03-2010
ivantech ivantech is offline
Miembro
 
Registrado: dic 2009
Posts: 27
Poder: 0
ivantech Va por buen camino
Smile

si pero valla, sabes que si la tabla tiene un crecimiento de unos pocos registro mensuales y para llegar a una cantidad de 20,000 tardaría meses, no seria necesario complicarse mucho con un insert basado en SQL. pero ahora si es una aplicación de recogida de datos a nivel territorial de un país, valla creo que el Append seria un problema y pensé que existía alguna forma de optimizar el recorrido que hace el append o insert en toda la tabla. pero esta bien tendré que utilizar sentencias SQL lo único que seria un problemin para mi ya que no podría utilizar los componentes de enlace con los campos (TDbCombos, TDbLookup, TDbEdit, etc). nada tendré que re formular toda la aplicación para utilizarlo de esta forma.


muchas gracias roman por tu sabia respuesta.

Última edición por ivantech fecha: 09-03-2010 a las 12:00:42.
Responder Con Cita
  #4  
Antiguo 09-03-2010
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.293
Poder: 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 ivantech Ver Mensaje
...y pensé que existía alguna forma de optimizar el recorrido que hace el append o insert en toda la tabla.
Que yo sepa las inserciones con SQL no hacen ningun recorrido por la tabla, por lo que no se que opcimización quieres realizar.


Cita:
Empezado por ivantech Ver Mensaje
...lo único que seria un problemin para mi ya que no podría utilizar los componentes de enlace con los campos (TDbCombos, TDbLookup, TDbEdit, etc). nada tendré que re formular toda la aplicación para utilizarlo de esta forma.
Puedes utilizar componentes DataAware con tablas grandes, lo único que debes hacer es no conectarlos A TODA LA TABLA.

Es decir, puedes hacer un:

Código SQL [-]
  SELECT TOP 1000 * FROM TABLA1

Y mostrar eso en un DBGrid o en componentes como los que comentas sin problemas; Lo que no debes hacer es conectar esos componentes a un origen de datos que te devuelva muchos registros. Para eso están los TOP, los FILTROS,... Vigila sobre todo los índices que utilizas y revisa sobre el trabajo con cursores en la parte cliente y en la parte servidor.
__________________
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.
Responder Con Cita
  #5  
Antiguo 09-03-2010
Avatar de rgstuamigo
rgstuamigo rgstuamigo is offline
Miembro
 
Registrado: jul 2008
Ubicación: Santa Cruz de la Sierra-Bolivia
Posts: 1.646
Poder: 17
rgstuamigo Va por buen camino
Arrow

Otra forma de evitar ir hasta el final sería hacer una ordenación Descendente de los registro (...Order by Campo Desc ) y ahí hacer la inserción del nuevo registro..
Por otro lado Delphi tiene un Magnífico componente que optimiza el trabajo en lo que se refiere a mostrar ,editar,modificar los registros..., estoy hablando del componente ClientDataSet, en éste hilo puedes ver más información.
Saludos...
__________________
"Pedid, y se os dará; buscad, y hallaréis; llamad, y se os abrirá." Mt.7:7
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
enviar registros de una tabla a un campo de otra tabla a travez de ciclo IF en MYSQL CLUSTERBIT SQL 8 23-10-2008 15:50:03
Como sabe un query a que tabla quiero hacer append? coso Conexión con bases de datos 4 14-06-2008 20:26:11
uso de append en tabla macro32 Conexión con bases de datos 5 21-04-2008 19:35:04
Porque lee la tabla completa al hacer append? judit25 Conexión con bases de datos 2 31-05-2006 16:20:37
Seleccionar registros en una tabla, envio, e insercion en otra tabla!! EfrainSanmiguel Conexión con bases de datos 3 21-10-2004 01:12:43


La franja horaria es GMT +2. Ahora son las 15:11:40.


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
Copyright 1996-2007 Club Delphi