Bulkinvoegingen optimaliseren en tijdelijke gegevens gebruiken op een Azure Database for PostgreSQL - Enkele server
VAN TOEPASSING OP: Azure Database for PostgreSQL - enkele server
Belangrijk
Azure Database for PostgreSQL - Enkele server bevindt zich op het buitengebruikstellingspad. We raden u ten zeerste aan om een upgrade uit te voeren naar Azure Database for PostgreSQL - Flexible Server. Zie Wat gebeurt er met Azure Database for PostgreSQL Enkele server voor meer informatie over migreren naar Azure Database for PostgreSQL - Flexible Server.
In dit artikel wordt beschreven hoe u bewerkingen voor bulksgewijs invoegen kunt optimaliseren en tijdelijke gegevens kunt gebruiken op een Azure Database for PostgreSQL-server.
Niet-vastgelegde tabellen gebruiken
Als u workloadbewerkingen hebt waarbij tijdelijke gegevens zijn betrokken of grote gegevenssets bulksgewijs worden ingevoegd, kunt u overwegen niet-vastgelegde tabellen te gebruiken.
Niet-vastgelegde tabellen is een PostgreSQL-functie die effectief kan worden gebruikt om bulkinvoegingen te optimaliseren. PostgreSQL maakt gebruik van Write-Ahead Logging (WAL). Het biedt standaard atomiciteit en duurzaamheid. Atomiciteit, consistentie, isolatie en duurzaamheid vormen de ACID-eigenschappen.
Als u in een niet-vastgelegde tabel invoegt, betekent dit dat PostgreSQL wordt ingevoegd zonder in het transactielogboek te schrijven, wat zelf een I/O-bewerking is. Hierdoor zijn deze tabellen aanzienlijk sneller dan gewone tabellen.
Gebruik de volgende opties om een niet-vastgelegde tabel te maken:
- Maak een nieuwe niet-vastgelegde tabel met behulp van de syntaxis
CREATE UNLOGGED TABLE <tableName>
. - Converteer een bestaande vastgelegde tabel naar een niet-vastgelegde tabel met behulp van de syntaxis
ALTER TABLE <tableName> SET UNLOGGED
.
Als u het proces wilt omkeren, gebruikt u de syntaxis ALTER TABLE <tableName> SET LOGGED
.
Niet-vastgelegde tabel
Niet-vastgelegde tabellen zijn niet crashveilig. Een niet-vastgelegde tabel wordt automatisch afgekapt na een crash of onderworpen aan een onreine afsluiting. De inhoud van een niet-vastgelegde tabel wordt ook niet gerepliceerd naar stand-byservers. Alle indexen die zijn gemaakt in een niet-vastgelegde tabel, worden ook automatisch niet geregistreerd. Nadat de invoegbewerking is voltooid, converteert u de tabel naar geregistreerd zodat de invoegbewerking duurzaam is.
Sommige workloads van klanten hebben een prestatieverbetering van ongeveer 15 procent tot 20 procent ervaren wanneer niet-vastgelegde tabellen zijn gebruikt.
Volgende stappen
Controleer uw workload voor het gebruik van tijdelijke gegevens en grote bulkinvoegingen. Raadpleeg de volgende PostgreSQL-documentatie: