Rekenresources beheren voor een toegewezen SQL-pool
In dit artikel wordt uitgelegd hoe u rekenresources beheert voor een toegewezen SQL-pool (voorheen SQL DW) in Azure Synapse Analytics. U kunt de kosten verlagen door de toegewezen SQL-pool te onderbreken of de toegewezen SQL-pool te schalen om te voldoen aan de prestatievereisten.
Wat is rekenbeheer?
In de architectuur van een toegewezen SQL-pool zijn opslag- en rekencapaciteit gescheiden, zodat deze afzonderlijk kunnen worden geschaald. Daardoor kunt u de rekenkracht aanpassen om aan prestatievereisten te voldoen zonder dat dit consequenties heeft voor de opslag van gegevens. U kunt ook rekenresources pauzeren en hervatten.
Een natuurlijk gevolg van deze architectuur is dat de prijzen voor rekenkracht en opslag gescheiden zijn. U kunt op de kosten voor rekenuren besparen door de berekeningen te onderbreken als u uw toegewezen SQL-pool een tijdje niet nodig hebt.
Rekenkracht schalen
U kunt de rekenkracht uitschalen of terugschalen door de instelling voor datawarehouse-eenheden (DWU's) voor uw toegewezen SQL-pool aan te passen. Laden en queryprestaties kunnen lineair toenemen naarmate u meer DWU's toevoegt.
Zie de quickstarts voor Azure Portal, PowerShell of T-SQL voor uitschalen. U kunt ook scale-outbewerkingen uitvoeren met behulp van een REST API.
Als u een schaalbewerking wilt uitvoeren, beëindigt de toegewezen SQL-pool eerst alle binnenkomende query's en rolt u vervolgens transacties terug om een consistente status te garanderen. Het aanpassen van de schaal vindt alleen plaats als de transactie is teruggedraaid. Voor een schaalbewerking koppelt het systeem de opslaglaag los van de rekenknooppunten, voegt u rekenknooppunten toe en koppelt u de opslaglaag opnieuw aan de rekenlaag.
Elke toegewezen SQL-pool wordt opgeslagen als 60 distributies, die gelijkmatig worden gedistribueerd naar de rekenknooppunten. Door meer rekenknooppunten toe te voegen, wordt meer rekenkracht toegevoegd. Naarmate het aantal rekenknooppunten toeneemt, neemt het aantal distributies per rekenknooppunt af, wat meer rekenkracht biedt voor uw query's. Op dezelfde manier vermindert het verlagen van DWU's het aantal rekenknooppunten, waardoor de rekenresources voor query's worden verminderd.
In de volgende tabel ziet u hoe het aantal distributies per rekenknooppunt verandert wanneer de DWU's veranderen. DW30000c biedt 60 rekenknooppunten en bereikt veel hogere queryprestaties dan DW100c.
Datawarehouse-eenheden | Aantal rekenknooppunten | Aantal distributies per knooppunt |
---|---|---|
DW100c | 1 | 60 |
DW200c | 1 | 60 |
DW300c | 1 | 60 |
DW400c | 1 | 60 |
DW500c | 1 | 60 |
DW1000c | 2 | 30 |
DW1500c | 3 | 20 |
DW2000c | 4 | 15 |
DW2500c | 5 | 12 |
DW3000c | 6 | 10 |
DW5000c | 10 | 6 |
DW6000c | 12 | 5 |
DW7500c | 15 | 4 |
DW10000c | 20 | 3 |
DW15000c | 30 | 2 |
DW30000c | 60 | 1 |
De juiste grootte van datawarehouse-eenheden vinden
Als u de prestatievoordelen van uitschalen wilt zien, met name voor grotere datawarehouse-eenheden, wilt u ten minste een gegevensset van 1 TB gebruiken. Als u het beste aantal DWU's voor uw toegewezen SQL-pool wilt vinden, kunt u omhoog en omlaag schalen. Voer enkele query's uit met verschillende aantallen DWU's na het laden van uw gegevens. Omdat schalen snel is, kunt u in een uur of minder verschillende prestatieniveaus proberen.
Aanbevelingen voor het vinden van het beste aantal DWU's:
- Voor een toegewezen SQL-pool in ontwikkeling selecteert u eerst een kleiner aantal DWU's. Een goed startpunt is DW400c of DW200c.
- Bewaak de prestaties van uw toepassing, waarbij het aantal geselecteerde DWU's wordt waargenomen in vergelijking met de prestaties die u ziet.
- Stel een lineaire schaal in en bepaal hoeveel u nodig hebt om de DWU's te verhogen of te verlagen.
- Ga door met het aanbrengen van aanpassingen totdat u een optimaal prestatieniveau voor uw bedrijfsvereisten bereikt.
Wanneer moet u uitschalen
Het uitschalen van DWU's heeft gevolgen voor deze aspecten van prestaties:
- Lineair verbetert de prestaties van het systeem voor scans, aggregaties en CTAS-instructies
- Verhoogt het aantal lezers en schrijvers voor het laden van gegevens
- Maximum aantal gelijktijdige query's en gelijktijdigheidssites
Aanbevelingen voor het uitschalen van DWU's:
- Voordat u een zware bewerking voor het laden of transformeren van gegevens uitvoert, schaalt u uit om de gegevens sneller beschikbaar te maken.
- Tijdens piekuren kunt u uitschalen om grotere aantallen gelijktijdige query's mogelijk te maken.
Wat gebeurt er als uitschalen de prestaties niet verbetert?
Door DWU's toe te voegen, neemt de parallelle uitvoering toe. Als het werk gelijkmatig wordt verdeeld tussen de rekenknooppunten, verbetert de extra parallelle uitvoering van queryprestaties. Als uitschalen uw prestaties niet wijzigt, zijn er enkele redenen waarom dit kan gebeuren. Uw gegevens kunnen scheef worden verdeeld over de distributies of query's introduceren mogelijk een grote hoeveelheid gegevensverplaatsing. Zie Prestatieproblemen oplossen om problemen met queryprestaties te onderzoeken.
Berekening onderbreken en hervatten
Als u rekenkracht onderbreekt, wordt de opslaglaag losgekoppeld van de rekenknooppunten. De rekenresources worden vrijgegeven uit uw account. Er worden geen kosten in rekening gebracht voor berekeningen terwijl de berekening is onderbroken. Als de rekenkracht opnieuw wordt gekoppeld aan de rekenknooppunten, worden de kosten voor de berekening hervat.
Wanneer u een toegewezen SQL-pool onderbreekt:
- Reken- en geheugenresources worden geretourneerd naar de pool met beschikbare resources in het datacenter.
- Kosten voor datawarehouse-eenheden zijn nul tijdens de pauze.
- Gegevensopslag wordt niet beïnvloed en uw gegevens blijven intact.
- Alle actieve of in de wachtrij geplaatste bewerkingen worden geannuleerd.
- DMV-tellers worden opnieuw ingesteld.
Wanneer u een toegewezen SQL-pool hervat:
- De toegewezen SQL-pool verkrijgt reken- en geheugenresources voor uw DWU-instelling.
- Rekenkosten voor uw DWU's hervatten.
- Uw gegevens worden beschikbaar.
- Nadat de toegewezen SQL-pool online is, moet u uw workloadquery's opnieuw starten.
Als u uw toegewezen SQL-pool altijd toegankelijk wilt maken, kunt u overwegen deze omlaag te schalen naar de kleinste grootte in plaats van te onderbreken.
Zie de quickstarts voor Azure Portal of PowerShell voor onderbreken en hervatten. U kunt ook de REST API onderbreken of de REST API hervatten.
Transacties stoppen voor onderbreken of schalen
Wij raden u aan toe te staan dat bestaande transacties worden voltooid voordat u een onderbrekings- of schalingsbewerking start.
Wanneer u de toegewezen SQL-pool onderbreekt of schaalt, worden uw query's achter de schermen geannuleerd wanneer u de aanvraag voor onderbreken of schalen start. Het annuleren van een eenvoudige SELECT-query is een snelle bewerking en heeft bijna geen invloed op de tijd die nodig is om uw exemplaar te onderbreken of te schalen. Transactionele query's, die uw gegevens of de structuur van de gegevens wijzigen, kunnen echter mogelijk niet snel stoppen. Transactiequery’s moeten per definitie volledig worden voltooid of hun wijzigingen volledig terugdraaien.
Het kan even lang of langer duren om het werk dat door een transactiequery is voltooid, terug te draaien, als het uitvoeren van de oorspronkelijke opdracht van de query. Als u bijvoorbeeld een query annuleert die rijen verwijdert en al een uur actief is, kan het systeem een uur duren om de verwijderde rijen weer in te voegen. Als u onderbreken of schalen uitvoert terwijl transacties onderweg zijn, kan het lang duren voordat uw pauze of schaalaanpassing is voltooid, omdat onderbreken en schalen moet wachten totdat het terugdraaien is voltooid voordat het kan worden voortgezet.
Zie Transacties gebruiken en Transacties optimaliseren voor meer informatie.
Rekenbeheer automatiseren
Zie Azure Functions gebruiken om rekenresources voor uw toegewezen SQL-pool te beheren om de rekenbewerkingen te automatiseren.
Het kan enkele minuten duren voordat de uitschaal-, pauze- en hervattingsbewerkingen zijn voltooid. Als u automatisch schaalt, onderbroken of hervat, wordt u aangeraden logica te implementeren om ervoor te zorgen dat bepaalde bewerkingen zijn voltooid voordat u doorgaat met een andere actie. Door de status van de toegewezen SQL-pool via verschillende eindpunten te controleren, kunt u automatisering van dergelijke bewerkingen correct implementeren.
Zie de quickstarts voor PowerShell of T-SQL om de status van de toegewezen SQL-pool te controleren. U kunt ook de status van de toegewezen SQL-pool controleren met een REST API.
Machtigingen
Voor het schalen van de toegewezen SQL-pool zijn de machtigingen vereist die worden beschreven in ALTER DATABASE. Onderbreken en hervatten vereist de rol Inzender voor SQL DB, met name Microsoft.Sql/servers/databases/action.