On Thu, Jul 17, 2025 at 5:58 AM Sajith Prabhakar Shetty
<ssajith@blackduck.com> wrote:
> In regards to your point below, it is true that the index only scan is 2.5 times slower on PG17 and primary
differenceis in that index-only scan of ui_stream_file_id_component at line 14. It takes 6 microseconds per row in PG
15,2 microseconds per row in 16, and 14 microseconds in 17
The important difference is the choice of index for the outermost
nestloop join's inner index scan. A different index is used on
Postgres 17:
On Postgres 15, you're using the likely-single-column stream_file_pkey
index, which uses filter quals for the ScalarArrayOp/= ANY condition.
Whereas on Postgres 17, you're using the ui_stream_file_id_component
index instead (a multicolumn index), which uses a true index qual for
the "id = sdo.stream_file_id" as well as for the ScalarArrayOp/= ANY
condition.
--
Peter Geoghegan