Requêtes, tables et vues, oh là là

Améliorer la performance 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 la performance des requêtes dans PostgreSQL

Table de base

 

Décrit stockage organisé
Contient données
Chargée processus d'extraction, transformation, chargement (ETL)
Source progiciel RH, gestion clients, collecte de sondages, etc.
Améliorer la performance des requêtes dans PostgreSQL

Table temporaire

 

Décrit stockage organisé (lignes et colonnes)
Contient données
Chargée requête (temporaire)
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 la performance des requêtes dans PostgreSQL

Vue standard

 

Décrit requête stockée
Contient instructions / définition de vue
Chargée jamais
Source tables de base existantes

 

Utilité d'une vue

  • Combiner des tables souvent jointes
  • Colonnes calculées
    • Mesures récapitulatives
  • Afficher une partie des données d'une table
    • Montrer les employés sans les salaires
Améliorer la performance des requêtes dans PostgreSQL

Vue matérialisée

 

Décrit requête stockée vue
Contient données table
Chargée actualisation table
Source tables de base existantes vue

Utilité d'une vue matérialisée

  • Comme une vue
    • Plus rapide
Améliorer la performance des requêtes dans PostgreSQL

Résumé des références dans FROM

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

Schéma d'information

  • Fournit des métadonnées sur la base de données
  • Présente dans plusieurs systèmes
    • 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 la performance des requêtes dans PostgreSQL

Passons à la pratique !

Améliorer la performance des requêtes dans PostgreSQL

Preparing Video For Download...