![]() |
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... |
¿y también le das el valor '1' a ID? ¿o lo dejas en blanco y por eso te devuelve todos los registros?
|
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 |
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. |
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