Deze pagina is automatisch vertaald. Lees het Engelse origineel. English

IBSurgeon-bibliotheek

HQbird 2024R2 Update 10 Gedetailleerde Wat is er nieuw

Wat is er nieuw in HQbird 2024R2 Update 10

Materialized Views (Nieuwe functie in 5.0)

HQbird biedt nu volledige ondersteuning voor Materialized Views - een nieuw databaseobjecttype dat de definitie van een view combineert met de fysieke opslag van een reguliere tabel.

Overzicht

Een Materialized View (MV) wordt gedefinieerd met behulp van een standaard SQL-query, die de engine gebruikt om een onderliggende MV-tabel met datarijen te vullen. In tegenstelling tot reguliere views wordt MV-data op schijf opgeslagen en kan worden geïndexeerd. DML-instructies (INSERT, UPDATE, DELETE) zijn niet rechtstreeks toegestaan op MVs - data moet worden bijgewerkt met de nieuwe REFRESH-opdracht.

Maken en beheren van Materialized Views

  • CREATE [OR ALTER] MATERIALIZED VIEW - maakt een MV aan of vervangt deze, met optionele initiële gegevenslading (WITH DATA / WITH NO DATA).
  • ALTER MATERIALIZED VIEW - wijzigt de MV-definitie; verwijdert automatisch alle bestaande indexen.
  • RECREATE MATERIALIZED VIEW - verwijdert een bestaande view (regulier of gematerialiseerd) met dezelfde naam en maakt een nieuwe MV aan.
  • DROP VIEW - wordt gebruikt om een materialized view te verwijderen (er is geen afzonderlijke DROP MATERIALIZED VIEW-opdracht).
  • Indexen van elk type kunnen op MVs worden gemaakt. Constraints en triggers worden niet ondersteund.

Converteren tussen viewtypen

  • ALTER MATERIALIZED VIEW ... TO NOT MATERIALIZED - converteert een MV naar een reguliere view. Alle indexen en data worden verwijderd.
  • ALTER VIEW ... TO MATERIALIZED - converteert een reguliere view naar een materialized view. Afhankelijke objecten worden niet beïnvloed.

Materialized View-data vernieuwen

De nieuwe REFRESH MATERIALIZED VIEW-instructie werkt MV-inhoud bij. Het is een DDL-opdracht - uitvoering wordt uitgesteld totdat de huidige transactie is vastgelegd. Er zijn vier modi beschikbaar:

  • Volledige herlading (exclusieve modus) - REFRESH MATERIALIZED VIEW

    • Deactiveert indexen, verwijdert alle bestaande data, laadt opnieuw vanuit de MV-query, activeert indexen opnieuw.
    • Snelste optie wanneer veel rijen zijn gewijzigd.
    • Vereist een exclusieve vergrendeling op de MV-tabel.
    • Bij gegevensladingsfout: nieuw geladen data wordt verwijderd, indexen worden opnieuw geactiveerd als leeg.
    • Bij indexactiveringsfout: betreffende index blijft inactief; data en andere indexen worden niet beïnvloed. Indexopbouwfouten worden gerapporteerd als waarschuwingen.
  • Gelijktijdige update - REFRESH MATERIALIZED VIEW CONCURRENTLY

    • Geen exclusieve vergrendeling vereist - gelijktijdige query’s op de MV zijn toegestaan tijdens het vernieuwen.
    • Gebruikt een merge-algoritme met twee geordende cursors: één voor huidige MV-data, één voor MV-queryresultaten.
    • Voegt nieuwe rijen in, werkt gewijzigde rijen bij, verwijdert verwijderde rijen - allemaal onder transactiecontrole.
    • Vereist een unieke index op de MV.
    • Voorkeur wanneer gelijktijdige toegang nodig is of wanneer weinig rijen zijn gewijzigd sinds de laatste vernieuwing.
    • Let op: als de MV-query ORDER BY bevat, kan de rijvolgorde na gelijktijdige vernieuwing niet behouden blijven.
  • Alle data verwijderen - REFRESH MATERIALIZED VIEW DROP DATA

    • Verwijdert alle MV-data en indexinhoud. Handig om schijfruimte vrij te maken. Vereist een exclusieve vergrendeling.
  • Cascade-vernieuwing - voeg CASCADE toe aan elk van de bovenstaande vormen

    • Vernieuwt alle MVs waarvan de opgegeven MV afhankelijk is, in de juiste afhankelijkheidsvolgorde.
    • Elke MV wordt slechts één keer verwerkt.
    • CONCURRENTLY CASCADE vereist dat alle betrokken MVs een unieke index hebben.
    • DROP DATA CASCADE verwijdert data van alle betrokken MVs.
    • Namen van betrokken MVs en vernieuwingsvolgorde worden gerapporteerd als waarschuwingen in de statusvector vóór commit.

Back-up en herstel (gbak)

  • Back-up: MV-data wordt niet opgeslagen in het back-upbestand, net als bij reguliere views - geen speciale verwerking vereist.
  • Herstel: alle MVs worden automatisch vernieuwd aan het einde van het herstelproces, in de juiste afhankelijkheidsvolgorde.
  • Nieuwe gbak-schakelaar -NO_MATVIEWS (kan worden afgekort tot -NO_M) - slaat MV-vernieuwing over tijdens herstel.
  • Overeenkomstige Services API-optie: isc_spb_res_no_matviews.
  • Belangrijk: een back-up met MVs kan niet worden hersteld op een Firebird-versie die geen MVs ondersteunt. Gebruik ALTER MATERIALIZED VIEW ... TO NOT MATERIALIZED vóór de back-up bij migratie naar een oudere versie.

