Queries, tabelas e views, oh my

Melhorando o Desempenho de Consultas no PostgreSQL

Amy McCarty

Instructor

Consulta

 

SELECT *
FROM ...
  • Tabela
    • Tabela base
    • Tabela temporária
  • View
    • View
    • View materializada
Melhorando o Desempenho de Consultas no PostgreSQL

Tabela base

 

Describe armazenamento organizado
Contains dados
Loaded processo de extração, transformação e carga (ETL)
Source sistema de RH, CRM, coleta de pesquisas etc.
Melhorando o Desempenho de Consultas no PostgreSQL

Tabela temporária

 

Describe armazenamento organizado (linhas e colunas)
Contains dados
Loaded via consulta (transitória)
Source tabelas base existentes

 

CREATE TEMP TABLE my_temptable AS 
SELECT * 
FROM survey_monkey_results
WHERE survey_date >= '2019-01-01';

SELECT * FROM my_temptable
Melhorando o Desempenho de Consultas no PostgreSQL

View padrão

 

Describe consulta armazenada
Contains instruções / definição da view
Loaded nunca
Source tabelas base existentes

 

Utilidade da view

  • Combinar tabelas com joins frequentes
  • Colunas calculadas
    • Métricas de resumo
  • Mostrar parte dos dados de uma tabela
    • Mostrar funcionários e ocultar salários
Melhorando o Desempenho de Consultas no PostgreSQL

View materializada

 

Describe consulta armazenada view
Contains dados tabela
Loaded processo de atualização tabela
Source tabelas base existentes view

Utilidade da view materializada

  • Igual à view
    • Mais rápida
Melhorando o Desempenho de Consultas no PostgreSQL

Resumo das referências na cláusula FROM

O quê Por quê
Tabela armazenamento base
Tabela temporária acelera consulta em tabela grande
View lógica complexa ou campos calculados
View materializada lógica complexa que afeta desempenho
Melhorando o Desempenho de Consultas no PostgreSQL

Information schema

  • Fornece metadados sobre o banco
  • Existe em muitos bancos
    • PostgreSQL, SQL Server, MySQL

 

SELECT table_type 
FROM information_schema.tables 
WHERE table_catalog = 'orders_schema' 
AND table_name = 'customer_table'

 

 

 

  • BASE TABLE : tabela base
  • LOCAL TEMPORARY : tabela temporária
  • VIEW : view ou view materializada
Melhorando o Desempenho de Consultas no PostgreSQL

Vamos praticar!

Melhorando o Desempenho de Consultas no PostgreSQL

Preparing Video For Download...