Estamos executando a seguinte consulta no nosso instância RDS e ele está tomando grande quantidade de tempo e para diferentes companyId ele é executado em um segundo.
Consulta:
Consulta Simples
select * from items_1_primary WHERE items_1_primary.item_type_id IN (1,2) AND items_1_primary.hidden IS NULL AND items_1_primary.company_id = 9130347227057236 ORDER BY items_1_primary.id LIMIT 1 OFFSET 0
FYI Este é o plano de consulta para duas empresas diferentes
inventorymigrationprod=> explicar analisar select * from items_1_primary ONDE items_1_primary.item_type_id EM (1,2) E items_1_primary.oculto É NULO E items_1_primary.company_id =9130347227057236 ORDEM items_1_primary.id do LIMITE de 1 DESVIO 0;
PLANO DE CONSULTA
Limite (custo=0.57..1894.58 linhas=1 width=332) (tempo real=372100.718..372100.719 linhas=1 loops=1) -> Index Scan usando items_1_primary_pkey no items_1_primary (custo=0.57..175867668.27 linhas=92855 largura=332) (tempo real=372100.717..372100.717 linhas=1 loops=1) Filtro: (escondida(É NULO) E (item_type_id = QUALQUER ('{1,2}'::numérico[])) E (company_id = '9130347227057236'::numérico)) Linhas Removido pelo Filtro: 535927031 O Tempo de planejamento: 1.626 ms Tempo de execução: 372100.745 ms (6 linhas)
inventorymigrationprod=> explicar analisar select * from items_1_primary ONDE items_1_primary.item_type_id EM (1,2) E items_1_primary.oculto É NULO E items_1_primary.company_id =9130348260181756 ORDEM items_1_primary.id do LIMITE de 1 DESVIO 0; PLANO DE CONSULTA
Limite (custo=10659.77..10659.77 linhas=1 width=332) (tempo real=9.559..9.560 linhas=1 loops=1) -> Sort (custo=10659.77..10665.38 linhas=2242 largura=332) (tempo real=9.557..9.558 linhas=1 loops=1) Chave de classificação: identificação O Método de classificação: top-N heapsort Memória: 25kB -> Index Scan usando items_1_primary_company_id_item_type_id no items_1_primary (custo=0.57..10648.56 linhas=2242 largura=332) (tempo real=0.057..6.117 linhas=10823 loops=1) Index Cond: ((company_id = '9130348260181756'::numérico) E (item_type_id = QUALQUER ('{1,2}'::numérico[]))) Filtro: (oculto É NULO) O Tempo de planejamento: 0.138 ms Tempo de execução: 9.589 ms (9 linhas) Instância de banco de dados(s): inventário-migração-prod-cluster
Índices Na Tabela
índices: "items_1_primary_pkey de CHAVE PRIMÁRIA", btree (id) "items_1_primary_company_id_item_type_id" btree (company_id, item_type_id) "items_1_primary_uniqueness" RESTRIÇÃO EXCLUSIVA, btree (company_id, item_id)