DOCUMENTATION EN LIGNE
DE WINDEVWEBDEV ET WINDEV MOBILE

Aide / WLangage / Gestion des bases de données / HFSQL / Gestion de HFSQL Client/Serveur
  • Présentation
  • Définition
  • Quand utiliser une vue matérialisée ?
  • Créer une vue matérialisée
  • Présentation
  • Création depuis l'éditeur d'analyses
  • Création en utilisant le code SQL
  • Utiliser une vue matérialisée
  • Présentation
  • Droits sur une vue matérialisée
  • Modification du contenu d'une vue matérialisée
  • Index sur une vue matérialisée
  • Fonctions WLangage permettant de manipuler une vue matérialisée
WINDEV
WindowsLinuxUniversal Windows 10 AppJavaEtats et RequêtesCode Utilisateur (MCU)
WEBDEV
WindowsLinuxPHPWEBDEV - Code Navigateur
WINDEV Mobile
AndroidWidget AndroidiPhone/iPadWidget IOSApple WatchMac CatalystUniversal Windows 10 App
Autres
Procédures stockées
Présentation

Définition

Une vue matérialisée est une source de données physique définie par une requête SQL. Cette vue matérialisée est créée physiquement sur le serveur HFSQL. Elle peut être manipulée comme un fichier de données HFSQL par les applications qui accèdent à la base de données.
L'application peut utiliser ou manipuler une vue matérialisée en utilisant les fonctions classiques de gestion des fichiers de données. Les données manipulées ne sont pas mises à jour automatiquement : il est nécessaire de demander la mise à jour des données.

Quand utiliser une vue matérialisée ?

L'utilisation d'une vue matérialisée présente plusieurs avantages :
  • Indépendance vis-à-vis de la structure physique des données :
    La vue matérialisée correspond à une couche d'abstraction entre l'organisation des données et l'utilisation des données. Si la structure physique des données évolue, le code de l'application ne change pas. Seule la requête de base de la vue doit être adaptée à la nouvelle structure.
  • Accélération des traitements
    L'utilisation d'une vue matérialisée est intéressante si l'extraction des données de la vue est un processus long et si les données n'ont pas une obligation de temps réel. Par exemple :
    • statistiques,
    • reporting,
    • data binding,
    • sélections pour mailings,
    • ciblages,
    • création de fichiers de données "à plat",
    • ...
Créer une vue matérialisée

Présentation

Il existe plusieurs méthodes pour créer une vue matérialisée :
  • Création de la vue matérialisée depuis l'éditeur d'analyses. Dans ce cas, pour utiliser la vue matérialisée, une mise à jour des données sur le serveur est nécessaire. Cette mise à jour peut être effectuée :
    • via la modification automatique des données (effectuée lors de l'installation de l'application par exemple).
    • via la fonction HMiseAJourVue.
  • Création de la vue matérialisée en utilisant directement le code SQL "CREATE MATERIALIZED VIEW" dans l'application.

Création depuis l'éditeur d'analyses

