Como corrigir uma consulta implícita lenta na tabela pg_attribute no Rails

Em nosso ambiente de produção, notamos picos frequentes (~ a cada 1 hora) em nosso aplicativo Rails. Indo mais fundo, é devido à seguinte consulta, que é executada cumulativamente> 1,5 s (chamada 100x) em uma única solicitação HTTP.

SELECT a.attname, format_type(a.atttypid, a.atttypmod), pg_get_expr(d.adbin, d.adrelid), a.attnotnull, a.atttypid, a.atttypmod FROM pg_attribute a
LEFT JOIN pg_attrdef d ON a.attrelid = d.adrelid AND a.attnum = d.adnum
WHERE a.attrelid = ?::regclass AND a.attnum > ? AND NOT a.attisdropped 
ORDER BY a.attnum

Não temos código chamando essa tabela explicitamente, mas parece que foi chamado pelo Rails para descobrir os atributos de cada modelo. "Consultas SQL inesperadas ao banco de dados Postgres no Rails / Heroku" está relacionado.

Mas não deveria ser chamado não repetidamente pelo Rails?

Como podemos acelerar isso?

questionAnswers(3)

yourAnswerToTheQuestion