Delen via


Tempdb-instellingen configureren voor Azure SQL Managed Instance

Van toepassing op:Azure SQL Managed Instance

In dit artikel leert u hoe u uw tempdb instellingen configureert voor Azure SQL Managed Instance.

Met Azure SQL Managed Instance kunt u het volgende configureren:

  • Aantal tempdb bestanden
  • De toename van tempdb bestanden
  • Maximale tempdb grootte

tempdb instellingen blijven behouden nadat uw exemplaar opnieuw is opgestart, bijgewerkt of als er een failover is.

Overzicht

tempdb is een van de standaardsysteemdatabases die worden geleverd met Azure SQL Managed Instance. De structuur van tempdb is hetzelfde als die van elke andere gebruikersdatabasestructuur. Het verschil is dat, omdat tempdb wordt gebruikt voor niet-duurzame opslag, transacties minimaal worden geregistreerd.

tempdb kan niet worden verwijderd, losgekoppeld, offline gehaald, hernoemd of hersteld. Als u een van deze bewerkingen probeert uit te voeren, wordt een fout geretourneerd. tempdb wordt opnieuw gegenereerd bij elk starten van de instantie. Objecten die mogelijk zijn gemaakt in tempdb tijdens een vorige sessie, worden niet behouden wanneer de service opnieuw wordt opgestart, na een updatebeheerbewerking van een exemplaar of een failover.

De workload in tempdb verschilt van workloads in andere gebruikersdatabases; objecten en gegevens worden vaak gemaakt en vernietigd en er is extreem hoge gelijktijdigheid. Er is slechts één tempdb voor elk met SQL beheerd exemplaar. Zelfs als u meerdere databases en toepassingen hebt die verbinding maken met het exemplaar, gebruiken ze allemaal dezelfde tempdb database. Services kunnen wedijver ervaren wanneer ze proberen pagina's toe te wijzen in een intensief gebruikte tempdb. Afhankelijk van de mate van controverse kunnen query's en aanvragen die tempdb betreffen mogelijk niet meer reageren. Daarom is tempdb dit essentieel voor de prestaties van de service.

Aantal tempdb bestanden

Als u het aantal tempdb gegevensbestanden verhoogt, worden voor elk gegevensbestand een of meer GAM- en SGAM-pagina's gemaakt, waardoor gelijktijdigheid wordt verbeterd tempdb en pfS-paginaconflicten worden verminderd. Het verhogen van het aantal tempdb gegevensbestanden kan echter andere gevolgen hebben voor de prestaties, dus test grondig voordat u in productie implementeert.

Azure SQL Managed Instance maakt standaard 12 tempdb gegevensbestanden en één tempdb logboekbestand, maar het is mogelijk om deze configuratie te wijzigen.

Het wijzigen van het aantal tempdb bestanden heeft de volgende beperkingen:

  • De logische naam van het nieuwe bestand is niet hoofdlettergevoelig, met maximaal 16 tekens en geen spaties.
  • Het maximum aantal tempdb bestanden is 128.

Opmerking

U hoeft het exemplaar niet opnieuw op te starten nadat u nieuwe bestanden hebt toegevoegd. De leegste bestanden worden echter met een hogere prioriteit gevuld en het round-robin-algoritme voor het toewijzen van pagina's verdwijnt totdat het systeem weer in balans is.

U kunt zowel SQL Server Management Studio (SSMS) als Transact-SQL (T-SQL) gebruiken om het aantal bestanden in tempdb Azure SQL Managed Instance te wijzigen.

U kunt SQL Server Management Studio (SSMS) gebruiken om het aantal tempdb bestanden te wijzigen. Voer hiervoor de volgende stappen uit:

  1. Maak verbinding met uw met SQL beheerde exemplaar in SSMS.

  2. Vouw Databases uit in Objectverkenner en vouw vervolgens Systeemdatabases uit.

  3. Klik met de rechtermuisknop tempdben kies Eigenschappen.

  4. Selecteer Bestanden onder Een pagina selecteren om het bestaande aantal tempdb bestanden weer te geven.

  5. Als u een bestand wilt toevoegen, kiest u Toevoegen en geeft u vervolgens informatie op over het nieuwe gegevensbestand in de rij.

    Schermopname van database-eigenschappen in SSMS, met de naam van het nieuwe databasebestand gemarkeerd.

  6. Als u een tempdb bestand wilt verwijderen, kiest u het bestand dat u wilt verwijderen uit de lijst met databasebestanden en selecteert u Verwijderen.

