Subject | Re: Understand query plan Filter after Filter |
---|---|
Author | Dmitry Yemanov |
Post date | 2019-07-20T07:28:38Z |
19.07.2019 14:28, liviuslivius wrote:
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).
>A bit unusual, but nothing bad. Optimizer for some reason could not
> what does it mean if below i have twice -> Filter -> Filter?
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 ExpressionDmitry
> -> 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