PDA

Ver la Versión Completa : Problemas con Consultas


rogeriobeltran
18-03-2004, 21:09:16
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
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
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.

;)