Toename van groei

tempdb bestandsgroei kan een invloed hebben op de prestaties van query's met behulp van tempdb. Als zodanig tempdb kunnen toenamen van de groei van gegevensbestanden die te klein zijn, fragmentatie veroorzaken, terwijl incrementen die te groot zijn, leiden tot trage groei of groeifouten als er onvoldoende ruimte is om de groei te laten plaatsvinden. De optimale waarde voor groei-incrementen van tempdb bestanden is afhankelijk van uw werklast.

De standaardgroeiverhogingen voor SQL Managed Instance zijn 254 MB voor tempdb gegevensbestanden en 64 MB voor tempdb logboekbestanden, maar u kunt groeiverhogingen configureren om zich aan uw workload aan te passen en uw prestaties af te stemmen.

Houd rekening met het volgende:

  • De parameter voor bestandsgroei ondersteunt de volgende eenheden voor int_growth_increment: KB, MB, GB, TB en %.
  • Groeistappen moeten hetzelfde zijn voor alle tempdb gegevensbestanden. Anders kan het round robin-algoritme dat pagina's toewijst, worden beïnvloed.

U kunt zowel SQL Server Management Studio (SSMS) als Transact-SQL (T-SQL) gebruiken om de groeiverhoging voor uw tempdb bestanden te wijzigen.

U kunt SQL Server Management Studio (SSMS) gebruiken om de toename van tempdb bestanden te wijzigen. Voer hiervoor de volgende stappen uit:

  1. Maak verbinding met uw met SQL beheerde exemplaar in SSMS.

  2. Vouw Databases uit in Objectverkenner en vouw vervolgens Systeemdatabases uit.

  3. Klik met de rechtermuisknop tempdben kies Eigenschappen.

  4. Selecteer Bestanden onder Een pagina selecteren om het bestaande aantal tempdb bestanden weer te geven.

  5. Kies het beletselteken (...) naast een gegevensbestand om het dialoogvenster Eigenschappen voor automatisch groei wijzigen te openen.

  6. Schakel het selectievakje naast Automatisch groeien inschakelen in en wijzig vervolgens de instellingen voor automatischgroei door de waarden voor bestandsgroei op te geven, in procenten of megabytes.

    Schermafbeelding van Autogroei wijzigen voor tempdev in SSMS, waarbij de nieuwe databasebestandsnaam is gemarkeerd.

  7. Selecteer OK om uw instellingen op te slaan.

Maximumgrootte

tempdb grootte is de som van alle tempdb bestanden. tempdb bestandsgrootte is een toegewezen (nul) ruimte voor dat tempdb bestand. De oorspronkelijke bestandsgrootte voor alle tempdb bestanden is 16 MB. Dit is de grootte van alle tempdb bestanden wanneer het exemplaar opnieuw wordt opgestart of een failover-overschakeling uitvoert. Zodra de gebruikte ruimte van een tempdb gegevensbestand de bestandsgrootte heeft bereikt, worden alle tempdb gegevensbestanden automatisch vergroot door de geconfigureerde groeiverhogingen.

tempdb gebruikte ruimte is de som van de gebruikte ruimte van alle tempdb bestanden. tempdb de gebruikte bestandsruimte is gelijk aan het deel van de tempdb bestandsgrootte die is bezet met niet-nulgegevens. De som van tempdbde gebruikte ruimte en tempdbvrije ruimte is gelijk aan de tempdb grootte.

U kunt T-SQL gebruiken om de huidige gebruikte en vrije ruimte voor uw tempdb bestanden te bepalen.

Voer deze opdracht uit om gebruikte ruimte, vrije ruimte en grootte van uw tempdb gegevensbestanden op te halen:

USE tempdb
SELECT SUM((allocated_extent_page_count)*1.0/128) AS TempDB_used_data_space_inMB,
    SUM((unallocated_extent_page_count)*1.0/128) AS TempDB_free_data_space_inMB,
    SUM(total_page_count*1.0/128) AS TempDB_data_size_inMB
FROM sys.dm_db_file_space_usage

In de volgende schermopname ziet u een voorbeeld van uitvoer:

Schermopname van het queryresultaat in SSMS met gebruikte en vrije ruimte in het tempdb-gegevensbestand.

Voer deze opdracht uit om de gebruikte ruimte, vrije ruimte en grootte van uw tempdb logboekbestanden op te halen:

