Dela via


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
  • Tillväxtökningen för tempdb filer
  • Maximal storlek på tempdb

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 eftersom tempdb används för icke-beständig lagring loggas transaktionerna med minimal detalj.

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 instansen. Objekt som kan ha skapats i tempdb under en tidigare session finns inte kvar när tjänsten startas om, efter en instansuppdateringshanteringsåtgärd 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 SQL-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 konflikter 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 PFS-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.

Anmärkning

Du behöver inte starta om instansen när du har lagt till nya filer. De mindre fyllda filerna fylls dock med högre prioritet och round-robin-algoritmen för allokering av sidor upphör tills systemet har balanserats 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. Gör det genom att följa dessa steg:

  1. Anslut till din SQL-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.

    Skärmbild av databasegenskaper i SSMS med nytt databasfilnamn markerat.

  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å förfrågningar med tempdb. tempdb Därför kan ökningar av datafilens tillvä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äxtsteg för att anpassa dig till din arbetsbelastning och justera prestandan.

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. Annars kan round robin-algoritmen 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. Gör det genom att följa dessa steg:

  1. Anslut till din SQL-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 i procent eller megabyte.

    Skärmbild av Ändra automatisk tillväxt för tempdev i SSMS med nytt databasfilnamn markerat.

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

Maxstorlek

tempdb storlek ä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.

tempdb använt utrymme är summan av det använda utrymmet för alla tempdb filer. tempdb filutrymme som används är lika med den del av filstorleken som tempdb används med icke-nollinformation. Summan av tempdbanvänt utrymme och tempdbledigt 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:

Skärmbild av frågeresultatet i SSMS som visar använt och ledigt utrymme i tempdb-datafilen.

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:

Skärmbild av frågeresultatet i SSMS som visar använt och ledigt utrymme i tempdb-loggfilen.

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). Loggfilens maximala storlek tempdb ä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 upp till den maximala lagringsstorlek som allokeras till instansen. Loggfilens tempdb maximala storlek är två 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 SQL-hanterade instans i SSMS.
  2. Expandera Databaser i Object Explorer och expandera sedan Systemdatabaser.
  3. Högerklicka på tempdboch välj Egenskaper.
  4. sidan Allmänt kontrollerar du värdet Storlek under Databas för att fastställa din maxstorlek tempdb . Värdet -1 för anger att maxstorleken tempdb är obegränsad.

Skärmbild av tempdb-databasegenskaper som visar maxstorleken för tempdb i SSMS.

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

  1. Anslut till din SQL-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.

Skärmbild av dialogrutan Ändra automatisk inväxt i SSMS med maximal filstorlek markerad.

tempdb-gränser

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

Konfigurationsinställning Värden
Logiska namn på tempdb filer Maximalt 16 tecken
Antal tempdb filer Maximalt 128 filer
Standardantalet av tempdb filer 13 (1 loggfilen + 12 datafiler)
Initial storlek på tempdb datafiler 16 MB
Förinställd tillväxtökning för tempdb datafiler 256 MB
Den initiala storleken av tempdb loggfiler 16 MB
Standard tillväxtökning för tempdb loggfiler 64 MB
Ursprunglig maxstorlek tempdb -1 (obegränsat)
Maximal storlek på tempdb datafiler – På tjänstnivån Generell användning: 24 GB/virtuell kärna upp till totalt 1 920 GB
På den affärskritiska tjänstnivån: Upp till lagringskapaciteten
Maximal storlek på tempdb loggfiler – På tjänstnivån Generell användning: 120 GB
På tjänstnivån Affärskritisk: 2 TB