SQL Database-alternativ och prestanda: Förstå vad varje tjänstnivå erbjuder

Azure SQL Database erbjuder tre tjänstnivåer: Basic, Standard och Premium, med flera prestandanivåer för att hantera olika arbetsbelastningar. Högre prestandanivåer innebär fler resurser för högre dataflöde. Du kan byta tjänstnivå och prestandanivå dynamiskt utan driftavbrott. Tjänstnivåerna Basic, Standard och Premium har alla ett SLA med 99,99 % garanterad tillgänglighet, flexibla alternativ för affärskontinuitet, säkerhetsfunktioner och fakturering per timme.

Du kan skapa enskilda databaser med dedikerade resurser på den prestandanivå som du har valt. Du kan också hantera flera databaser i en elastisk pool där resurserna delas mellan databaser. Resurserna som är tillgängliga för enskilda databaser uttrycks i databastransaktionsenheter (DTU, Database Transaction Unit), och för elastiska pooler i elastiska DTU:er (eDTU:er). Mer information om DTU:er och eDTU:er finns i Vad är en DTU?

I båda fallen kan du välja mellan tjänstnivåerna Basic, Standard och Premium.

Välja tjänstnivå

Följande tabell ger exempel på vilka nivåer som lämpar sig bäst för olika programbelasningar.

Tjänstenivå Målbelastningar
Basic Bäst lämpad för små databaser som vanligtvis stöder en aktiv åtgärd åt gången. Exempelvis databaser som används för utveckling och testning, eller småskaliga program som inte används ofta.
Standard Det rekommenderade alternativet för molnprogram med låga till medelhöga IO-prestandakrav. Den här nivån har stöd för flera samtidiga frågor. Exempelvis arbetsgrupps- eller webbappar.
Premium Utformad för höga transaktionsvolymer med höga IO-prestandakrav. Den här nivån har stöd för många samtidiga användare. Exempelvis databaser som stöder verksamhetskritiska program.

Börja med att bestämma om du vill köra en enskild databas eller om du vill gruppera databaser som delar resurser. Läs avsnittet om överväganden för elastiska pooler. När du ska välja tjänstnivå börjar du med att fastställa de minsta databasfunktioner som du behöver:

  • Den högsta databasstorleken för enskilda databaser (högst 2 GB för Basic, högst 250 GB för Standard och högst 500 GB till 1 TB för Premium på nivån för högsta prestanda)
  • Det största totala lagringsutrymmet för en elastisk pool (117 GB för Basic, 1200 GB för Standard och 750 GB för Premium)
  • Det högsta antalet databaser per pool (400 för Basic, 400 för Standard och 50 för Premium)
  • Kvarhållningsperiod för säkerhetskopior av databasen (7 dagar för Basic, 35 dagar för Standard och Premium)

När du har bestämt vilken minsta tjänstnivå du behöver är det dags att fastställa prestandanivån för databasen (antalet DTU:er). Prestandanivåerna Standard S2 och S3 är ofta bra startpunkter. För databaser med höga CPU- eller IO-krav är Premium-prestandanivåerna en lämplig startpunkt. Premium erbjuder mer CPU-kapacitet och börjar med tio gånger högre IO jämfört med den högsta Standard-prestandanivån.

Servicenivåer och prestandanivåer för enskilda databaser

För enskilda databaser finns det flera prestandanivåer inom varje tjänstnivå. Du kan flexibelt välja den tjänstnivå som bäst motsvarar dina arbetsbelastningsbehov. Om du behöver skala upp eller ned kan du enkelt byta nivå för din databas. Se Ändra tjänstnivå och prestandanivå för databasen för mer information.

Oavsett hur många databaser du har i värdtjänsten så får din databas en garanterad uppsättning resurser och databasens förväntade prestanda påverkas inte.

Basic service tier

Performance level Basic
Max DTUs 5
Max database size* 2 GB
Max in-memory OLTP storage N/A
Max concurrent workers (requests) 30
Max concurrent logins 30
Max concurrent sessions 300

Standard service tier

Performance level S0 S1 S2 S3
Max DTUs 10 20 50 100
Max database size* 250 GB 250 GB 250 GB 250 GB
Max in-memory OLTP storage N/A N/A N/A N/A
Max concurrent workers (requests) 60 90 120 200
Max concurrent logins 60 90 120 200
Max concurrent sessions 600 900 1200 2400

