Questa pagina è stata tradotta automaticamente. Leggi l'originale in inglese. English

Libreria IBSurgeon

HQbird 2024R2 Update 10 Dettagliato Cosa c'è di nuovo

Novità in HQbird 2024R2 Update 10

Viste Materializzate (Nuova Funzionalità in 5.0)

HQbird ora include il supporto completo per le Viste Materializzate - un nuovo tipo di oggetto di database che combina la definizione di una vista con l’archiviazione fisica di una tabella regolare.

Panoramica

Una Vista Materializzata (MV) viene definita utilizzando una query SQL standard, che il motore utilizza per popolare una tabella MV sottostante con righe di dati. A differenza delle viste regolari, i dati MV vengono persistiti su disco e possono essere indicizzati. Le istruzioni DML (INSERT, UPDATE, DELETE) non sono consentite direttamente sulle MV - i dati devono essere aggiornati utilizzando il nuovo comando REFRESH.

Creazione e Gestione delle Viste Materializzate

  • CREATE [OR ALTER] MATERIALIZED VIEW - crea o sostituisce una MV con caricamento iniziale opzionale dei dati (WITH DATA / WITH NO DATA).
  • ALTER MATERIALIZED VIEW - modifica la definizione della MV; elimina automaticamente tutti gli indici esistenti.
  • RECREATE MATERIALIZED VIEW - elimina qualsiasi vista esistente (regolare o materializzata) con lo stesso nome e crea una nuova MV.
  • DROP VIEW - utilizzato per eliminare una vista materializzata (non esiste un comando separato DROP MATERIALIZED VIEW).
  • È possibile creare indici di qualsiasi tipo sulle MV. Vincoli e trigger non sono supportati.

Conversione tra Tipi di Vista

  • ALTER MATERIALIZED VIEW ... TO NOT MATERIALIZED - converte una MV in una vista regolare. Tutti gli indici e i dati vengono eliminati.
  • ALTER VIEW ... TO MATERIALIZED - converte una vista regolare in una vista materializzata. Gli oggetti dipendenti non vengono influenzati.

Aggiornamento dei Dati delle Viste Materializzate

La nuova istruzione REFRESH MATERIALIZED VIEW aggiorna il contenuto della MV. È un comando DDL - l’esecuzione viene differita fino al commit della transazione corrente. Sono disponibili quattro modalità:

  • Ricaricamento completo (modalità esclusiva) - REFRESH MATERIALIZED VIEW

    • Disattiva gli indici, elimina tutti i dati esistenti, ricarica dalla query MV, riattiva gli indici.
    • Opzione più rapida quando molte righe sono cambiate.
    • Richiede un blocco esclusivo sulla tabella MV.
    • In caso di errore di caricamento dati: i dati appena caricati vengono eliminati, gli indici vengono riattivati come vuoti.
    • In caso di errore di attivazione indice: l’indice interessato rimane inattivo; i dati e gli altri indici non vengono influenzati. Gli errori di costruzione degli indici vengono segnalati come avvisi.
  • Aggiornamento concorrente - REFRESH MATERIALIZED VIEW CONCURRENTLY

    • Nessun blocco esclusivo richiesto - le query concorrenti sulla MV sono consentite durante l’aggiornamento.
    • Utilizza un algoritmo di merge con due cursori ordinati: uno per i dati MV correnti, uno per i risultati della query MV.
    • Inserisce nuove righe, aggiorna le righe modificate, elimina le righe rimosse - tutto sotto controllo transazionale.
    • Richiede un indice univoco sulla MV.
    • Preferito quando è necessario l’accesso concorrente o quando poche righe sono cambiate dall’ultimo aggiornamento.
    • Nota: se la query MV contiene ORDER BY, l’ordine delle righe potrebbe non essere preservato dopo l’aggiornamento concorrente.
  • Eliminazione di tutti i dati - REFRESH MATERIALIZED VIEW DROP DATA

    • Elimina tutti i dati MV e i contenuti degli indici. Utile per liberare spazio su disco. Richiede un blocco esclusivo.
  • Aggiornamento a cascata - aggiungere CASCADE a una qualsiasi delle forme precedenti

    • Aggiorna tutte le MV da cui dipende la MV specificata, nell’ordine corretto di dipendenza.
    • Ogni MV viene elaborata una sola volta.
    • CONCURRENTLY CASCADE richiede che tutte le MV interessate abbiano un indice univoco.
    • DROP DATA CASCADE elimina i dati di tutte le MV interessate.
    • I nomi delle MV interessate e l’ordine di aggiornamento vengono segnalati come avvisi nel vettore di stato prima del commit.

