ou como reduzimos a consulta sql de 150 segundos para 60 ms 🙂
temos uma cadeia de funções que retorna uma matriz de ids de registros e usamos ANY operador – e a consulta era muito lenta em grandes conjuntos de dados.
SELECT "users".* FROM "users" WHERE "users"."id" = ANY(get_involved_user_ids_in_projects_for_user_id(3))
substituindo = ANY (array) com IN (SELECT (UNNEST (array))), assim como abaixo
SELECT "users".* FROM "users" WHERE "users"."id" IN (select(unnest(get_involved_user_ids_in_projects_for_user_id(3))))
reduza o tempo de consulta de 150 segundos para 3 segundos :-). substituindo todas as ANY instruções para IN SELECT UNNEST na própria função – nos leva a 60 ms 🙂