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 elke andere gebruikersdatabasestructuur. Het verschil is dat transacties minimaal worden geregistreerd, omdat ze worden tempdb gebruikt voor niet-beveiligbare opslag.

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 begin van het serverexemplaren en alle objecten die tijdens een vorige sessie zijn gemaakt tempdb , blijven niet behouden wanneer de service opnieuw wordt opgestart, na een updatebeheerbewerking van het 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 beheerd exemplaar. Zelfs als u meerdere databases en toepassingen hebt die verbinding maken met het exemplaar, gebruiken ze allemaal dezelfde tempdb database. Services kunnen conflicten ondervinden wanneer ze pagina's proberen toe te wijzen in een intensief gebruikt tempdb. Afhankelijk van de mate van conflicten kunnen query's en aanvragen die hierbij betrokken tempdb zijn, 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 pfC-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 1 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.

Notitie

U hoeft de server niet opnieuw op te starten nadat u nieuwe bestanden hebt toegevoegd; de lege bestanden worden echter gevuld met een hogere prioriteit en het round robin-algoritme voor het toewijzen van pagina's gaat verloren totdat het systeem opnieuw wordt verdeeld.

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. Dit doet u als volgt:

  1. Maak verbinding met uw 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.

    Screenshot of Database Properties in SSMS, with new database file name highlighted.

  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 toenamen van tempdb bestandsgroei is afhankelijk van uw workload.

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.

Denk aan 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 als anders, het round robin-algoritme dat pagina's toewijst, kan 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. Dit doet u als volgt:

  1. Maak verbinding met uw 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.

    Screenshot of Change Autogrowth for tempdev in SSMS, with new database file name highlighted.

  7. Selecteer OK om uw instellingen op te slaan.

Maximale grootte

tempdbgrootte 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, wat de grootte is 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.

tempdbgebruikte ruimte is de som van de gebruikte ruimte van alle tempdb bestanden. tempdb de gebruikte ruimte voor bestanden 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:

Screenshot of the query result in SSMS showing used and free space in the tempdb data file.

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:

Screenshot of the query result in SSMS showing used and free space in the tempdb log file.

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) en is het logboekbestand 120 GB.
  • In de servicelaag tempdb Bedrijfskritiek concurreert u met andere databases voor resources, zodat de gereserveerde opslag wordt gedeeld tussen tempdb en andere databases. De maximale grootte van het tempdb logboekbestand is 2 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 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.

Screenshot of tempdb database properties showing the max size for 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 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.

Screenshot of the change autogrowth dialog box in SSMS, with maximum file size highlighted.

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
Standaardgroeiverhoging van tempdb gegevensbestanden 256 MB
Oorspronkelijke grootte van tempdb logboekbestanden 16 MB
Standaardgroeiverhoging van tempdb logboekbestanden 64 MB
Oorspronkelijke maximale tempdbgrootte -1 (onbeperkt)
Maximale grootte van tempdb Tot de opslaggrootte

Volgende stappen