Backup e Ripristino (gbak)

  • Backup: i dati MV non vengono memorizzati nel file di backup, come per le viste regolari - nessuna gestione speciale richiesta.
  • Ripristino: tutte le MV vengono aggiornate automaticamente alla fine del processo di ripristino, nell’ordine corretto di dipendenza.
  • Nuovo interruttore gbak -NO_MATVIEWS (abbreviabile in -NO_M) - salta l’aggiornamento MV durante il ripristino.
  • Opzione corrispondente Services API: isc_spb_res_no_matviews.
  • Importante: un backup contenente MV non può essere ripristinato su una versione di Firebird che non supporta le MV. Utilizzare ALTER MATERIALIZED VIEW ... TO NOT MATERIALIZED prima del backup quando si migra a una versione precedente.

Limitazioni Note / Lavoro Pianificato

  • Supporto replica - non ancora implementato.
  • Trigger DDL - non ancora implementati.
  • Controllo dei diritti di accesso - non ancora implementato.
  • Messaggi di errore - in revisione.

Backup e Recupero

  • Attività di backup di verifica: aggiunta eliminazione rotativa prima della compressione; i coefficienti di calcolo dello spazio su disco sono ora configurabili.
  • Attività nBackup: corretta la logica di salto; l’algoritmo di rinomina del journal è stato modificato in rinomina atomica con tentativi per prevenire rinomine parziali.
  • La directory di backup e il modello di nome file per le attività BRZ sono ora configurabili:
    • backup-directory - consente di specificare la directory di destinazione per database e job.
    • backup-name - consente di definire un modello di nome file, ad es. brr_{0,date,yyyyMMdd_HH-mm-ss}.fbk.
    • Aggiunto validatore di input: verifica la validità del nome della directory e la crea se non esiste.

Backup Cloud / Trasferimento File

  • Aggiunto supporto per il caricamento di file tramite protocollo Socket nell’attività cloudbackup (filetransfer).
  • Rimossa l’opzione di compressione selettiva per segmento di file - la compressione dei file per le attività corrispondenti è ora sempre abilitata.

Trace

  • Aggiunto connection_id come campo aggiuntivo nella configurazione trace.
  • Elaborazione report trace: aggiunto raggruppamento e filtraggio senza distinzione tra maiuscole e minuscole per nome del processo.

VSS Writer

  • Aggiunta registrazione diagnostica aggiuntiva - le informazioni sullo stato del database vengono ora registrate includendo dimensione del database, data e ora e output gstat -h.

Interfaccia Web

  • Miglioramenti alla localizzazione: traduzioni corrette e algoritmi di localizzazione adattati nella console web.
  • Aggiunto elemento divisore visivo con testo etichetta ai dialoghi web - consente il raggruppamento logico degli elementi del modulo.
  • Modificata la strategia di cache-busting per le risorse lato client (pagine web, JS, CSS) per impedire ai browser di utilizzare file obsoleti dopo un aggiornamento.

Configurazione

  • Aggiornati i nomi dei campi di autorizzazione del server (sysdba/owner, serviceAPI).
  • Aggiunto parametro di configurazione riservato per l’impostazione della lingua/località lato server (Java).
  • Corretti i file di configurazione predefiniti per corrispondere alle nuove impostazioni predefinite per le attività di trasferimento file:
    • Porta modificata da 8721 a 8722.
    • Utente predefinito modificato da admin2/admin3 a socketuser.
    • Impostazione della robustezza della password unificata a password forte in tutte le configurazioni.
  • Durante la registrazione di un file di licenza KA, non è più richiesto specificare il prefisso del protocollo HTTP/HTTPS nel campo host.

Correzioni di Bug

  • Corretto un falso avviso critico attivato quando un database ha tutte le attività temporaneamente disabilitate.
  • Corretto un errore durante il recupero dell’elenco delle sessioni trace attive per sistemi in cui l’utente SYSDBA configurato non dispone dell’autorizzazione per elencare le sessioni trace.
  • Corretto un bug in un componente di decrittazione di terze parti che non gestiva correttamente i percorsi codificati UTF-8. Nota: fino a quando il servizio mon/trace non viene aggiornato e ricompilato, i caratteri UTF-8 nei percorsi di file o database potrebbero ancora causare errori nell’output mon/trace.
  • Corretto un problema nel gestore di configurazione della replica che conservava erroneamente chiavi con valori vuoti.
  • Corretta la gestione di journal_archive_command per Firebird 4 e versioni successive (allineato con la correzione a monte in firebird/firebird PR #8381).
  • Corretti errori nel plugin generatore di configurazione dg2fbcc.jar e nel relativo codice di invocazione.

Installer e Build

  • Installer Windows aggiornato con script e logica rivisti.
  • Aggiornati i binari della libreria client.
  • OpenSSL aggiornato a una versione più recente.
  • Aggiunti rami di codice condizionali per varianti di build specifiche del prodotto.
  • Aggiunta firma dei file al processo di build dell’installer.

Infrastruttura di Localizzazione Lato Server

È stato implementato un meccanismo di localizzazione per i messaggi di testo lato server (Java). I file di localizzazione sono preparati ma non ancora popolati con le traduzioni, e il meccanismo non è ancora attivato in produzione. Questa infrastruttura è destinata alla futura localizzazione dei messaggi del server.