Buenos días. Necesito que me ayudéis con un problema. Tengo este query que se ejecuta en FB 2.5:
Código SQL
[-]SELECT A.CodPrv, A.Codigo, A.Apellidos, A.Nombre, A.Referencia, A.Situacion, A.F_alta, B.Cuota
FROM Persona A, Cuotas B
WHERE A.CodPrv = :PrvIns
AND A.Codigo NOT IN (SELECT DISTINCT Codigo FROM Recibos WHERE CodPrv = A.CodPrv AND RefInt LIKE '1%' OR RefInt LIKE '2%')
AND A.CodPrv = B.CodPrv AND A.Codigo = B.Codigo AND B.Tipo = 'A' AND B.Cuota > 0
Las tablas Persona y Cuotas tienen como clave primaria CodPrv y Codigo; además Cuotas tiene una clave externa sobre esos mismos campos de Persona. La tabla Recibos tiene como clave primaria CodPrv, Codigo, Fecha y RefInt y tiene un índice sobre CodPrv y Codigo. La tabla Persona tiene ahora 15130 registros, Cuotas 4282 y Recibos 35471; tampoco son unas cifras excesivas.
El problema que tengo es este:

Como veis todas las lecturas que se hacen sobre la tabla Recibos no se hacen siguiendo el índice a pesar de que el campo que se compara está tanto en la clave primaria como en un índice y por lo tanto la ejecución se demora muchísimo, casi 4 minutos. Es más: si ejecuto el SELECT DISTICNT etc. sólo todas las lecturas que se hacen (70942) se hacen sin seguir ningún índice.
Mi pregunta es: ¿hay alguna forma de forzar que la lectura de la tabla Recibos se haga siguiendo un índice?