IA: plano e otimização SQL
Este curso lê planos de execução do PostgreSQL capturados no banco de desenvolvimento de um app Rails. Ele mostra a diferença entre EXPLAIN e EXPLAIN ANALYZE e como comparar estimativas de custo com tempos e linhas medidos. Em seguida vêm três consultas do app: um seq scan com ordenação, um bitmap index scan que ainda ordena e uma CTE que alimenta uma window function. Uma estimativa de linhas errada é ligada à falta de estatísticas e corrigida com ANALYZE. As últimas aulas tratam de pedir a uma IA que leia um plano e de conferir a correção sugerida.
O que você vai aprender
- ✓A diferença entre EXPLAIN e EXPLAIN ANALYZE, e por que o ANALYZE numa escrita a executa
- ✓Ler nós de plano como Seq Scan, Bitmap Heap Scan, Sort, HashAggregate e WindowAgg
- ✓Por que um índice usado ainda pode deixar uma etapa Sort separada
- ✓Como a falta de estatísticas gera estimativas de linhas erradas, e como o ANALYZE as corrige
- ✓Pedir a uma ferramenta de IA que leia um plano completo e conferir a resposta contra o plano e o schema
O que EXPLAIN e EXPLAIN ANALYZE mostram
"Querying: detecção N+1" ensinou a ler o log/development.log deste app atrás de uma rajada de consultas repetidas. Era um rótulo que aparece dezenas de vezes, igual exceto por um id que varia. Isso é um padrão entre várias consultas. Este curso começa um nível abaixo, no que o plano de execução de…
Ler a aula completa grátis →Currículo
7 aulasO que EXPLAIN e EXPLAIN ANALYZE mostram
Mostra que o EXPLAIN dá estimativas sem executar a consulta, e o EXPLAIN ANALYZE executa e acrescenta medições.
Lendo a anatomia de um plano: tipos de scan, custo, e linhas
Lê o plano da consulta de cursos ativos: um Seq Scan, um Sort, estimativas de custo e linhas medidas.
Um index scan que ainda precisa de um sort
Mostra por que um bitmap scan num índice composto perde a ordem dele e ainda precisa de um Sort barato.
Lendo joins e agregados num plano
Lê o plano de uma CTE com HashAggregate, Sort, WindowAgg e um Filter externo aplicado depois da ordenação.
Quando a estimativa do planejador está errada
Liga uma estimativa de 43 grupos contra 3 linhas reais à falta de estatísticas e corrige isso com ANALYZE.
Fazendo prompt de IA para ler um plano de query
Mostra como colar um plano completo numa ferramenta de IA e conferir a resposta com três checagens.
Juntando tudo: do plano bruto a uma correção verificada
Junta o fluxo e confere qualquer correção sugerida capturando um EXPLAIN ANALYZE novo e lendo os números dele.