Estou executando um Aurora PostgreSQL em uma db.x2g.2xlarge
instância. A simples criação de tabela temporária apareceu como a terceira maior espera, o que me surpreende, pois esperava que fosse uma das consultas mais leves.
A consulta é chamada em uma transação:
CREATE TEMP TABLE identifiers_to_resolve (
scheme_pk BIGINT,
host_pk BIGINT,
port INT NOT NULL,
scheme_specific_part VARCHAR NOT NULL,
index INTEGER NOT NULL
) ON COMMIT DROP;
Quero usar a tabela temporária como um armazenamento temporário na transação durante uma consulta mais complicada.
As estatísticas dos insights de desempenho:
- Carga por espera (AAS): 0,42
- Chamadas/s: 123,64
- Acertos pretos/s: 48.499,58
- Gravações pretas/seg: 16,32
- Latência média ms/chamada: 3,24
- Preto atinge/liga 329,27
- Blk escreve/chama 0,13
Todas as outras estatísticas são 0.
Os insights de desempenho registram as esperas como quase todas as "CPU". Captura de tela anexada.
Acho que 123 chamadas por segundo é uma taxa bastante baixa e estou surpreso que esteja sobrecarregando tanto o banco de dados e afetando tantos blocos. Pelos casos de uso que li sobre tabelas temporárias, esperava que tivessem menor impacto.
É típico que a criação de tabelas temporárias cause tanta espera na CPU?