Premium service tier

Performance level P1 P2 P4 P6 P11 P15
Max DTUs 125 250 500 1000 1750 4000
Max database size* 500 GB 500 GB 500 GB 500 GB 4 TB 4 TB
Max in-memory OLTP storage 1 GB 2 GB 4 GB 8 GB 14 GB 32 GB
Max concurrent workers (requests) 200 400 800 1600 2400 6400
Max concurrent logins 200 400 800 1600 2400 6400
Max concurrent sessions 30000 30000 30000 30000 30000 30000

Premium RS service tier

Performance level PRS1 PRS2 PRS4 PRS6
Max DTUs 125 250 500 1000
Max database size* 500 GB 500 GB 500 GB 500 GB
Max in-memory OLTP storage 1 GB 2 GB 4 GB 8 GB
Max concurrent workers (requests) 200 400 800 1600
Max concurrent logins 200 400 800 1600
Max concurrent sessions 30000 30000 30000 30000

* Max database size refers to the maximum size of the data in the database.

Anteckning

För en detaljerad förklaring av alla andra rader i den här tabellen över tjänstnivåer, se Funktioner och begränsningar för tjänstnivåer.

Skala upp eller skala ned en enkel databas

När du har valt en tjänstnivå och en prestandanivå kan du skala upp eller ned en enkel databas dynamiskt utifrån det faktiska resultatet.

När du ändrar servicenivån och/eller prestandanivån för en databas skapas en replik av den ursprungliga databasen på den nya prestandanivån och sedan växlas anslutningar över till repliken. Inga data förloras under den här processen men under kort tidsperiod när vi växlar över till repliken är anslutningar till databasen inaktiverade, så vissa transaktioner som sker då kan återställas. Det här tidsfönstret varierar, men är i genomsnitt är det under 4 sekunder, och i mer än 99% av fallen rör det sig om mindre än 30 sekunder. Om många transaktioner sker just då anslutningarna är inaktiverade kan det ta lite längre tid.

Hur lång tid processen att skala upp tar beror på databasens storlek och tjänstnivå före och efter ändringen. Till exempel bör en 250 GB-databas som ändras till, från eller inom en standard-tjänstnivå slutföras inom 6 timmar. En databas som är lika stor som ändrar prestandanivå inom premium-tjänstnivån bör slutföras inom 3 timmar.

  • För att nedgradera en databas bör den vara mindre än den maximala tillåtna storleken för måltjänstnivån.
  • När du uppgraderar en databas med Geo-replikering aktiverat måste du först uppgradera dess sekundära databaser till den önskade prestandanivån innan du uppgraderar den primära databasen.
  • När du nedgraderar från en premium-tjänstnivå måste först avsluta alla geo-replikeringsrelationer. Du kan följa stegen som beskrivs i avsnittet om återställning efter ett avbrott för att stoppa replikeringsprocessen mellan den primära och de aktiva sekundära databaserna.
  • Erbjudandena för återställningstjänsterna är olika för de olika tjänstnivåerna. Om du nedgraderar kan du förlora möjligheten att återställa till en viss tidpunkt eller få en lägre kvarhållningsperiod för säkerhetskopiering. Mer information finns i Azure SQL Database Backup and Restore (Säkerhetskopiera och återställa med Azure SQL Database).
  • De nya egenskaperna för databasen tillämpas inte förrän ändringarna har slutförts.
Viktigt

Detaljerade anvisningar finns i Managing single databases with the Azure portal (Hantera enkla databaser med Azure Portal), Managing single databases with Powershell (Hantera enkla databaser med Powershell), eller Managing single databases with Transact-SQL (Hantera enkla databaser med Transact-SQL).

Tjänstnivåer och prestanda för elastiska pooler i eDTU:er

Pooler gör att databaser kan dela och förbruka eDTU-resurser utan att varje databas i poolen behöver tilldelas en specifik prestandanivå. En enskild databas i en standardpool kan exempelvis gå från att använda 0 eDTU:er till de maximala databas-eDTU:erna som du ställt in när du konfigurerade poolen. Pooler gör att flera databaser med varierande arbetsbelastningar effektivt kan använda eDTU-resurser som är tillgängliga för hela poolen. Se pris- och prestandaöverväganden för en elastisk databaspool för mer information.

