Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
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
tempdbfiler - Tillväxtökningen för
tempdbfiler - 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
tempdbfiler ä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:
Anslut till din SQL-hanterade instans i SSMS.
Expandera Databaser i Object Explorer och expandera sedan Systemdatabaser.
Högerklicka på
tempdboch välj Egenskaper.Välj Filer under Välj en sida för att visa det befintliga antalet
tempdbfiler.Om du vill lägga till en fil väljer du Lägg till och anger sedan information om den nya datafilen på raden.
Om du vill ta bort en
tempdbfil 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
tempdbdatafiler. 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:
Anslut till din SQL-hanterade instans i SSMS.
Expandera Databaser i Object Explorer och expandera sedan Systemdatabaser.
Högerklicka på
tempdboch välj Egenskaper.Välj Filer under Välj en sida för att visa det befintliga antalet
tempdbfiler.Välj ellipserna (...) bredvid en datafil för att öppna dialogrutan Ändra egenskaper för automatisk tillväxt .
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.
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:
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:
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
tempdbbegränsad till 24 GB/virtuell kärna (96–1920 GB). Loggfilens maximala storlektempdbär 120 GB. - På tjänstnivån
tempdbAffärskritisk konkurrerar du med andra databaser om resurser, så den reserverade lagringen delas mellantempdboch andra databaser upp till den maximala lagringsstorlek som allokeras till instansen. Loggfilenstempdbmaximala 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:
- Anslut till din SQL-hanterade instans i SSMS.
- Expandera Databaser i Object Explorer och expandera sedan Systemdatabaser.
- Högerklicka på
tempdboch välj Egenskaper. - På sidan Allmänt kontrollerar du värdet Storlek under Databas för att fastställa din maxstorlek
tempdb. Värdet-1för anger att maxstorleken tempdb är obegränsad.
Följ dessa steg om du vill ändra din aktuella tempdb maxstorlek i SSMS:
- Anslut till din SQL-hanterade instans i SSMS.
- Expandera Databaser i Object Explorer och expandera sedan Systemdatabaser.
- Högerklicka på
tempdboch välj Egenskaper. - Välj Filer under Välj en sida för att visa det befintliga antalet
tempdbfiler. - Välj ellipserna (...) bredvid en datafil för att öppna dialogrutan Ändra egenskaper för automatisk tillväxt .
- Ändra maxstorleksinställningarna
tempdbgenom att ändra värdena under Maximal filstorlek. - Spara inställningarna genom att välja OK.
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 |
Relaterat innehåll
- Snabbstart: Skapa Azure SQL Managed Instance
- Jämförelse av funktioner: Azure SQL Database och Azure SQL Managed Instance
- Anslutningsarkitektur för Azure SQL Managed Instance
- SQL Managed Instance-migrering med hjälp av Database Migration Service
- Övervaka Azure SQL-arbetsbelastningar med databasövervakare (förhandsversion)
- Priser för SQL Database