Subject Re: Understand query plan Filter after Filter
Author Dmitry Yemanov
19.07.2019 14:28, liviuslivius wrote:
>
> what does it mean if below i have twice -> Filter -> Filter?

A bit unusual, but nothing bad. Optimizer for some reason could not
combine different booleans together and decided to check them
separately. I'd suppose the inner boolean is likely a re-check of the
indexed condition, while the outer one is some other non-indexed
condition (perhaps the one involving both tables).

> Select Expression
>     -> Filter
>         -> Nested Loop Join (outer)
>             -> Filter
>                 -> Table "RDB$DATABASE" as "X RDB$DATABASE" Full Scan
>             -> Filter
>                 -> Filter
>                     -> Table "RDB$RELATION_FIELDS" as "RF" Access By ID
>                         -> Bitmap
>                             -> Index "RDB$INDEX_4" Range Scan (full match)
> Select Expression
>     -> Filter
>         -> Nested Loop Join (outer)
>             -> Filter
>                 -> Table "RDB$RELATIONS" as "R" Full Scan
>             -> Filter
>                 -> Table "RDB$DATABASE" as "Y RDB$DATABASE" Full Scan


Dmitry