Följande tabell beskriver egenskaperna för pool-tjänstnivåer.

Basic elastic pool limits

Pool size (eDTUs) 50 100 200 300 400 800 1200 1600
Max data storage per pool* 5 GB 10 GB 20 GB 29 GB 39 GB 78 GB 117 GB 156 GB
Max In-Memory OLTP storage per pool N/A N/A N/A N/A N/A N/A N/A N/A
Max number DBs per pool 100 200 500 500 500 500 500 500
Max concurrent workers (requests) per pool 100 200 400 600 800 1600 2400 3200
Max concurrent logins per pool 100 200 400 600 800 1600 2400 3200
Max concurrent sessions per pool 30000 30000 30000 30000 30000 30000 30000 30000
Min eDTUs per database {0, 5} {0, 5} {0, 5} {0, 5} {0, 5} {0, 5} {0, 5} {0, 5}
Max eDTUs per database {5} {5} {5} {5} {5} {5} {5} {5}
Max data storage per database 2 GB 2 GB 2 GB 2 GB 2 GB 2 GB 2 GB 2 GB

Standard elastic pool limits

Pool size (eDTUs) 50 100 200 300 400 800
Max data storage per pool* 50 GB 100 GB 200 GB 300 GB 400 GB 800 GB
Max In-Memory OLTP storage per pool N/A N/A N/A N/A N/A N/A
Max number DBs per pool 100 200 500 500 500 500
Max concurrent workers (requests) per pool 100 200 400 600 800 1600
Max concurrent logins per pool 100 200 400 600 800 1600
Max concurrent sessions per pool 30000 30000 30000 30000 30000 30000
Min eDTUs per database {0,10,20,
50}
{0,10,20,
50,100}
{0,10,20,
50,100}
{0,10,20,
50,100}
{0,10,20,
50,100}
{0,10,20,
50,100}
Max eDTUs per database {10,20,
50}
{10,20,
50,100}
{10,20,
50,100}
{10,20,
50,100}
{10,20,
50,100}
{10,20,
50,100}
Max data storage per database 250 GB 250 GB 250 GB 250 GB 250 GB 250 GB

Standard elastic pool limits (continued)

Pool size (eDTUs) 1200 1600 2000 2500 3000
Max data storage per pool* 1.2 TB 1.6 TB 2 TB 2.4 TB 2.9 TB
Max In-Memory OLTP storage per pool N/A N/A N/A N/A N/A
Max number DBs per pool 500 500 500 500 500
Max concurrent workers (requests) per pool 2400 3200 4000 5000 6000
Max concurrent logins per pool 2400 3200 4000 5000 6000
Max concurrent sessions per pool 30000 30000 30000 30000 30000
Min eDTUs per database {0,10,20,
50,100}
{0,10,20,
50,100}
{0,10,20,
50,100}
{0,10,20,
50,100}
{0,10,20,
50,100}
Max eDTUs per database {10,20,
50,100}
{10,20,
50,100}
{10,20,
50,100}
{10,20,
50,100}
{10,20,
50,100}
Max data storage per database 250 GB 250 GB 250 GB 250 GB 250 GB

Premium elastic pool limits

Pool size (eDTUs) 125 250 500 1000 1500
Max data storage per pool* 250 GB 500 GB 750 GB 750 GB 1.5 TB
Max In-Memory OLTP storage per pool 1 GB 2 GB 4 GB 10 GB 12 GB
Max number DBs per pool 50 100 100 100 100
Max concurrent workers per pool (requests) 200 400 800 1600 2400
Max concurrent logins per pool 200 400 800 1600 2400
Max concurrent sessions per pool 30000 30000 30000 30000 30000
Min eDTUs per database {0,25,50,75,
125}
{0,25,50,75,
125,250}
{0,25,50,75,
125,250,500}
{0,25,50,75,
125,250,500,
1000}
{0,25,50,75,
125,250,500,
1000,1500}
Max eDTUs per database {25,50,75,
125}
{25,50,75,
125,250}
{25,50,75,
125,250,500}
{25,50,75,
125,250,500,
1000}
{25,50,75,
125,250,500,
1000,1500}
Max data storage per database 500 GB 500 GB 500 GB 500 GB 500 GB

