Velocidad leyendo datos

24/03/2008 - 19:24 por Eduardo | Informe spam
Hola a todos
Estoy haciendo una prueba con visual studio 2005 y visual studio 2008,
Esta consiste en leer una tabla con 700.000 registros, de la estructura
de la tabla que contiene una cuarenta columnas solo selecciono la 6 que
me interesan
Monto un GridView tanto VS2005 y VS2008 usando el SQLConnection un
Dataset de la Tabla y un DataAdpater todo esto sin escribir una linea
de código, La BD es SQL Server 2005 Standar y la verdad es que tarda en
cargar el DataGrid unos 2 minutos
Hecho esto con otro producto atacando a la misma base de datos y en las
mismas condiciones el llenado del DaTaGrid es practicamente instantaneo
Estoy haciendo algo mal ? o hay algo que me he dejado de hacer pues con
estos tiempos de respuesta me esimposible presentar algo en VS2005 o VS
2008.
Aclaración es trabajando con una aplicacion en Windows
Gracias anticipadas por vuestra ayuda
Eduardo

Eduardo
eduardo@brainland.net

Preguntas similare

Leer las respuestas

#11 Juan Diego Bueno
27/03/2008 - 10:19 | Informe spam
Alberto Poblacion ha acertado a formular la pregunta:

Creo que tienes razón, y que me he confundido porque he mezclado cosas de
WebForms con las de WinForms. Efectivamente, el grid de WinForms no mantiene
su propia copia de los datos, sino que usa los del datasource vinculado, con
lo que tienes que usar un datasource que contenga datos (tal como el DataSet)
y esta es la única copia que hay en memoria. En cambio, el de Web, necesita
una copia de los datos, por lo que es preferible hacer el databinding con un
DataReader para evitarse la copia adicional. Creo que el de Windows no admite
databinding con el datareader, y que solo se puede hacer con el de web. Así
que pido perdón por la "mezcla" de entornos.



Nada que perdonar, a mi me has hecho pensar otras alternativas y
plantearme el uso de datareaders en según que casos.

Un saludo

http://www.moondance.tk
Respuesta Responder a este mensaje
#12 Jesús López
27/03/2008 - 10:59 | Informe spam
Yo no uso DataSets, sino colecciones de objetos de negocio que cargo a
partir de un datareader usado este ListLoader:

http://blogs.solidq.com/ES/CuevaNet....aspx?ID=7

Saludos:

Jesús López
www.solidq.com
Respuesta Responder a este mensaje
#13 Alfredo Novoa
28/03/2008 - 09:39 | Informe spam
Hola Juan Diego,

On Thu, 27 Mar 2008 10:19:36 +0100, Juan Diego Bueno
wrote:

Alberto Poblacion ha acertado a formular la pregunta:

Creo que tienes razón, y que me he confundido porque he mezclado cosas de
WebForms con las de WinForms. Efectivamente, el grid de WinForms no mantiene
su propia copia de los datos, sino que usa los del datasource vinculado, con
lo que tienes que usar un datasource que contenga datos (tal como el DataSet)
y esta es la única copia que hay en memoria. En cambio, el de Web, necesita
una copia de los datos, por lo que es preferible hacer el databinding con un
DataReader para evitarse la copia adicional. Creo que el de Windows no admite
databinding con el datareader, y que solo se puede hacer con el de web. Así
que pido perdón por la "mezcla" de entornos.



Nada que perdonar, a mi me has hecho pensar otras alternativas y
plantearme el uso de datareaders en según que casos.



En realidad lo que hace falta es más bien un DataTable en lugar de un
DataSet.

Yo lo que hago es no usar DataSets ni DataTables y usar una clase que
implementa IBindingList e ITypedList, que ya se encarga de hacer la
paginación y notificar las actualizaciones a los controles visuales.

Lo malo es que es un poco complicado por que también tienes que crear
una clase para los descriptores de tipos de fila (e implementar
ICustomTypeDescriptor e IEditableObject), y otra para los descriptores
de propiedades que descienda de PropertyDescriptor y que implemente
INotifyPropertyChanged.

Lo que hay que evitar es caer en la tontería de los objetos de negocio
por este tipo de cosas que se pueden resolver perfectamente de muchas
formas.


Saludos
Alfredo
Respuesta Responder a este mensaje
#14 Juan Diego Bueno
29/03/2008 - 09:26 | Informe spam
On 28 mar, 09:39, Alfredo Novoa wrote:
En realidad lo que hace falta es más bien un DataTable en lugar de un


DataSet.




Bueno, implícitamente cuando hablo de DataSets me refiero a los
datatables que contienen.

Un saludo
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una pregunta AnteriorRespuesta Tengo una respuesta
Search Busqueda sugerida