USE tempdb
SELECT used_log_space_in_bytes*1.0/1024/1024 AS TempDB_used_log_space_inMB,
     (total_log_size_in_bytes- used_log_space_in_bytes)*1.0/1024/1024 AS TempDB_free_log_space_inMB,
     total_log_size_in_bytes*1.0/1024/1024 AS TempDB_log_size_inMB
FROM sys.dm_db_log_space_usage

In de volgende schermopname ziet u een voorbeeld van uitvoer:

Schermopname van het queryresultaat in SSMS met gebruikte en vrije ruimte in het tempdb-logboekbestand.

tempdb maximale grootte is de limiet waarna u tempdb niet verder kunt groeien.

tempdb de maximale grootte in SQL Managed Instance heeft de volgende beperkingen:

  • In de servicelaag Algemeen gebruik is de maximale grootte tempdb beperkt tot 24 GB/vCore (96-1920 GB). De maximale grootte van het tempdb logboekbestand is 120 GB.
  • In de Bedrijfskritieke servicelaag concurreert tempdb met andere databases voor resources, zodat de gereserveerde opslag wordt gedeeld tussen tempdb en andere databases tot de maximale opslaglimiet die aan het exemplaar is toegewezen. De maximale grootte van het tempdb logboekbestand is twee TB.

tempdb bestanden groeien totdat ze de maximale limiet bereiken die is toegestaan door de servicelaag of door de handmatig geconfigureerde maximale tempdb bestandsgrootte.

U kunt zowel SQL Server Management Studio (SSMS) als Transact-SQL (T-SQL) gebruiken om de maximale grootte voor uw tempdb bestanden te wijzigen.

Volg deze stappen om de huidige tempdb maximale grootte in SSMS te bepalen:

  1. Maak verbinding met uw met SQL beheerde exemplaar in SSMS.
  2. Vouw Databases uit in Objectverkenner en vouw vervolgens Systeemdatabases uit.
  3. Klik met de rechtermuisknop tempdben kies Eigenschappen.
  4. Controleer op de pagina Algemeen de waarde Grootte onder Database om de maximale tempdb grootte te bepalen. Een waarde van -1 geeft aan dat tempdb maximale grootte onbeperkt is.

Schermopname van tempdb-database-eigenschappen met de maximale grootte voor tempdb in SSMS.

Als u de huidige tempdb maximale grootte in SSMS wilt wijzigen, voert u de volgende stappen uit:

  1. Maak verbinding met uw met SQL beheerde exemplaar in SSMS.
  2. Vouw Databases uit in Objectverkenner en vouw vervolgens Systeemdatabases uit.
  3. Klik met de rechtermuisknop tempdben kies Eigenschappen.
  4. Selecteer Bestanden onder Een pagina selecteren om het bestaande aantal tempdb bestanden weer te geven.
  5. Kies het beletselteken (...) naast een gegevensbestand om het dialoogvenster Eigenschappen voor automatisch groei wijzigen te openen.
  6. Wijzig de tempdb instellingen voor maximale grootte door de waarden onder Maximale bestandsgrootte te wijzigen.
  7. Selecteer OK om uw instellingen op te slaan.

Schermopname van het dialoogvenster Voor automatisch vergroten van wijzigingen in SSMS, met maximale bestandsgrootte gemarkeerd.

tempdb-limieten

In de volgende tabel worden limieten gedefinieerd voor verschillende tempdb configuratie-instellingen:

Configuratie-instelling Waarden
Logische namen van tempdb bestanden Maximaal 16 tekens
Aantal tempdb bestanden Maximaal 128 bestanden
Standaardaantal tempdb bestanden 13 (1 logboekbestand + 12 gegevensbestanden)
Initiële grootte van tempdb gegevensbestanden 16 MB
Standaard groei-increment van tempdb gegevensbestanden 256 MB
Oorspronkelijke grootte van tempdb logboekbestanden 16 MB
Standaard groei-increment van tempdb logboekbestanden 64 MB
Oorspronkelijke maximale tempdbgrootte -1 (onbeperkt)
Maximale grootte van tempdb gegevensbestanden - In de servicelaag Algemeen gebruik: 24 GB/vCore tot 1920 GB totaal
In de servicelaag Bedrijfskritiek: Tot aan de beschikbare opslaggrootte
Maximale grootte van tempdb logboekbestanden - In de servicelaag Algemeen gebruik: 120 GB
In de servicelaag Bedrijfskritiek: 2 TB