Zapytania, tabele i widoki

Optymalizacja wydajności zapytań w PostgreSQL

Amy McCarty

Instructor

Zapytanie

 

SELECT *
FROM ...
  • Tabela
    • Tabela bazowa
    • Tabela tymczasowa
  • Widok
    • Widok standardowy
    • Widok zmaterializowany
Optymalizacja wydajności zapytań w PostgreSQL

Tabela bazowa

 

Opisuje zorganizowane przechowywanie danych
Zawiera dane
Ładowane proces ETL (ekstrakcja, transformacja, ładowanie)
Źródło system HR, system CRM, narzędzie do ankiet itp.
Optymalizacja wydajności zapytań w PostgreSQL

Tabela tymczasowa

 

Opisuje zorganizowane (wiersze i kolumny) przechowywanie danych
Zawiera dane
Ładowane zapytanie (tymczasowo)
Źródło istniejące tabele bazowe

 

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

SELECT * FROM my_temptable
Optymalizacja wydajności zapytań w PostgreSQL

Widok standardowy

 

Opisuje zapisane zapytanie
Zawiera instrukcje / definicja widoku
Ładowane nigdy
Źródło istniejące tabele bazowe

 

Zastosowanie widoku

  • Łączenie często joinowanych tabel
  • Kolumny obliczeniowe
    • Metryki podsumowujące
  • Wyświetlanie częściowych danych
    • Pracownicy bez widocznych wynagrodzeń
Optymalizacja wydajności zapytań w PostgreSQL

Widok zmaterializowany

 

Opisuje zapisane zapytanie widok
Zawiera dane tabela
Ładowane proces odświeżania tabela
Źródło istniejące tabele bazowe widok

Zastosowanie widoku zmaterializowanego

  • Jak widok standardowy
    • Szybszy
Optymalizacja wydajności zapytań w PostgreSQL

Podsumowanie: odwołania w klauzuli FROM

Co Dlaczego
Tabela podstawowe przechowywanie danych
Tabela tymczasowa przyspiesza zapytania na dużych tabelach
Widok złożona logika lub pola obliczeniowe
Widok zmaterializowany złożona logika spowalniająca wydajność
Optymalizacja wydajności zapytań w PostgreSQL

Information schema

  • Dostarcza metadanych o bazie danych
  • Dostępny w wielu bazach danych
    • PostgreSQL, SQL Server, MySQL

 

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

 

 

 

  • BASE TABLE : tabela bazowa
  • LOCAL TEMPORARY : tabela tymczasowa
  • VIEW : widok lub widok zmaterializowany
Optymalizacja wydajności zapytań w PostgreSQL

Czas na ćwiczenia!

Optymalizacja wydajności zapytań w PostgreSQL

Preparing Video For Download...