FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
|
#1
|
||||
|
||||
DataSets o Querys??
Gracias por la info... Va otra consulta
Tengo varios procesos de inserción de datos dentro de ciclos (por ejemplo guardar detalles de facturas, etc.). He probado hacer la inserción utilizando un DataSet y tmbien lo he hecho con un Query... un ejemplo Utilizando DataSet...
Utilizando Query...
No he encontrado como medir el rendimiento de este código... Quisiera saber si alguien sabe o tiene algúna idea de cúal de las dos opciones es la más eficiente. Desde ya les agradezco por la ayuda. Saludos!
__________________
Martin Zalazar |
#2
|
||||
|
||||
Intenta hacer una prueba insertando una cantidad grande de registros.
De todas formas se supone que el query es más eficiente en estos casos. Ya nos contarás. |
#3
|
||||
|
||||
Buena idea!
Voy a armar una demo que me cargue unos 100.000 registros con las 2 modalidades y le tomo el tiempo. Cuando termine les cuento los resultados...
__________________
Martin Zalazar |
#4
|
|||
|
|||
Como te han dicho prueba con una gran cantidad de registros. No obstante y dada mi experiencia (hace tiempo lo probé insertando una gran cantidad de registros en una tabla con unos 30 campos) me resulto más eficiente el empleo de TQUERY con el correspondiente SQL.
Un saludo y comenta tus resultados |
#5
|
||||
|
||||
Ten en cuenta el tema de transacciones
Código:
Query.Close; Query.SQL.Clear; Query.SQL.Add('insert into DETALLE_FACTURA ('); Query.SQL.Add('COD_ARTICULO, CANTIDAD, CAMPO_X...)'); Query.SQL.Add('values (:vCOD_ARTICULO, :vCANTIDAD, :vCAMPO_X...)'); while not DetalleTemporal.Eof() do begin if not Query.Transaction.InTransaction then Query.Transaction.StartTransaction; //agregado Query.ParamByName('vCOD_ARTICULO').AsString := DetalleTemporalCOD_ARTICULO.AsString; Query.ParamByName('vCANTIDAD').AsCurrency := DetalleTemporalCANTIDAD.AsCurrency; ...otros campos.. Query.Transaction.Commit; // agregado DetalleTemporal.Next; end; Última edición por duilioisola fecha: 06-09-2007 a las 13:50:50. |
#6
|
||||
|
||||
Hola Amigos:
Hice la prueba con una tabla con 40 campos (20 varchar y 20 float). Probe varias veces hacer la inserción con Query y con Dataset (probe 10000 registros). Definitivamente, fue más rápida la inserción con los Querys (según mis pruebas un 15% más rápido mas o menos). Respecto de las transacciones, en el evento AfterExecute coloco siempre este código:
Gracias por la colaboración!
__________________
Martin Zalazar |
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
Encuesta: Cuál es el mejor gestor de base de datos? | semptrion | Conexión con bases de datos | 7 | 19-06-2007 03:06:12 |
Conectar una base de datos a mi programa | cesararturo2004 | Conexión con bases de datos | 3 | 24-01-2006 18:26:43 |
cual es la mejor forma ? | martita | Varios | 14 | 07-07-2005 19:35:55 |
Cual es la mejor forma de pasar datos de MSaccess a MySQL | ctronx | Conexión con bases de datos | 7 | 04-08-2004 01:04:53 |
Cual es la mejor forma de Conectarse a una base de Datos Acces? | catapulta | Conexión con bases de datos | 1 | 07-05-2003 05:04:21 |
|