Pour créer une vue matérialisée depuis l'éditeur d'analyses :
  1. Lancez l'assistant de création de vues :
    • Dans le ruban, sous le volet "Analyse", dans le groupe "Création", déroulez "Nouveau" et sélectionnez "Vue".
    • Sous le volet "Analyse", sélectionnez le dossier "Vues" puis sélectionnez l'option "Nouvelle vue" du menu contextuel.
  2. Dans l'assistant, sélectionnez "Créer une vue matérialisée" puis passez à l'écran suivant (flèche en bas de l'assistant).
  3. Indiquez le nom de la vue à créer puis sélectionnez le mode d'édition de la requête de base de la vue :
    • Assistant. Dans ce cas, la requête de la vue est créée via l'assistant de création de requêtes. La requête est affichée graphiquement. Il est possible à tout moment de modifier la requête via l'assistant.
    • Code SQL. Dans ce cas, vous saisissez directement le code SQL de sélection des éléments sélectionnés par la vue.
  4. La vue matérialisée est créée. Par défaut, elle n'est pas associée à une connexion. Pour associer la vue à une connexion définie sous l'éditeur d'analyses :
    • Sous le volet "Analyse", sélectionnez la vue matérialisée qui vient d'être créée.
    • Dans le menu contextuel (clic droit), sélectionnez l'option "Description de la vue".
    • Dans la fenêtre qui s'affiche, vous pouvez modifier le nom de la vue matérialisée et spécifier la connexion associée à la vue matérialisée.
    • Validez.
  5. Générez l'analyse pour utiliser la vue matérialisée dans le code de l'application : sous le volet "Analyse", dans le groupe "Analyse", déroulez "Génération" et sélectionnez "Génération".
Remarques :
  • Une clé ou une clé composée sera créée selon le "ORDER BY" défini.
  • Les vues matérialisées ne peuvent pas contenir de paramètres.

Création en utilisant le code SQL

Pour créer une vue matérialisée en utilisant du code SQL, il suffit d'utiliser l'instruction CREATE MATERIALIZED VIEW dans le code SQL de la requête. Par exemple :
Req_Vue est une Source de Données
 
// Création de la vue matérialisée
MonCodeVueMatérialisée est une chaîne
MonCodeVueMatérialisée = [
Create materialized view Vue_Client
AS SELECT * FROM Client
]
HExécuteRequêteSQL(Req_Vue, ConnexionHFSQL, MonCodeVueMatérialisée)
Attention : Le code SQL de création de la vue matérialisée doit faire référence uniquement aux rubriques et aux fichiers de données définis dans l'analyse. Par exemple, il n'est pas possible d'utiliser dans ce code des références à des requêtes stockées.
Utiliser une vue matérialisée

Présentation

Pour utiliser une vue matérialisée, il suffit d'utiliser les fonctions HFSQL d'accès aux fichiers de données. Le paramètre <Nom du fichier> correspondra au nom de la vue matérialisée.
Comme un fichier de données classique, une vue matérialisée peut être :
  • parcourue par les fonctions HFSQL (POUR TOUT, HLit*, ...),
  • associée à un champ (champ Table, Liste, ...).
Remarque : Si la vue matérialisée n'a pas été créée sous l'éditeur d'analyses, il est nécessaire d'utiliser la fonction HDéclareExterne avant de la manipuler.

Droits sur une vue matérialisée

Une vue matérialisée correspond à un fichier de données. La gestion des droits se fait comme pour les fichiers de données. Ces droits peuvent être paramétrés :
Remarque : La fonction HInfoDroitVue permet de connaître les droits actuels sur la vue matérialisée.

Modification du contenu d'une vue matérialisée

Le contenu d'une vue matérialisée est mis à jour :
  • via l'instruction SQL "REFRESH MATERIALIZED VIEW".
  • via la fonction HRafraîchitVue.
  • via une tâche planifiée de rafraîchissement. Cette tâche est définie grâce à une variable du type hPlanificationVueMatérialisée. Cette tâche peut ensuite être manipulée grâce aux fonctions suivantes :
    HAjoutePlanificationCrée une tâche planifiée sur un serveur HFSQL :
    • procédure stockée,
    • sauvegarde,
    • optimisation,
    • rafraîchissement d'une vue matérialisée.
    HExécutePlanificationExécute immédiatement une tâche planifiée sans tenir compte de sa planification :
    • procédure stockée,
    • sauvegarde,
    • optimisation,
    • rafraîchissement d'une vue matérialisée.
    HModifiePlanificationModifie une tâche planifiée sur un serveur HFSQL :
    • procédure stockée,
    • sauvegarde,
    • optimisation,
    • rafraîchissement d'une vue matérialisée.
    HSupprimePlanificationSupprime une tâche planifiée sur un serveur HFSQL :
    • procédure stockée,
    • sauvegarde,
    • optimisation,
    • rafraîchissement d'une vue matérialisée.

Index sur une vue matérialisée

Il est possible de créer un index sur une vue matérialisée à l'aide de l'instruction CREATE INDEX. Si la vue matérialisée est rafraîchie, les index sont mis à jour automatiquement : il n'est pas nécessaire de recréer les index.
Fonctions WLangage permettant de manipuler une vue matérialisée
Les fonctions WLangage permettant de manipuler les vues matérialisées sont les suivantes :
HInfoVueRenvoie des informations sur une vue matérialisée.
HMiseAJourVueCrée ou met à jour la description d'une vue SQL ou d'une vue matérialisée depuis l'analyse vers un serveur HFSQL.
HRafraîchitVueDemande le recalcul du contenu d'une vue matérialisée.
Version minimum requise
  • Version 20
Documentation également disponible pour…
Commentaires
Création d'une vue matérialisée HFSQL depuis une vue Mysql
Comment utiliser ces fonctions dans un environnement multi-serveurs multi-bases ?
Pascal
25 juin 2022

Dernière modification : 26/10/2022

Signaler une erreur ou faire une suggestion | Aide en ligne locale