Konfigurera tempdb-inställningar för Azure SQL Managed Instance

Gäller för:Azure SQL Managed Instance

I den här artikeln lär du dig att konfigurera tempdb inställningarna för Azure SQL Managed Instance.

Med Azure SQL Managed Instance kan du konfigurera följande:

  • Antal tempdb filer
  • Ökningssteget för tempdb filer
  • Maximal tempdb storlek

tempdb inställningarna kvarstår när instansen har startats om, uppdaterats eller om det sker en redundansväxling.

Översikt

tempdb är en av standardsystemdatabaserna som medföljer Azure SQL Managed Instance. Strukturen tempdb för är densamma som alla andra användardatabasstrukturer. Skillnaden är att transaktionerna loggas minimalt eftersom tempdb de används för lagring som inte kan användas.

tempdb kan inte tas bort, kopplas från, tas offline, byta namn eller återställas. Om du försöker utföra någon av dessa åtgärder returneras ett fel. tempdb återskapas vid varje start av serverinstansen och alla objekt som kan ha skapats under tempdb en tidigare session bevaras inte när tjänsten startas om, efter en instansuppdateringshantering eller en redundansväxling.

Arbetsbelastningen i tempdb skiljer sig från arbetsbelastningar i andra användardatabaser. Objekt och data skapas och förstörs ofta och det finns extremt hög samtidighet. Det finns bara en tempdb för varje hanterad instans. Även om du har flera databaser och program som ansluter till instansen använder de alla samma tempdb databas. Tjänster kan uppleva konkurrens när de försöker allokera sidor i en kraftigt använd tempdb. Beroende på graden av konkurrens kan frågor och begäranden som berörs tempdb bli svarslösa. Därför är tempdb det viktigt för tjänstens prestanda.

Antal tempdb filer

Om du ökar antalet tempdb datafiler skapas en eller flera GAM- och SGAM-sidor för varje datafil, vilket bidrar till att förbättra tempdb samtidigheten och minskar PFC-sidkonkurrensen. Att öka antalet tempdb datafiler kan dock få andra prestandakonsekvenser, så testa noggrant innan du implementerar i produktion.

Som standard skapar Azure SQL Managed Instance 12 tempdb datafiler och en tempdb loggfil, men det går att ändra den här konfigurationen.

Det finns följande begränsningar när du ändrar antalet tempdb filer:

  • Det logiska namnet på den nya filen är skiftlägesokänsligt, med högst 16 tecken och inga blanksteg.
  • Det maximala antalet tempdb filer är 128.

Kommentar

Du behöver inte starta om servern när du har lagt till nya filer. Tömningsfilerna fylls dock med högre prioritet och resursallokeringsalgoritmen för allokering av sidor går förlorad tills systemet balanseras om.

Du kan använda både SQL Server Management Studio (SSMS) och Transact-SQL (T-SQL) för att ändra antalet filer för tempdb i Azure SQL Managed Instance.

Du kan använda SQL Server Management Studio (SSMS) för att ändra antalet tempdb filer. Följ stegen nedan:

  1. Anslut till din hanterade instans i SSMS.

  2. Expandera Databaser i Object Explorer och expandera sedan Systemdatabaser.

  3. Högerklicka på tempdboch välj Egenskaper.

  4. Välj Filer under Välj en sida för att visa det befintliga antalet tempdb filer.

  5. Om du vill lägga till en fil väljer du Lägg till och anger sedan information om den nya datafilen på raden.

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

  6. Om du vill ta bort en tempdb fil väljer du den fil som du vill ta bort från listan över databasfiler och väljer sedan Ta bort.

Tillväxtökning

tempdb filtillväxt kan ha en prestandapåverkan på frågor med hjälp av tempdb. tempdb Därför kan ökningar av datafilstillväxt som är för små orsaka fragmentering av omfattningen, medan ökningar som är för stora kan leda till långsam tillväxt eller tillväxtfel om det inte finns tillräckligt med utrymme för att tillväxten ska ske. Det optimala värdet för tempdb ökningar av filtillväxt beror på din arbetsbelastning.

Standardökningen för SQL Managed Instance är 254 MB för tempdb datafiler och 64 MB för tempdb loggfiler, men du kan konfigurera tillväxtökningar för att anpassa dig till din arbetsbelastning och justera dina prestanda.

Tänk på följande:

  • Parametern för filtillväxt stöder följande enheter för int_growth_increment: KB, MB, GB, TB och %.
  • Tillväxtökningar bör vara desamma för alla tempdb datafiler som annars kan resursallokeringsalgoritmen som allokerar sidor påverkas.

Du kan använda både SQL Server Management Studio (SSMS) och Transact-SQL (T-SQL) för att ändra tillväxtökningen för dina tempdb filer.

