PGSQL версия 14
Есть таблица Documents и таблица Search (в ней лежат данные для поиска по Documents).
Связь между таблицами Documents 1-> N Search. Таблицы связаны по полям RootId (ид. корня документа) и Id (идентификатор записи документа).
Есть один документ, где все названия записей начинаются со строки «1.2», записей таких 110K+.
При поиске по этой строке план запроса получается плохой, PG достает все записи и сортирует их, это занимает время и shared hit\shared read
   select 
      s."FullName", s."Id"
FROM
	 "Documents" s
inner join "Search" k on (k."RootId" = s."RootId" and k."Id" = s."Id")
where
		k."Name" is true AND
		k."Item" iLIKE '1.2%' AND
		k."RootId" = 111 
ORDER by
     s."FullName"
limit 40 
но если из запроса убрать условие k.«Item» iLIKE ‘1.2%’
select 
      s."FullName", s."Id"
FROM
	 "Documents" s
inner join "Search" k on (k."RootId" = s."RootId" and k."Id" = s."Id")
where
		k."Name" is true AND
		k."RootId" = 111 
ORDER by
     s."FullName"
limit 40 
то PG начинает использовать Incremental Sort, достает только 40 записей уже отсортированных и план становится намного лучше.
Вопрос: почему PG может не использовать Incremental Sort, и как помочь ему это сделать?

