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)
-   -   Comportamiento de indices (https://www.clubdelphi.com/foros/showthread.php?t=32725)

Osorio 14-06-2006 18:47:47

Comportamiento de indices
 
Hola compañeros,


Tengo esta consulta:

SELECT SERIAL
FROM TBL_CONTRATOS
WHERE SERIAL like ('1')

si la ejecuto es super rapida y en el analizador de consultas (IB Manager) me dice que realizo lecturas indizadas (856).

Ahora si mi consulta varia y queda:

SELECT SERIAL
FROM TBL_CONTRATOS
WHERE SERIAL like (:ID)

a la variable ID le asigno en el valor '1'. Se ejecuta mas lento y el analizador de consulta incida lecturas no inidzadas (76.990).

por que este comportamiento? alguien con alguna experiencia similar? alguna alternativa para que la consulta se ejecute mas rapido?

Espero sus comentarios que siempre me vienen bastante bien.

Saludos...

Casimiro Noteví 14-06-2006 21:52:13

¿y también le das el valor '1' a ID? ¿o lo dejas en blanco y por eso te devuelve todos los registros?

Osorio 15-06-2006 17:44:57

correcto, al parametro ID le asigno el valor de '1'.

aclaro: La cantidad de registros que me devuelve es la misma de las dos formas.

el problema es que colocando el valor directamente es mas rapido y con la variable es mas lento (no aprovecha los indices).

Saludos

Paoti 15-06-2006 22:15:25

mmmmh


prueba a poner

prepare.

antes de que mandes la consulta.

otra cosa.
:ID este parametro, establecelo del tipo de dato que estas pasando que es string.


y cuentanos si te resulto.

Osorio 16-06-2006 16:08:36

No puedo hacer prepare, tampoco asString. Puesto que esta consulta hace parte de un procedimiento almacenado.


La he sacado aparte por el inconveniente nada mas.


Saludos.


La franja horaria es GMT +2. Ahora son las 08:34:50.

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