Requêtes, tables et vues : démêlons tout

Améliorer les performances des requêtes dans PostgreSQL

Amy McCarty

Instructor

Requête

 

SELECT *
FROM ...
  • Table
    • Table de base
    • Table temporaire
  • Vue
    • Vue
    • Vue matérialisée
Améliorer les performances des requêtes dans PostgreSQL

Table de base

 

Description stockage organisé
Contenu données
Chargement processus d'extraction, transformation, chargement (ETL)
Source SIRH, CRM, collecte d'enquêtes, etc.
Améliorer les performances des requêtes dans PostgreSQL

Table temporaire

 

Description stockage organisé (lignes et colonnes)
Contenu données
Chargement requête (éphémère)
Source tables de base existantes

 

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

SELECT * FROM my_temptable
Améliorer les performances des requêtes dans PostgreSQL

Vue standard

 

Description requête stockée
Contenu instructions / définition de vue
Chargement jamais
Source tables de base existantes

 

Utilité d'une vue

  • Combiner des tables souvent jointes
  • Colonnes calculées
    • Indicateurs de synthèse
  • Afficher une partie des données d'une table
    • Afficher les employés mais masquer les salaires
Améliorer les performances des requêtes dans PostgreSQL

Vue matérialisée

 

Description requête stockée vue
Contenu données table
Chargement processus d'actualisation table
Source tables de base existantes vue

Utilité d'une vue matérialisée

  • Comme une vue
    • Plus rapide
Améliorer les performances des requêtes dans PostgreSQL

Récapitulatif des références dans FROM

Quoi Pourquoi
Table stockage de base
Table temporaire accélère une requête sur une grande table
Vue logique complexe ou champs calculés
Vue matérialisée logique complexe qui ralentit les performances
Améliorer les performances des requêtes dans PostgreSQL

Schéma d'information

  • Fournit des métadonnées sur la base
  • Présent dans de nombreux SGBD
    • PostgreSQL, SQL Server, MySQL

 

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

 

 

 

  • BASE TABLE : table de base
  • LOCAL TEMPORARY : table temporaire
  • VIEW : vue ou vue matérialisée
Améliorer les performances des requêtes dans PostgreSQL

Passons à la pratique !

Améliorer les performances des requêtes dans PostgreSQL

Preparing Video For Download...