Elastiska pooler hjälper dig att hantera och skala flera databaser Azure SQL Database
GÄLLER FÖR:
Azure SQL Database
Azure SQL Database elastiska pooler är en enkel, kostnadseffektiv lösning för att hantera och skala flera databaser som har varierande och oförutsägbara användningskrav. Databaserna i en elastisk pool finns på en enda server och delar ett visst antal resurser till ett fast pris. Med elastiska pooler i Azure SQL Database kan SaaS-utvecklare optimera prisprestanda för en grupp med databaser inom en fastställd budget samtidigt som de levererar flexibla prestanda för varje databas.
Vad är SQL elastiska pooler
SaaS-utvecklare utvecklar program på storskaliga datanivåer som består av flera databaser. Ett vanligt programmönster är att etablera en enkel databas för varje kund. Men olika kunder har ofta varierande och oförutsägbara användningsmönster och det är svårt att förutse resurskraven för varje enskild databasanvändare. Traditionellt hade du två alternativ:
- Överetabler resurser baserat på högsta användning och överförbrukning, eller
- Underetablering för att spara kostnader på bekostnad av prestanda och kundnöjdhet under toppar.
Elastiska pooler löser det här problemet genom att säkerställa att databaserna får de prestandaresurser som de behöver när de behöver dem. De tillhandahåller en enkel resursallokeringsmekanism med en förutsägbar budget. Läs mer om designmönster för SaaS-program med elastiska pooler i Designmönster för SaaS-program med flera klienter med Azure SQL Database.
Viktigt
Elastiska pooler debiteras inte per databas. Du debiteras för varje timme som en pool finns på högsta eDTU eller virtuella kärnor, oavsett användning eller om poolen var aktiv i mindre än en timme.
Elastiska pooler gör det möjligt för utvecklare att köpa resurser för en pool som delas av flera databaser för att hantera oförutsägbara perioder av användning av enskilda databaser. Du kan konfigurera resurser för poolen baserat på köpmodellen baserad på DTU eller köpmodellen baserad på virtuella kärnor. Resurskravet för en pool bestäms av den sammanställda användningen av dess databaser. Mängden resurser som är tillgängliga för poolen styrs av utvecklarbudgeten. Utvecklaren lägger bara till databaser i poolen, anger eventuellt de lägsta och högsta resurserna för databaserna (antingen lägsta och högsta DPU:er eller lägsta eller högsta virtuella kärnor beroende på ditt val av resursmodell) och anger sedan poolens resurser baserat på deras budget. Med hjälp av pooler kan utvecklare sömlöst expandera sina tjänster från en idé till en mogen affärsverksamhet som bara fortsätter att växa.
I poolen kan de enskilda databaserna skalas automatiskt inom fastställda parametrar. Under hög belastning kan en databas förbruka mer resurser för att möta efterfrågan. Databaser med lätt belastning förbrukar mindre, och databaser utan belastning förbrukar inga resurser. Genom att etablera resurser för hela poolen i stället för enskilda databaser kan du förenkla dina hanteringsuppgifter. Dessutom har du en förutsägbar budget för poolen. Ytterligare resurser kan läggas till i en befintlig pool med minsta stilleståndstid. Om extra resurser inte längre behövs kan de tas bort från en befintlig pool när som helst. Och du kan lägga till eller ta bort databaser från poolen. Om du vet att en databas underförbrukar resurser tar du bort den.
Anteckning
När du flyttar databaser till eller från en elastisk pool finns det ingen avbrottstid förutom en kort tidsperiod (i sekundersordning) i slutet av åtgärden när databasanslutningarna tas bort.
När bör du överväga en SQL Database elastisk pool
Pooler lämpar sig väl för ett stort antal databaser med specifika användningsmönster. För en viss databas kännetecknas det här mönstret av låg genomsnittlig användning med relativt ovanliga användningstoppar. Omvänt bör flera databaser med beständig medelhög användning inte placeras i samma elastiska pool.
Ju fler databaser du kan lägga till i en pool desto större blir dina besparingar. Beroende på ditt programanvändningsmönster är det möjligt att se besparingar med så få som två S3-databaser.
Följande avsnitt hjälper dig att förstå hur du avgör om en specifik samling databaser kan ha nytta av att tillhöra en pool. I exemplen används Standard-pooler, men samma principer gäller även för Basic- och Premium-pooler.
Utvärdera databasanvändningsmönster
Följande bild visar ett exempel på en databas med mycket inaktiv tid, men även med regelbundna aktivitetstoppar. Det här är ett användningsmönster som passar för en pool:

Diagrammet visar DTU-användning under en tidsperiod på 1 timme från 12:00 till 1:00 där varje datapunkt har en minuts kornighet. Vid 12:10 DB1 toppar upp till 90 DPU:er, men den totala genomsnittliga användningen är mindre än fem DTO:er. En S3-beräkningsstorlek krävs för att köra den här arbetsbelastningen i en enkel databas, men det innebär att de flesta av resurserna inte används under perioder med låg aktivitet.
En pool gör att dessa oanvända DTU:er kan delas av flera databaser och minskar således de DTU:er som krävs och den sammanlagda kostnaden.
Vi ska bygga vidare på föregående exempel och antar att det finns ytterligare databaser med liknande användningsmönster som DB1. I de följande två figurerna nedan skiktas användningen av fyra databaser och 20 databaser i samma diagram för att illustrera att användningen över tid inte överlappar varandra med hjälp av köpmodellen baserad på DTU:


Den sammanlagda DTU-användningen över alla 20 databaser illustreras av den svarta linjen i föregående bild. Detta visar att den sammanlagda DTU-användningen aldrig överskrider 100 DTU:er och indikerar att 20 databaser kan dela 100 eDTU:er under den här tidsperioden. Detta resulterar i en 20x minskning av DPU:er och en prisminskning på 13 gånger jämfört med att placera var och en av databaserna i S3-beräkningsstorlekar för enskilda databaser.
Det här exemplet är idealisk av följande anledningar:
- Skillnaderna mellan användningen vid hög aktivitet och den genomsnittliga användningen per databas är stora.
- Belastningstopparna för varje databas inträffar vid olika tidpunkter.
- eDTU:er som delas mellan flera databaser.
I köpmodellen för DTU är priset för en pool en funktion för poolens eDTU:er. Även om eDTU-enhetspriset för en pool är 1,5 gånger större än DTU-enhetspriset för en enkel databas, så kan pool-DTU:erna delas av många databaser och det behövs färre eDTU:er. Dessa skillnader i pris och eDTU-delning utgör grunden för de prisbesparingar som pooler kan medföra.
I köpmodellen för virtuella kärnor är enhetspriset för virtuella kärnor för elastiska pooler detsamma som enhetspriset för virtuella kärnor för enskilda databaser.
Hur gör jag för att välja rätt poolstorlek
Den bästa storleken för en pool beror på de sammanställda resurser som behövs för alla databaser i poolen. Detta omfattar att fastställa följande:
- Maximalt antal beräkningsresurser som används av alla databaser i poolen. Beräkningsresurser indexeras antingen av eDPU:er eller virtuella kärnor beroende på ditt val av köpmodell.
- Högsta lagringsutrymme i byte som används av alla databaser i poolen.
Information om tjänstnivåer och resursgränser i varje köpmodell finns i köpmodellen baserad på DTU eller köpmodellen baserad på vCore.
Följande steg kan hjälpa dig att uppskatta om en pool är mer kostnadseffektiv än enskilda databaser:
- Beräkna de eDPU:er eller virtuella kärnor som behövs för poolen enligt följande:
- För köpmodellen baserad på DTU:
- MAX(<Total number of × DBS Average DTU utilization per DB>, <Number of concurrently peaking × DTU utilization per DB>)
- För köpmodellen baserad på virtuella kärnor:
- MAX(<Total number of DBs × Average vCore utilization per DB>, <Number of concurrently peaking DBs × Peak vCore utilization per DB>)
- För köpmodellen baserad på DTU:
- Beräkna det totala lagringsutrymmet som behövs för poolen genom att lägga till den datastorlek som behövs för alla databaser i poolen. För köpmodellen för DTU fastställer du sedan den eDTU-poolstorlek som tillhandahåller den här mängden lagring.
- För köpmodellen baserad på DTU tar du det större av eDTU-uppskattningarna från steg 1 och steg 2. För köpmodellen baserad på vCore tar du uppskattningen av virtuella kärnor från steg 1.
- Se sidan SQL Database och hitta den minsta poolstorleken som är större än uppskattningen i steg 3.
- Jämför poolpriset från steg 4 med priset för att använda lämpliga beräkningsstorlekar för enskilda databaser.
Viktigt
Om antalet databaser i en pool närmar sig det maximala antalet som stöds bör du överväga Resurshantering i kompakta elastiska pooler.
Egenskaper per databas
Om du vill kan du ange "per databas"-egenskaper för att ändra resursförbrukningsmönster i elastiska pooler. Mer information finns i dokumentationen om resursbegränsningar för elastiska DTU- och vCore-pooler.
Använda andra SQL Database med elastiska pooler
Elastiska jobb och elastiska pooler
Med en pool förenklas hanteringsuppgifterna eftersom du kan köra skript i elastiska jobb. Ett elastiskt jobb underlättar hanteringen av stora antal databaser.
Mer information om andra databasverktyg för att jobba med flera databaser, finns i Skala ut med Azure SQL Database.
Alternativ för affärskontinuhet för databaser i en elastisk pool
Pooldatabaser stöder generellt sett samma funktioner för affärskontinuitet som finns tillgängliga för enkla databaser.
Återställning från tidpunkt
Återställning till tidpunkt använder automatiska databassäkerhetskopior för att återställa en databas i en pool till en viss tidpunkt. Mer information finns i avsnittet om återställning till tidpunkt
Geo-återställning
Geo-återställning är standardalternativet för återställning när en databas inte är tillgänglig på grund av en incident i den region där databasen finns. Se Återställa en Azure SQL Database eller redundans till en sekundär
Aktiv geo-replikering
För program som har mer aggressivt återställningskrav än vad geo-återställning kan erbjuda konfigurerar du Aktiv geo-replikering eller en grupp för automatisk redundans.
Skapa en ny SQL Database elastisk pool med hjälp av Azure Portal
Det finns två sätt att skapa en elastisk pool i Azure Portal.
Gå till Azure Portal för att skapa en elastisk pool. Sök efter och välj Azure SQL.
Välj +Lägg till för att öppna sidan Välj SQL för distribution. Du kan visa ytterligare information om elastiska pooler genom att välja Visa information på panelen Databaser.
På panelen Databaser väljer du Elastisk pool i listrutan Resurstyp och väljer sedan Skapa:

