PDA

Ver la Versión Completa : Cargar datos en dataset


Ubed
21-11-2007, 14:08:26
Hola amigos, volvemos yo y mi tabla de 10000 registros, mi problema es que se me hace muy lenta la carga de todos los registros, no quiero filtrar por where porque realmente yo quiero todos los registros cargados pero existe alguna forma de acer cargas parciales??

es decir, que me carge los primeros, cuando buske cargo los 20 siguientes al codigo que le paso o algo asi, si no alguna otra forma de que me carge rapido??

aviso ya, todo esta indexado.

muchas gracias

Neftali [Germán.Estévez]
21-11-2007, 14:32:30
H...no quiero filtrar por where porque realmente yo quiero todos los registros cargados...

Realmente no entiendo la necesidad de tener 100.000 registros en memoria...
Salvo que exista una razón de "Gran peso", que no explicas, creo que es un error.

Continuando con el mensaje:
...existe alguna forma de acer cargas parciales??
...alguna otra forma de que me carge rapido??

Aquí entran enjuego dos cosas:
* La SQL
* La carga en memoria.

El tiempo de SQL, poco puedes hacer si ya está todo indexado; Podrías reducir el ancho de la consulta recuperando sólo ciertos campos si te es posible (en lugar de usar SELECT * FROM ...)

Para la parte de la carga, puedes utilizar cursores Server-Side, con lo que no estrías trayendo todos los registros a memoria, sino sólo los necesarios en cada momento; Trae un bloque de registros y a medida que vas necesitando más los va recuperando.
Aviso, si al final vas a acabar obteniendolos todos (por que vas a hacer un recorrido, por ejemplo), es mejor que uses Client-Side, ya que por lo menos te los traes todos de golpe.

También dependiendo de los que necesites para los datos, puedes usar diferentes tipos de cursores que acelerarán "un poco"; ReadOnly o ForwardOnly, por ejemplo, aunque sus funcionalidades se reducen.