Premium elastic pool limits (continued)

Pool size (eDTUs) 2000 2500 3000 3500 4000
Max data storage per pool* 2 TB 2.5 TB 3 TB 3.5 TB 4 TB
Max In-Memory OLTP storage per pool 16 GB 20 GB 24 GB 28 GB 32 GB
Max number DBs per pool 100 100 100 100 100
Max concurrent workers (requests) per pool 3200 4000 4800 5600 6400
Max concurrent logins per pool 3200 4000 4800 5600 6400
Max concurrent sessions per pool 30000 30000 30000 30000 30000
Min eDTUs per database {0,25,50,75,
125,250,500,
1000,1750}
{0,25,50,75,
125,250,500,
1000,1750}
{0,25,50,75,
125,250,500,
1000,1750}
{0,25,50,75,
125,250,500,
1000,1750}
{0,25,50,75,
125,250,500,
1000,1750,4000}
Max eDTUs per database {25,50,75,
125,250,500,
1000,1750}
{25,50,75,
125,250,500,
1000,1750}
{25,50,75,
125,250,500,
1000,1750}
{25,50,75,
125,250,500,
1000,1750}
{25,50,75,
125,250,500,
1000,1750,4000}
Max data storage per database 500 GB 500 GB 500 GB 500 GB 500 GB

Premium RS elastic pool limits

Pool size (eDTUs) 125 250 500 1000
Max data storage per pool* 250 GB 500 GB 750 GB 750 GB
Max In-Memory OLTP storage per pool 1 GB 2 GB 4 GB 10 GB
Max number DBs per pool 50 100 100 100
Max concurrent workers (requests) per pool 200 400 800 1600
Max concurrent logins per pool 200 400 800 1600
Max concurrent sessions per pool 30000 30000 30000 30000
Min eDTUs per database {0,25,50,75,
125}
{0,25,50,75,
125,250}
{0,25,50,75,
125,250,500}
{0,25,50,75,
125,250,500,
1000}
Max eDTUs per database {25,50,75,
125}
{25,50,75,
125,250}
{25,50,75,
125,250,500}
{25,50,75,
125,250,500,
1000}
Max data storage per database 500 GB 500 GB 500 GB 500 GB
Viktigt

* Pooled databases share pool storage, so data storage in an elastic pool is limited to the smaller of the remaining pool storage or max storage per database. The default max data storage per pool for Premium pools with 1500 eDTUs or more is 750 GB. To obtain the higher max data storage size per pool, this size must be explicitly selected using the Azure portal or PowerShell. Premium pools with more than 750 GB of storage is currently in public preview in the following regions: US East2, West US, West Europe, South East Asia, Japan East, Australia East, Canada Central, and Canada East. The max storage per pool for all other regions is currently limited to 750 GB.

Varje databas inom en pool följer också egenskaperna för enkla databaser på den nivån. Till exempel har en Basic-pool en gräns för högsta antal tillåtna sessioner per pool på 4 800–28 800, men en enskild databas i en Basic-pool har en databasgräns på högst 300 sessioner.

Skala upp eller skala ned en elastisk pool

När du har valt en tjänstnivå och en prestandanivå kan du skala upp eller ned den elastiska poolen dynamiskt utifrån det faktiska resultatet.

  • Det tar vanligtvis fem minuter eller mindre för att ändra det minimala antalet eDTU:er per databas eller det maximala antal eDTU:er per databas.
  • Hur lång tid det tar att ändra poolstorleken (eDTU:er) beror på den kombinerade storleken av alla databaser i poolen. Ändringarna tar i genomsnitt 90 minuter eller mindre per 100 GB. Om det totala utrymme för alla databaser i poolen är 200 GB, till exempel, så är den förväntade svarstiden för att ändra pool-eDTU per pool tre timmar eller mindre.
Viktigt

Detaljerade anvisningar finns i Managing elastic pools with the Azure portal (Hantera elastiska pooler med Azure Portal), Managing elastic pools with Powershell (Hantera elastiska pooler med Powershell), Managing single databases with Transact-SQL (Hantera elastiska pooler med Transact-SQL) eller Managing elastic pools with C# (Hantera elastiska pooler med C#).

Nästa steg