ASP.NET - Desesperado. Databind lento al rellenar DropDownList

 
Vista:

Desesperado. Databind lento al rellenar DropDownList

Publicado por Spidy (3 intervenciones) el 19/06/2012 13:19:56
Hola

Os cuento mi problema:

Estoy desarrollando una aplicación .NET con VS2005. La aplicación es básicamente un formulario con varios campos y DropDownList que se rellenan desde una base de datos de Oracle y que luego pueden seleccionarse para enviar las opciones elegidas. Algunos objetos tienen la propiedad Autopostback=true porque necesito que hagan ciertas cosas cuando los abandono o cambio su contenido.

Bien, los DropDownList se cargan con un código similar a este:


If Page.IsPostBack = False Then

ccSQLaux = "SELECT ...."
Try
ccDaAux = New OleDbDataAdapter(ccSQLaux, ccCnn)
ccDtAux = New DataTable
ccDaAux.Fill(ccDtAux)

With DD_Mdir
.DataSource = ccDtAux
.DataTextField = "dir"
.DataValueField = "cod_dir"
.DataBind()
End With

Catch ex As Exception
' Gestión de errores
End Try

end if



Todo funciona correctamente y en el equipo de desarrollo, cuando lo ejecuto en el servidor web local de VS2005 la velocidad de la aplicación es notable. Muy ágil. Pero en cambio, cuando lo publico en el servidor web de la empresa (Windows 2003 Web Edition con hardware más que sobrado) el relleno de los DropDownList enlentece sobremanera la aplicaiónn e incluso cualquier evento que se desencadena parece como si volviera a cargar los datos, cuando no es así ya que las selecciones realizadas en los DropDown se mantienen y además he depurado el código y solo se cargan en la primera llamada a la aplicación.

Si comento la línea .DataBind() de cada bloque With-End With la aplicación vuelve a ser rápida. Es decir, el problema está en el relleno de los DropDownList.

¿Alguna forma de rellenarlos más rápidamente?
¿A qué es debido esa diferencia de rendimiento entre el servidor Local y el de producción, cuando debería ser justo lo contrario?

Gracias por vuestra ayuda porque estoy un poco bloqueado con este tema y me están poniendo las orejas coloradas en el trabajo.

Un saludo
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de roger

Desesperado. Databind lento al rellenar DropDownList

Publicado por roger (311 intervenciones) el 19/06/2012 16:03:27
Pero son bases de datos distintas no?, la de produccion y la de desarrollo?, Será que esta trayendo demasiada información en producción para llenar el dropdownlist?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Desesperado. Databind lento al rellenar DropDownList

Publicado por spidy (3 intervenciones) el 19/06/2012 16:37:16
Hola

Gracias por contestar.

No, la base de datos es la misma. En ese sentido las pruebas son absolutamente reales. La única diferencia es trabajar con el servidor web local o el de producción.

He estado mirando y uno de los dropdownlist trae muchos datos. Entonces, el ViewState de la página se hace enorme (guardada en local ocupa 1,5 MBytes cuando el aspx y el vb asociado solo ocupan 60 KBytes)

Lo único que se me ocurre es que la transferencia de la página en local sea mucho más rápida que desde el IIS de producción. Pero poco puedo hacer ahí porque ese Dropdownlist lo tengo que rellenar si o si.

¿Alguna idea?

Un saludo
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de roger

Desesperado. Databind lento al rellenar DropDownList

Publicado por roger (311 intervenciones) el 19/06/2012 17:09:18
1.5MB es bastante pesado para una pagina web, cuantos registros trae ese dropdownlist???, han de ser miles, no debe ser muy facil para el usuario acceder a la información de esa lista, podrias pensar en otra estrategia para presentar esta informacion, con una busqueda avanzada o algo asi, o un dropdownlist paginado que es algo mas complejo

Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Desesperado. Databind lento al rellenar DropDownList

Publicado por spidy (3 intervenciones) el 19/06/2012 18:46:03
Si, es una Select que se trae todas las empresas registradas en la mía. Unas 14.000, una barbaridad. Por eso el ViewState se hacía inmenso.

Obviamente ese es el problema y estoy siguiendo tu idea. He cambiado el formulario para que el usuario introduzca un string en un campo de búsqueda y el dropdownlist se rellene solo con el resultado de una sentencia LIKE de SQL. Las primeras pruebas son muy satisfactorias y el cambio de velocidad es abismal. Voy a tirar por ahí.

Muchas gracias por tu ayuda, roger

Un saludo
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar