HQbird 2024R2 Update 10 Détail de ce qui est nouveau
Quoi de neuf dans HQbird 2024R2 Update 10
Vues matérialisées (Nouvelle fonctionnalité en 5.0)
HQbird inclut désormais la prise en charge complète des vues matérialisées - un nouveau type d’objet de base de données qui combine la définition d’une vue avec le stockage physique d’une table régulière.
Aperçu
Une vue matérialisée (MV) est définie à l’aide d’une requête SQL standard, que le moteur utilise pour remplir une table MV sous-jacente avec des lignes de données. Contrairement aux vues régulières, les données MV sont persistées sur le disque et peuvent être indexées. Les instructions DML (INSERT, UPDATE, DELETE) ne sont pas autorisées directement sur les MV - les données doivent être mises à jour à l’aide de la nouvelle commande REFRESH.
Création et gestion des vues matérialisées
CREATE [OR ALTER] MATERIALIZED VIEW- crée ou remplace une MV avec un chargement initial de données facultatif (WITH DATA/WITH NO DATA).ALTER MATERIALIZED VIEW- modifie la définition de la MV ; supprime automatiquement tous les index existants.RECREATE MATERIALIZED VIEW- supprime toute vue existante (régulière ou matérialisée) portant le même nom et crée une nouvelle MV.DROP VIEW- utilisé pour supprimer une vue matérialisée (pas de commandeDROP MATERIALIZED VIEWséparée).- Des index de tout type peuvent être créés sur les MV. Les contraintes et les déclencheurs ne sont pas pris en charge.
Conversion entre types de vues
ALTER MATERIALIZED VIEW ... TO NOT MATERIALIZED- convertit une MV en vue régulière. Tous les index et données sont supprimés.ALTER VIEW ... TO MATERIALIZED- convertit une vue régulière en vue matérialisée. Les objets dépendants ne sont pas affectés.
Actualisation des données des vues matérialisées
La nouvelle instruction REFRESH MATERIALIZED VIEW met à jour le contenu des MV. Il s’agit d’une commande DDL - l’exécution est différée jusqu’à ce que la transaction en cours soit validée. Quatre modes sont disponibles :
-
Rechargement complet (mode exclusif) -
REFRESH MATERIALIZED VIEW- Désactive les index, supprime toutes les données existantes, recharge à partir de la requête MV, réactive les index.
- Option la plus rapide lorsque de nombreuses lignes ont changé.
- Nécessite un verrou exclusif sur la table MV.
- En cas d’erreur de chargement des données : les données nouvellement chargées sont supprimées, les index sont réactivés comme vides.
- En cas d’erreur d’activation d’index : l’index concerné reste inactif ; les données et les autres index ne sont pas affectés. Les erreurs de construction d’index sont signalées comme avertissements.
-
Mise à jour concurrente -
REFRESH MATERIALIZED VIEW CONCURRENTLY- Aucun verrou exclusif requis - les requêtes concurrentes sur la MV sont autorisées pendant l’actualisation.
- Utilise un algorithme de fusion avec deux curseurs ordonnés : un pour les données MV actuelles, un pour les résultats de la requête MV.
- Insère de nouvelles lignes, met à jour les lignes modifiées, supprime les lignes retirées - le tout sous contrôle transactionnel.
- Nécessite un index unique sur la MV.
- Préféré lorsque l’accès concurrent est nécessaire ou lorsque peu de lignes ont changé depuis la dernière actualisation.
- Remarque : si la requête MV contient
ORDER BY, l’ordre des lignes peut ne pas être préservé après une actualisation concurrente.
-
Suppression de toutes les données -
REFRESH MATERIALIZED VIEW DROP DATA- Supprime toutes les données MV et le contenu des index. Utile pour libérer de l’espace disque. Nécessite un verrou exclusif.
-
Actualisation en cascade - ajoutez
CASCADEà l’une des formes ci-dessus- Actualise toutes les MV dont dépend la MV donnée, dans l’ordre de dépendance correct.
- Chaque MV n’est traitée qu’une seule fois.
CONCURRENTLY CASCADEnécessite que toutes les MV concernées aient un index unique.DROP DATA CASCADEsupprime les données de toutes les MV concernées.- Les noms des MV concernées et l’ordre d’actualisation sont signalés comme avertissements dans le vecteur de statut avant la validation.
Sauvegarde et restauration (gbak)
- Sauvegarde : les données MV ne sont pas stockées dans le fichier de sauvegarde, comme pour les vues régulières - aucune gestion spéciale requise.
- Restauration : toutes les MV sont automatiquement actualisées à la fin du processus de restauration, dans l’ordre de dépendance correct.
- Nouveau commutateur gbak
-NO_MATVIEWS(peut être abrégé en-NO_M) - ignore l’actualisation des MV pendant la restauration. - Option correspondante de l’API Services :
isc_spb_res_no_matviews. - Important : une sauvegarde contenant des MV ne peut pas être restaurée sur une version de Firebird qui ne prend pas en charge les MV. Utilisez
ALTER MATERIALIZED VIEW ... TO NOT MATERIALIZEDavant la sauvegarde lors de la migration vers une version plus ancienne.
Limitations connues / Travaux planifiés
- Prise en charge de la réplication - pas encore implémentée.
- Déclencheurs DDL - pas encore implémentés.
- Vérification des droits d’accès - pas encore implémentée.
- Messages d’erreur - en cours de révision.
Sauvegarde et récupération
- Tâche de sauvegarde de vérification : ajout de la suppression rotative avant compression ; les coefficients de calcul d’espace disque sont désormais configurables.
- Tâche nBackup : correction de la logique de saut ; l’algorithme de renommage du journal est modifié en renommage atomique avec nouvelle tentative pour éviter les renommages partiels.
- Le répertoire de sauvegarde et le modèle de nom de fichier pour les tâches BRZ sont désormais configurables :
backup-directory- permet de spécifier le répertoire cible par base de données et par tâche.backup-name- permet de définir un modèle de nom de fichier, par exemplebrr_{0,date,yyyyMMdd_HH-mm-ss}.fbk.- Validateur de saisie ajouté : vérifie la validité du nom du répertoire et crée le répertoire s’il n’existe pas.
Sauvegarde cloud / Transfert de fichiers
- Ajout de la prise en charge du téléchargement de fichiers via le protocole Socket dans la tâche cloudbackup (filetransfer).
- Option de compression sélective par segment de fichier supprimée - la compression des fichiers pour les tâches correspondantes est désormais toujours activée.
Trace
- Ajout de
connection_idcomme champ supplémentaire dans la configuration de trace. - Traitement des rapports de trace : ajout du regroupement et du filtrage insensibles à la casse par nom de processus.
VSS Writer
- Journalisation de diagnostic supplémentaire ajoutée - les informations d’état de la base de données sont désormais enregistrées, y compris la taille de la base, la date et l’heure, et la sortie de
gstat -h.
Interface Web
- Améliorations de la localisation : traductions corrigées et algorithmes de localisation ajustés dans la console web.
- Ajout d’un élément séparateur visuel avec texte d’étiquette aux dialogues web - permet le regroupement logique des éléments de formulaire.
- Changement de la stratégie d’invalidation du cache pour les ressources côté client (pages web, JS, CSS) afin d’empêcher les navigateurs d’utiliser des fichiers obsolètes après une mise à jour.
Configuration
- Noms des champs d’autorisation du serveur mis à jour (
sysdba/owner,serviceAPI). - Paramètre de configuration réservé ajouté pour le réglage de la langue/locale côté serveur (Java).
- Fichiers de configuration par défaut corrigés pour correspondre aux nouveaux paramètres par défaut des tâches de transfert de fichiers :
- Port changé de 8721 à 8722.
- Utilisateur par défaut changé de
admin2/admin3àsocketuser. - Paramètre de force du mot de passe unifié en mot de passe fort dans toutes les configurations.
- Lors de l’enregistrement d’un fichier de licence KA, la spécification du préfixe de protocole HTTP/HTTPS dans le champ hôte n’est plus requise.
Corrections de bogues
- Correction d’une fausse alerte critique déclenchée lorsqu’une base de données a toutes ses tâches temporairement désactivées.
- Correction d’une erreur lors de la récupération de la liste des sessions de trace actives pour les systèmes où l’utilisateur SYSDBA configuré n’a pas la permission de lister les sessions de trace.
- Correction d’un bogue dans un composant de décryptage tiers qui ne gérait pas correctement les chemins encodés en UTF-8. Remarque : jusqu’à ce que le service mon/trace soit mis à jour et reconstruit, les caractères UTF-8 dans les chemins de fichiers ou de bases de données peuvent encore provoquer des erreurs dans la sortie mon/trace.
- Correction d’un problème dans le gestionnaire de configuration de réplication qui conservait incorrectement les clés avec des valeurs vides.
- Correction de la gestion de
journal_archive_commandpour Firebird 4 et versions ultérieures (aligné sur le correctif en amont dans firebird/firebird PR #8381). - Correction des erreurs dans le plugin générateur de configuration
dg2fbcc.jaret son code d’appel.
Installateur et compilation
- Installateur Windows mis à jour avec des scripts et une logique révisés.
- Binaires de la bibliothèque cliente mis à jour.
- OpenSSL mis à jour vers une version plus récente.
- Branches de code conditionnelles ajoutées pour les variantes de compilation spécifiques au produit.
- Signature de fichiers ajoutée au processus de compilation de l’installateur.
Infrastructure de localisation côté serveur
Un mécanisme de localisation pour les messages texte côté serveur (Java) a été implémenté. Les fichiers de locale sont préparés mais pas encore remplis de traductions, et le mécanisme n’est pas encore activé en production. Cette infrastructure est destinée à la future localisation des messages serveur.