Du kan använda SQL Server Management Studio (SSMS) för att ändra ökningssteget för tempdb filer. Följ stegen nedan:

  1. Anslut till din hanterade instans i SSMS.

  2. Expandera Databaser i Object Explorer och expandera sedan Systemdatabaser.

  3. Högerklicka på tempdboch välj Egenskaper.

  4. Välj Filer under Välj en sida för att visa det befintliga antalet tempdb filer.

  5. Välj ellipserna (...) bredvid en datafil för att öppna dialogrutan Ändra egenskaper för automatisk tillväxt .

  6. Markera kryssrutan bredvid Aktivera autogrowth och ändra sedan inställningarna för automatisk tillväxt genom att ange värdena för filtillväxt, antingen i procent eller megabyte.

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

  7. Spara inställningarna genom att välja OK.

Maximal storlek

tempdbstorlek är summan av alla tempdb filer. tempdb filstorlek är ett allokerat (nollställt) utrymme för tempdb filen. Den ursprungliga filstorleken för alla tempdb filer är 16 MB, vilket är storleken på alla tempdb filer när instansen startas om eller redundansväxlar. När en tempdb datafils använda utrymme når filstorleken växer alla tempdb datafiler automatiskt genom de konfigurerade tillväxtstegen.

tempdbanvänt utrymme är summan av det använda utrymmet för alla tempdb filer. tempdb det filutrymme som används är lika med den del av filstorleken som tempdb används med icke-nollinformation. Summan av tempdbanvänt utrymme ochtempdb ledigt utrymme är lika tempdb med storleken.

Du kan använda T-SQL för att fastställa aktuellt använt och ledigt utrymme för dina tempdb filer.

Kör det här kommandot för att få använt utrymme, ledigt utrymme och storleken på dina tempdb datafiler:

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

Följande skärmbild visar ett exempel på utdata:

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

Kör det här kommandot för att hämta använt utrymme, ledigt utrymme och storleken på dina tempdb loggfiler:

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

Följande skärmbild visar ett exempel på utdata:

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

tempdb maxstorlek är den gräns som du tempdb inte kan öka ytterligare efter.

tempdb maxstorleken i SQL Managed Instance har följande begränsningar:

  • På tjänstnivån Generell användning är den maximala storleken för tempdb begränsad till 24 GB/virtuell kärna (96–1920 GB) och loggfilen är 120 GB.
  • På tjänstnivån tempdb Affärskritisk konkurrerar du med andra databaser om resurser, så den reserverade lagringen delas mellan tempdb och andra databaser. Loggfilens maximala tempdb storlek är 2 TB.

tempdb filer växer tills de når antingen den maximala gränsen som tillåts av tjänstnivån eller av den manuellt konfigurerade maximala tempdb filstorleken.

Du kan använda både SQL Server Management Studio (SSMS) och Transact-SQL (T-SQL) för att ändra den maximala storleken för dina tempdb filer.

Följ dessa steg för att fastställa din aktuella tempdb maxstorlek i SSMS:

  1. Anslut till din hanterade instans i SSMS.
  2. Expandera Databaser i Object Explorer och expandera sedan Systemdatabaser.
  3. Högerklicka på tempdboch välj Egenskaper.
  4. På sidan Allmänt kontrollerar du värdet Storlek under Databas för att fastställa din maximala tempdb-storlek. Värdet -1 för anger att maxstorleken tempdb är obegränsad.

Screenshot of tempdb database properties showing the max size for tempdb in SSMS.

Följ dessa steg om du vill ändra din aktuella tempdb maxstorlek i SSMS:

  1. Anslut till din hanterade instans i SSMS.
  2. Expandera Databaser i Object Explorer och expandera sedan Systemdatabaser.
  3. Högerklicka på tempdboch välj Egenskaper.
  4. Välj Filer under Välj en sida för att visa det befintliga antalet tempdb filer.
  5. Välj ellipserna (...) bredvid en datafil för att öppna dialogrutan Ändra egenskaper för automatisk tillväxt .
  6. Ändra maxstorleksinställningarna tempdb genom att ändra värdena under Maximal filstorlek.
  7. Spara inställningarna genom att välja OK.

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

tempdb-gränser

I följande tabell definieras gränser för olika tempdb konfigurationsinställningar:

Konfigurationsuppsättning Värden
Logiska namn på tempdb filer Maximalt 16 tecken
Antal tempdb filer Maximalt 128 filer
Standardantal filer tempdb 13 (1 loggfil + 12 datafiler)
Initial storlek på tempdb datafiler 16 MB
Standardökningsökning för tempdb datafiler 256 MB
Initial storlek på tempdb loggfiler 16 MB
Standardökningsökning för tempdb loggfiler 64 MB
Ursprunglig maxstorlek tempdb -1 (obegränsat)
Maximal storlek på tempdb Upp till lagringsstorleken

Nästa steg