Eller så kan du skapa en elastisk pool genom att gå till en befintlig server och klicka på + Ny pool för att skapa en pool direkt till den servern.
Anteckning
Du kan skapa flera pooler på en server, men du kan inte lägga till databaser från olika servrar i samma pool.
Poolens tjänstnivå avgör vilka funktioner som är tillgängliga för elastiska funktioner i poolen och den maximala mängden resurser som är tillgängliga för varje databas. Mer information finns i Resursgränser för elastiska pooler i DTU-modellen. Information om vCore-baserade resursgränser för elastiska pooler finns i vCore-baserade resursgränser – elastiska pooler.
Om du vill konfigurera resurser och priser för poolen klickar du på Konfigurera pool. Välj sedan en tjänstnivå, lägg till databaser i poolen och konfigurera resursgränserna för poolen och dess databaser.
När du har slutfört konfigurationen av poolen kan du klicka på Använd, namnge poolen och klicka på OK för att skapa poolen.
Övervaka en elastisk pool och dess databaser
I Azure Portal kan du övervaka användningen av en elastisk pool och databaserna i poolen. Du kan också göra en uppsättning ändringar i den elastiska poolen och skicka alla ändringar samtidigt. Dessa ändringar omfattar att lägga till eller ta bort databaser, ändra inställningarna för den elastiska poolen eller ändra databasinställningarna.
Du kan använda de inbyggda verktygen för prestandaövervakning och aviseringi kombination med prestandaklassificeringar. Dessutom kan SQL Database generera mått och resursloggar för enklare övervakning.
Kundfallstudier
-
SnelStart använde elastiska pooler med Azure SQL Database för att snabbt expandera sina företagstjänster med en hastighet på 1 000 nya Azure SQL databaser per månad.
-
Umbraco använder elastiska pooler med Azure SQL Database för att snabbt etablera och skala tjänster för tusentals klienter i molnet.
-
Daxko/CSI använder elastiska pooler med Azure SQL Database för att påskynda sin utvecklingscykel och för att förbättra sina kundtjänster och prestanda.
Nästa steg
- Prisinformation finns i Priser för elastiska pooler.
- Om du vill skala elastiska pooler kan du se Skala elastiska pooler och Skala en elastisk pool – exempelkod
- Läs mer om designmönster för SaaS-program med elastiska pooler i Designmönster för SaaS-program med flera klienter med Azure SQL Database.
- En SaaS-självstudiekurs om att använda elastiska pooler finns i Introduktion till Wingtip SaaS-programmet.
- Mer information om resurshantering i elastiska pooler med många databaser finns i Resurshantering i kompakta elastiska pooler.