Práce s dočasnými tabulkami

Optimalizace výkonu dotazů v PostgreSQL

Amy McCarty

Instructor

O dočasných tabulkách

Co?

  • Krátkodobá tabulka

Proč?

  • Přechodné úložiště
  • Databázová relace
  • Více dotazů
  • Specifické pro uživatele
  • Pomalé tabulky

Jak?

  • CREATE TEMP TABLE name AS
Optimalizace výkonu dotazů v PostgreSQL

Struktura dočasné tabulky

holiday holiday_type country_code
Epiphany religious CZE
Epiphany religious FRA
Epiphany religious USA
Thanksgiving secular USA
CREATE TEMP TABLE usa_holidays AS
  SELECT holiday, holiday_type
  FROM world_holidays
  WHERE country_code = 'USA';

 

 

 

Svátky USA

holiday holiday_type
Epiphany religious
Thanksgiving secular
Optimalizace výkonu dotazů v PostgreSQL

Pomalé, velké tabulky

  • Pomalá kvůli velkému počtu záznamů

 

Statistiky tabulky World Holidays USA Holidays
Typ tabulka dočasná tabulka
Počet řádků 591 444 25
Optimalizace výkonu dotazů v PostgreSQL

Pomalé, složité pohledy

  • Pomalá kvůli logice pohledu

Diagram znázorňující, jak tabulky jednotlivých zemí tvoří pohled World Holidays

Statistiky tabulky World Holidays USA Holidays
Typ pohled dočasná tabulka
Počet řádků 591 444 25
Zdroje 195 1
  • Tabulky obsahují data
  • Pohledy obsahují instrukce k datům
Optimalizace výkonu dotazů v PostgreSQL

Spojování mnoha tabulek do jedné

CREATE TEMP TABLE usa_holidays AS
  SELECT holiday, holiday_type
  FROM world_holidays
  WHERE country_code = 'USA';
WITH religious AS 
(   SELECT usa.holiday, r.initial_yr
     , r.celebration_dt
    FROM religious r
    INNER JOIN usa_holidays usa 
      USING (holiday)  )
, secular AS 
(   SELECT usa.holiday, s.initial_yr
     , s.celebration_dt
    FROM secular s
    INNER JOIN usa_holidays usa
      USING (holiday)  )
, ...
Optimalizace výkonu dotazů v PostgreSQL

ANALYZE

 

1 CREATE TEMP TABLE usa_holidays AS
2 SELECT holiday, holiday_type
3 FROM world_holidays
4 WHERE country_code = 'USA';
5 
6 ANALYZE usa_holidays;
7 
8 SELECT * FROM usa_holidays

Plánovač dotazů (kroky spuštění)

Několik kuchařů kolem velkého hrnce

  • Statistiky z pg_statistics
  • Odhady doby běhu
Optimalizace výkonu dotazů v PostgreSQL

Lass uns üben!

Optimalizace výkonu dotazů v PostgreSQL

Preparing Video For Download...