Adding +0 or || '' (depending on type of field_A) would make it more likely
that the table_B.field_B index will be used. It wouldn't force the
optimizer, just be a strong hint...

Select * from table_A a left join table_B b on a.field_A = b.field_A+0
where b.field_B = 1

HTH,
Set

Den tor. 7. mar. 2019 kl. 12:32 skrev Carsten Schäfer ca_schae...@gmx.de
[firebird-support] <firebird-support@yahoogroups.com>:

>
>
> Yes I'm sure.
>
> With the left join FB does a full scan on Table_A and uses the Foreign Key
> index on Table_B. The index on table_B.field_B is not used at all.
>
> So you get millions of reads if the table contains millions of data
>
> With the inner join the index on  table_B.field_B is used and you only
> get 1 read (if It's only 1 row that matches the condition)
>
> Is it possible to force the optimizer tu use the index on table_B.field_B?
>
>
> Regards
> Carsten
>
>
> Am 06.03.2019 um 21:49 schrieb Karol Bieniaszewski
> liviusliv...@poczta.onet.pl [firebird-support]:
>
>
>
> Are you sure that this query looks like this?
>
>
>
> For me such query use indexes in both cases left and inner.
>
> Show full example with plans
>
>
>
> Regards,
>
> Karol Bieniaszewski
>
>
>
> 
  • [firebi... Carsten Schäfer ca_schae...@gmx.de [firebird-support]
    • [f... Carsten Schäfer ca_schae...@gmx.de [firebird-support]
      • ... Karol Bieniaszewski liviusliv...@poczta.onet.pl [firebird-support]
        • ... Carsten Schäfer ca_schae...@gmx.de [firebird-support]
          • ... Svein Erling Tysvær setys...@gmail.com [firebird-support]
          • ... Dmitry Yemanov dim...@users.sourceforge.net [firebird-support]
      • ... Svein Erling Tysvær setys...@gmail.com [firebird-support]

Reply via email to