Datatable vs Recordset

29/09/2006 - 15:17 por Emillen Uriarte | Informe spam
Hola a todos, estoy trabajando en un proyecto nuevo en .Net basado en una
aplicación ya existente de Vb6.
Trabajando con Datatables y datasets me he dado cuenta de que el tiempo de
carga de un datatable es muy superior al de un recordset cuando el volumen
de datos es muy grande.
En ambos casos se ataca a la misma Bd de sql server.
Es esto normal, o es que estoy utilizando de manera incorrecta los
datatables etc..??

Gracias de antemano.
 

Leer las respuestas

#1 Alberto Poblacion
29/09/2006 - 16:00 | Informe spam
"Emillen Uriarte" wrote in message
news:
Hola a todos, estoy trabajando en un proyecto nuevo en .Net basado en una
aplicación ya existente de Vb6.
Trabajando con Datatables y datasets me he dado cuenta de que el tiempo de
carga de un datatable es muy superior al de un recordset cuando el volumen
de datos es muy grande.
En ambos casos se ataca a la misma Bd de sql server.
Es esto normal, o es que estoy utilizando de manera incorrecta los
datatables etc..??



Efectivamente, es una forma incorrecta. Si el volumen de datos es muy
grande, no se deben cargar en un DataTable. El DataTable mantiene en memoria
una copia de todos los datos que le cargas, con lo cual, en cuanto se queda
escaso de memoria, se pone a usar el archivo de intercambio en disco y se
vuelve lento.
Lo que deberías es usar un DataReader, que es lo más parecido en ADO.Net
al RecordSet de ADO cuando se utiliza en modo solo lectura, solo marcha
alante, y cursor en el lado servidor, que es su modo de funcionamiento más
rápido. Con Sql Server no he hecho pruebas comparativas, pero probando
contra un mdb, en las pruebas que yo hice resultaba considerablemente más
rápido el DataReader que el Recordset.

Preguntas similares