Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Firebird e Interbase (https://www.clubdelphi.com/foros/forumdisplay.php?f=19)
-   -   Problemas con Consultas (https://www.clubdelphi.com/foros/showthread.php?t=8365)

rogeriobeltran 18-03-2004 21:09:16

Problemas con Consultas
 
Buenas a Todos.

Mi inconcveniente consiste en que tengo una tabla de mas de cuatro millones de registros, realizao una consulta de donde extraigo 4000 registro con 12 campos, despues que visualizo la consulta el sistema se vuelve lento, quisiera saber si hay una forma de suavisarla. Trabajo con interbase y Delphi.

Gracias de antemano.

Orlando :confused:

guillotmarc 18-03-2004 21:18:22

Cuando hayas terminado de visualizar la consulta, cierrala para recuperar la memória dedicada a mantener esos registros. Con eso el sistema debería volver a la normalidad.

Saludos.

PepeLolo 30-03-2004 19:49:39

Cita:

Empezado por rogeriobeltran
Buenas a Todos.

Mi inconcveniente consiste en que tengo una tabla de mas de cuatro millones de registros, realizao una consulta de donde extraigo 4000 registro con 12 campos, despues que visualizo la consulta el sistema se vuelve lento, quisiera saber si hay una forma de suavisarla. Trabajo con interbase y Delphi.

Que barbaridad. Eso son muchismos registros, esa consulta no tiene sentido, para que obtener 4000 registros. Eso que utilidad tiene en un usuario. No sirve para nada. A no ser que estes lanzando una consulta para esplotación de información, Tipo listado, estadisticas, etc.

Yo modificaria la consulta para que esta no devuelva más de 200 registros por consulta. Obligando al usuario a que concrete más la consulta. Creo recordar que Firebird en su última versión, permite indicar en la Select cuantos registros quieres que devuelva.

Saludos

jachguate 30-03-2004 19:57:52

A lo dicho por Pepe, solo añadir que debes recordar que el cliente mantendrá en memoria los 4000 registros.... si el cliente tiene poca memoria, esto podria provocar swaping, con una rebaja considerable en el rendimiento. Es mejor, como ya apuntó Pepe, una consulta mas pequeña.

Hasta luego.

;)

Gydba 30-03-2004 21:47:06

Para indicar el máximo de registros a devolver en el select como dice PepeLolo se utiliza FIRST.

También habría que ver por que razones devuelve 4000 registros, pero lo cierto es que ningún usuario en mi opinión tiene la capacidad de evaluar mas de 500 registros en una consulta, a menos que sea para generar algún tipo de informe.

jachguate 30-03-2004 22:42:14

Cita:

Empezado por Gydba
a menos que sea para generar algún tipo de informe.

En cuyo caso podes olvidarte del cursor bidireccional, con lo que tanto el BDE como cualquier otra librería de acceso a datos debiera deshacerse de los registros una vez usados, pues no tiene sentido mantenerlos en memoria... cierto??

Hasta luego.

;)


La franja horaria es GMT +2. Ahora son las 22:13:58.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi