consulta lenta

07/07/2004 - 18:40 por js | Informe spam
tengo una aplicacion en asp.net y cuando carga..debe
mostra una gran cantidad de rgistros...peor hace la
aplcacion bastante lenta para cargar..como pueod
solucionar eso..hay agluna manera de hacer mas ligera la
carga dedatos?

Preguntas similare

Leer las respuestas

#1 Franco Figún
07/07/2004 - 19:07 | Informe spam
Si los datos los cargas en un datagrid o datalist, podes hacer paginación, o
sino, simplemente podes hacer una consulta sql para que muestre 10, 50 o 100
registros, dependiendo de cuantos registros quieras mostrar.
Por otro lado, las aplicaciones asp.net son lentas la primera vez que cargas
la pagina, despues el proceso es mas rapido.

FF
www.francofigun.com.ar
www.microsofties.com.ar
MSN:
UIN: 314408886
Yahoo MSN:
"js" wrote in message
news:27c8f01c46441$2ecc0170$
tengo una aplicacion en asp.net y cuando carga..debe
mostra una gran cantidad de rgistros...peor hace la
aplcacion bastante lenta para cargar..como pueod
solucionar eso..hay agluna manera de hacer mas ligera la
carga dedatos?
Respuesta Responder a este mensaje
#2 Sergio Florez M.
07/07/2004 - 20:40 | Informe spam
Lo primero que debes hacer es optimizar tu instruccion SQL. Como dice
Franco, lo que debes hacer para mostrar una gran cantidad de registros es
utilizar la paginacion del datagrid. Como recomendacion deberias usar la
sobrecarga del metodo Fill del DataAdapter que te permite utilizar los
parametros de entrada "startRecord" y "maxRecords". Estos basicamente son
dos enteros que le envias al metodo diciendole cual es el registro inicial y
cuantos registros debe traer. De esta forma lo limitas a que traiga solo
cierta cantidad de registros aunque en tu instruccion SQL no haya ningun
limitante.

El que persevera insiste
Sergio Florez M.
Medellín, Colombia


"js" escribió en el mensaje
news:27c8f01c46441$2ecc0170$
tengo una aplicacion en asp.net y cuando carga..debe
mostra una gran cantidad de rgistros...peor hace la
aplcacion bastante lenta para cargar..como pueod
solucionar eso..hay agluna manera de hacer mas ligera la
carga dedatos?
Respuesta Responder a este mensaje
#3 GastonQ
08/07/2004 - 02:52 | Informe spam
Hola, quiero recordarles que la paginación realizada por el Datagrid es
bastante simple de utilizar, pero muy poco eficiente. Digo esto porque como
todos sabrán, primero se recuperan Todos los registros de la consulta y
luego se hacen lo cálculos respectivos para obtener la página deseada.

Con consultas pequeñas, digamos en el orden de cientos de registros, uno se
puede permitir utilizar esta paginación, pero la solución correcta es que la
consulta, retorne únicamente los registros correspondientes a la página
deseada. Esto disminuirá la cantidad de bytes que deberán viajar entre las
capas de la aplicación, entre otros factores importantes.

Lamentablemente hay algunas técnicas para lograr esta funcionalidad, pero
SQL Server no provee herramientas para lograr la paginación, mas que el
propio lenguaje T-SQL. En Oracle por ejemplo, se cuenta con un ROWID que
permite fácilmente dividir el resultado de una consulta. Un caso típico es
usar el operador TOP, mas o menos así:

Primer página: select top N campo1, campo2 from tabla
Ultima página: select top N campo1, campo2 from tabla order by campo1 desc
(Tener que ordenar no es nada agradable en cuanto a rendimiento)
etc...etc...

Bueno, hay mucho material sobre el tema. Está claro que "debes paginar",
pero si tienes muchos registros tendrás que utilizar lo que se conocen como
técnicas avanzadas de paginación.

Saludos
Gaston Quirque
Microsoft MVP




"Sergio Florez M." escribió en el mensaje
news:%
Lo primero que debes hacer es optimizar tu instruccion SQL. Como dice
Franco, lo que debes hacer para mostrar una gran cantidad de registros es
utilizar la paginacion del datagrid. Como recomendacion deberias usar la
sobrecarga del metodo Fill del DataAdapter que te permite utilizar los
parametros de entrada "startRecord" y "maxRecords". Estos basicamente son
dos enteros que le envias al metodo diciendole cual es el registro inicial


y
cuantos registros debe traer. De esta forma lo limitas a que traiga solo
cierta cantidad de registros aunque en tu instruccion SQL no haya ningun
limitante.

El que persevera insiste
Sergio Florez M.
Medellín, Colombia


"js" escribió en el mensaje
news:27c8f01c46441$2ecc0170$
> tengo una aplicacion en asp.net y cuando carga..debe
> mostra una gran cantidad de rgistros...peor hace la
> aplcacion bastante lenta para cargar..como pueod
> solucionar eso..hay agluna manera de hacer mas ligera la
> carga dedatos?


Respuesta Responder a este mensaje
#4 Sergio Florez M.
08/07/2004 - 14:31 | Informe spam
Esta es precisamente la razon por la cual hice la recomendacion de utilizar
la sobrecarga de DataAdapter.Fill() que utiliza los parametros de entrada
"startRecord" y "maxRecords". Estos basicamente son dos enteros que le
envias al metodo diciendole cual es el registro inicial y cuantos registros
debe traer. De esta forma no te traes todo el resultset sino solo la
partecita o subconjunto que necesitas desde la base de datos.
El que persevera insiste
Sergio Florez M.
Medellín, Colombia


"GastonQ" escribió en el mensaje
news:
Hola, quiero recordarles que la paginación realizada por el Datagrid es
bastante simple de utilizar, pero muy poco eficiente. Digo esto porque


como
todos sabrán, primero se recuperan Todos los registros de la consulta y
luego se hacen lo cálculos respectivos para obtener la página deseada.

Con consultas pequeñas, digamos en el orden de cientos de registros, uno


se
puede permitir utilizar esta paginación, pero la solución correcta es que


la
consulta, retorne únicamente los registros correspondientes a la página
deseada. Esto disminuirá la cantidad de bytes que deberán viajar entre las
capas de la aplicación, entre otros factores importantes.

Lamentablemente hay algunas técnicas para lograr esta funcionalidad, pero
SQL Server no provee herramientas para lograr la paginación, mas que el
propio lenguaje T-SQL. En Oracle por ejemplo, se cuenta con un ROWID que
permite fácilmente dividir el resultado de una consulta. Un caso típico es
usar el operador TOP, mas o menos así:

Primer página: select top N campo1, campo2 from tabla
Ultima página: select top N campo1, campo2 from tabla order by campo1 desc
(Tener que ordenar no es nada agradable en cuanto a rendimiento)
etc...etc...

Bueno, hay mucho material sobre el tema. Está claro que "debes paginar",
pero si tienes muchos registros tendrás que utilizar lo que se conocen


como
técnicas avanzadas de paginación.

Saludos
Gaston Quirque
Microsoft MVP




"Sergio Florez M." escribió en el mensaje
news:%
> Lo primero que debes hacer es optimizar tu instruccion SQL. Como dice
> Franco, lo que debes hacer para mostrar una gran cantidad de registros


es
> utilizar la paginacion del datagrid. Como recomendacion deberias usar la
> sobrecarga del metodo Fill del DataAdapter que te permite utilizar los
> parametros de entrada "startRecord" y "maxRecords". Estos basicamente


son
> dos enteros que le envias al metodo diciendole cual es el registro


inicial
y
> cuantos registros debe traer. De esta forma lo limitas a que traiga solo
> cierta cantidad de registros aunque en tu instruccion SQL no haya ningun
> limitante.
>
> El que persevera insiste
> Sergio Florez M.
> Medellín, Colombia
>
>
> "js" escribió en el mensaje
> news:27c8f01c46441$2ecc0170$
> > tengo una aplicacion en asp.net y cuando carga..debe
> > mostra una gran cantidad de rgistros...peor hace la
> > aplcacion bastante lenta para cargar..como pueod
> > solucionar eso..hay agluna manera de hacer mas ligera la
> > carga dedatos?
>
>


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