Есть таблица Responsible, столбец Documents (тип bigint) ид. документа, User(тип []text) - массив пользователей. Нужно при смене пользователя, обновить этого пользователя в массиве User. Есть такой запрос Код (Text): UPDATE "Responsible" SET "User" = array_replace( "User" , 'Петров'::text , 'Иванов'::text ) WHERE "Documents" = ANY('{3}') AND array_position("User", 'Петров'::text) IS NOT NULL Но он много потребляет shared hit. Код (Text): Update on "Responsible" (cost=0.43..99802.28 rows=154773 width=74) (actual time=179.690..179.691 rows=0 loops=1) Buffers: shared hit=136800 -> Index Scan using "iDocuments" on "Responsible" (cost=0.43..99802.28 rows=154773 width=74) (actual time=179.688..179.688 rows=0 loops=1) Index Cond: ("Documents" = ANY ('{3}'::bigint[])) Filter: (array_position("User", 'Петров'::text) IS NOT NULL) Rows Removed by Filter: 149754 Buffers: shared hit=136800 Используется индекс по Documents, хочется уменьшить потребление shared hit, нет мыслей как это сделать. Как-то переписать запрос или изменить индекс не получается