Bekende beperkingen / gepland werk

  • Replicatieondersteuning - nog niet geïmplementeerd.
  • DDL-triggers - nog niet geïmplementeerd.
  • Toegangsrechtencontrole - nog niet geïmplementeerd.
  • Foutmeldingen - in behandeling.

Back-up en herstel

  • Verificatie-back-uptaak: roterende verwijdering vóór compressie toegevoegd; schijfruimteberekeningscoëfficiënten zijn nu configureerbaar.
  • nBackup-taak: overslaanlogica gecorrigeerd; journaalhernoemalgoritme gewijzigd naar atomair hernoemen met opnieuw proberen om gedeeltelijke hernoemingen te voorkomen.
  • Back-updirectory en bestandsnaamsjabloon voor BRZ-taken zijn nu configureerbaar:
    • backup-directory - maakt het mogelijk om de doeldirectory per database en taak op te geven.
    • backup-name - maakt het mogelijk om een bestandsnaamsjabloon te definiëren, bijv. brr_{0,date,yyyyMMdd_HH-mm-ss}.fbk.
    • Invoervalidator toegevoegd: controleert de geldigheid van de directorynaam en maakt de directory aan als deze niet bestaat.

Cloud-back-up / bestandsoverdracht

  • Ondersteuning toegevoegd voor bestandsupload via Socket-protocol in de cloudbackup (filetransfer)-taak.
  • Selectieve per-segment bestandscompressieoptie verwijderd - bestandscompressie voor overeenkomstige taken is nu altijd ingeschakeld.

Trace

  • connection_id toegevoegd als extra veld in traceconfiguratie.
  • Trace-rapportverwerking: hoofdletterongevoelige groepering en filtering op procesnaam toegevoegd.

VSS Writer

  • Extra diagnostische logboekregistratie toegevoegd - databasestatusinformatie wordt nu vastgelegd, inclusief databasegrootte, datum en tijd, en gstat -h-uitvoer.

Webinterface

  • Lokalisatieverbeteringen: vertalingen gecorrigeerd en lokalisatie-algoritmen aangepast in de webconsole.
  • Visueel scheidingselement met labeltekst toegevoegd aan webdialoogvensters - maakt logische groepering van formulierelementen mogelijk.
  • Cache-bustingstrategie voor client-side bronnen (webpagina’s, JS, CSS) gewijzigd om te voorkomen dat browsers verouderde bestanden gebruiken na een update.

Configuratie

  • Velden voor serverautorisatie bijgewerkt (sysdba/owner, serviceAPI).
  • Gereserveerde configuratieparameter toegevoegd voor de server-side (Java) taal/locale-instelling.
  • Standaardconfiguratiebestanden gecorrigeerd om overeen te komen met nieuwe standaardinstellingen voor bestandsoverdrachtstaken:
    • Poort gewijzigd van 8721 naar 8722.
    • Standaardgebruiker gewijzigd van admin2/admin3 naar socketuser.
    • Wachtwoordsterkte-instelling geünificeerd naar sterk wachtwoord in alle configuraties.
  • Bij het registreren van een KA-licentiebestand is het opgeven van het HTTP/HTTPS-protocolvoorvoegsel in het hostveld niet langer vereist.

Bugfixes

  • Valse kritieke waarschuwing verholpen die werd geactiveerd wanneer een database tijdelijk alle taken uitgeschakeld had.
  • Fout verholpen bij het ophalen van de lijst met actieve tracesessies voor systemen waar de geconfigureerde SYSDBA-gebruiker geen toestemming heeft om tracesessies weer te geven.
  • Bug verholpen in een externe decoderingscomponent die UTF-8-gecodeerde paden niet correct verwerkte. Let op: totdat de mon/trace-service is bijgewerkt en opnieuw gebouwd, kunnen UTF-8-tekens in bestands- of databasepaden nog steeds fouten veroorzaken in mon/trace-uitvoer.
  • Probleem verholpen in de replicatieconfiguratiehandler die sleutels met lege waarden onjuist behield.
  • journal_archive_command-verwerking voor Firebird 4 en later gecorrigeerd (afgestemd op upstream-fix in firebird/firebird PR #8381).
  • Fouten verholpen in de dg2fbcc.jar-configuratiegeneratorplugin en de aanroepcode ervan.

Installatieprogramma en build

  • Windows-installatieprogramma bijgewerkt met herziene scripts en logica.
  • Clientbibliotheekbinaries bijgewerkt.
  • OpenSSL bijgewerkt naar een nieuwere versie.
  • Conditionele codetakken toegevoegd voor productspecifieke buildvarianten.
  • Bestandsondertekening toegevoegd aan het buildproces van het installatieprogramma.

Server-side lokalisatie-infrastructuur

Een lokalisatiemechanisme voor server-side (Java) tekstberichten is geïmplementeerd. Locale-bestanden zijn voorbereid maar nog niet gevuld met vertalingen, en het mechanisme is nog niet geactiveerd in productie. Deze infrastructuur is bedoeld voor toekomstige lokalisatie van serverberichten.