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)
-   -   Consulta Firebird lenta? (https://www.clubdelphi.com/foros/showthread.php?t=77699)

elaguna 20-02-2012 17:19:57

Consulta Firebird lenta?
 
Qué tal.

Pues eso, tengo una tabla en Firebird con algo más de 3 millones de registros, si hago una consulta esta se tarda de 10 a 14 segundos, con un resultado de 15 registros. Ya he agregado un índice por el campo que utilizo para la consulta, pero todo igual.

Esta misma tabla la tengo en Postgres y la misma consulta tarda de 2 a 15 ms.

La pregunta: ¿es normal que Firebird tarde tanto?

La consulta es:
Cita:

select * from tabla1 where nrp = '01076853108'
Gracias.


Eduardo Laguna

RONPABLO 20-02-2012 17:34:09

Tienes forma de ver el plan que genera la consulta, de pronto no usa el indice que le indicas... yo por ejemplo uso una aplicación llamada databaseworcbech para correr consultas y de ahí ver el plan usado por la consulta... también puedes poner la consulta que usas de pronto se puede reorganizar o si usas la clausa "in" tengo entendido que puede ser más lenta que usar un "exists"

Casimiro Notevi 20-02-2012 17:34:44

No, claro que no es normal, debe ser instantáneo.

RONPABLO 20-02-2012 17:36:25

Código SQL [-]
select * from tabla1 where nrp = '01076853108'

nrp es el que tiene el indice?? prueba creandolo descendente sí es ascendente o ascendente sí es descendente.

mightydragonlor 20-02-2012 17:50:05

recuerda que el tema de los índices es bien complicado, es decir, puedes tener nrp como índice compuesto, osea, varios campos en un mismo índice, pero si solo vas a buscar por un campo necesitas que el índice esté solamente por ese campo, además también el exceso de índices hace que una consulta sea lenta.

elaguna 20-02-2012 18:34:45

Cita:

Empezado por RONPABLO (Mensaje 425542)
nrp es el que tiene el indice?? prueba creandolo descendente sí es ascendente o ascendente sí es descendente.

Puff!!!, esto pasa cuando llevas varios días viendo los mismos datos. yo estaba seguro de que había creado el índice pero... se lo había creado a la tabla de Postgres (con razón tanta diferencia) :p

Ya he creado el índice en donde iba y todo perfecto.

Muchas gracias por tomarse el tiempo de contestar, este foro es una luz en la oscuridad.

Gracias.


Eduardo Laguna


La franja horaria es GMT +2. Ahora son las 02:49:30.

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