CursorAdapter lento

20/10/2004 - 17:22 por Gonzalo E. Marín | Informe spam
Foxeros.
Estoy trabajando con CA y necesito acelerar la creación de los CA "sin
datos".
Tengo una tabla de 1.5 millón de registros y tarda casi 23 segundos en
terminar el CursorFill() del cursor. Si simplemente quiero crear el CA sin
datos... alguien puede sugerirme un método mas rápido ?
Luego con ese CA necesito traer datos a medida que los requieran los
usuarios, con conjuntos de resultados de 0 a 150 registros como máximo.

Si necesitan mas datos estoy a sus ordenes...

Gonzalo.
Lic. en Sistemas
Misiones - Argentina



Outgoing mail is certified Virus Free.
Checked by AVG anti-virus system (http://www.grisoft.com).
Version: 6.0.778 / Virus Database: 525 - Release Date: 15/10/2004

Preguntas similare

Leer las respuestas

#1 Angel Ferreira
21/10/2004 - 05:42 | Informe spam
Hola Gonzalo.

La forma de crear tu cursorAdpater sin que el mismo se llene es no
ejecutando el metodo CursorFill().

Cambia la propiedad FetchSize del CursorAdpater al numero de registros que
desees regresar de una sola vez.

Por ultimo utiliza CursorFill() solo cuando necesites llenar tu recordset.

Otra cosa, CursorAdpater fue utilizado para trabajar Cliente/Servidor.
Debes evaluar por cuál razon necesitas traer al cliente 1.5 Millones de
registros. En este caso te recomiendo que estudies tu consulta y que uses
consultas lo mas parametrizadas posibles para minimizar el numero de
registros a retornar del Server al Cliente. Si es inevitable minimizar el
nro. de registros a obtener, entonces debes evaluar de qué otra manera
puedes tener esos datos del lado del cliente.

Saludos (y)

Angel Ferreira.


"Gonzalo E. Marín" escribió en el mensaje
news:%
Foxeros.
Estoy trabajando con CA y necesito acelerar la creación de los CA "sin
datos".
Tengo una tabla de 1.5 millón de registros y tarda casi 23 segundos en
terminar el CursorFill() del cursor. Si simplemente quiero crear el CA sin
datos... alguien puede sugerirme un método mas rápido ?
Luego con ese CA necesito traer datos a medida que los requieran los
usuarios, con conjuntos de resultados de 0 a 150 registros como máximo.

Si necesitan mas datos estoy a sus ordenes...

Gonzalo.
Lic. en Sistemas
Misiones - Argentina



Outgoing mail is certified Virus Free.
Checked by AVG anti-virus system (http://www.grisoft.com).
Version: 6.0.778 / Virus Database: 525 - Release Date: 15/10/2004


Respuesta Responder a este mensaje
#2 Gonzalo E. Marín
25/10/2004 - 17:19 | Informe spam
Angel
La cosa parece que no se ha comprendido muy bien. No es que necesite traer
todos los registros. Obviamente que la consulta está parametrizada y cuando
la invoco trae no mas de 150 registros. El asunto es que al crear el Objeto
CA debo tener una "réplica" de la estructura de la tabla a la que estoy
consultando. No necesito los datos hasta que determinen los usuarios los
parámetros de la consulta. Ahora bien, la primera vez que invoco el
CursorFill() es cuando tarda mas que considerablemente. Como la primera vez
es sin datos, tarda mucho en devolverme la "respuesta" el método
CursorFill().
A propósito de lo que me comentas, no es lo mismo establecer la propiedad
MaxRecords con valor 0 para que no traiga ningún registro ?
Cómo se relaciona ésto con lo que has mencionado de la propiedad FetchSize ?

Gracias.

"Angel Ferreira" escribió en el mensaje
news:e5iN0$
Hola Gonzalo.

La forma de crear tu cursorAdpater sin que el mismo se llene es no
ejecutando el metodo CursorFill().

Cambia la propiedad FetchSize del CursorAdpater al numero de registros que
desees regresar de una sola vez.

Por ultimo utiliza CursorFill() solo cuando necesites llenar tu recordset.

Otra cosa, CursorAdpater fue utilizado para trabajar Cliente/Servidor.
Debes evaluar por cuál razon necesitas traer al cliente 1.5 Millones de
registros. En este caso te recomiendo que estudies tu consulta y que
uses
consultas lo mas parametrizadas posibles para minimizar el numero de
registros a retornar del Server al Cliente. Si es inevitable minimizar el
nro. de registros a obtener, entonces debes evaluar de qué otra manera
puedes tener esos datos del lado del cliente.

Saludos (y)

Angel Ferreira.


"Gonzalo E. Marín" escribió en el mensaje
news:%
Foxeros.
Estoy trabajando con CA y necesito acelerar la creación de los CA "sin
datos".
Tengo una tabla de 1.5 millón de registros y tarda casi 23 segundos en
terminar el CursorFill() del cursor. Si simplemente quiero crear el CA
sin
datos... alguien puede sugerirme un método mas rápido ?
Luego con ese CA necesito traer datos a medida que los requieran los
usuarios, con conjuntos de resultados de 0 a 150 registros como máximo.

Si necesitan mas datos estoy a sus ordenes...

Gonzalo.
Lic. en Sistemas
Misiones - Argentina



Outgoing mail is certified Virus Free.
Checked by AVG anti-virus system (http://www.grisoft.com).
Version: 6.0.778 / Virus Database: 525 - Release Date: 15/10/2004











Outgoing mail is certified Virus Free.
Checked by AVG anti-virus system (http://www.grisoft.com).
Version: 6.0.782 / Virus Database: 528 - Release Date: 22/10/2004
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida