Správa výpočetních prostředků pro vyhrazený fond SQL
Tento článek vysvětluje, jak spravovat výpočetní prostředky pro vyhrazený fond SQL (dříve SQL DW) ve službě Azure Synapse Analytics. Náklady můžete snížit pozastavením vyhrazeného fondu SQL nebo škálováním vyhrazeného fondu SQL tak, aby splňoval požadavky na výkon.
Co je správa výpočetních prostředků?
Architektura vyhrazeného fondu SQL odděluje úložiště a výpočetní prostředky, a tím umožňuje jejich nezávislé škálování. V důsledku toho je možné škálovat výpočty tak, aby byly splněny požadavky na výkon nezávisle na úložišti dat. Můžete také pozastavit výpočetní prostředky a obnovit jejich chod.
Přirozeným důsledkem této architektury je, že ceny výpočetních prostředků a úložiště jsou oddělené. Pokud nebudete vyhrazený fond SQL nějakou dobu potřebovat, můžete ušetřit náklady na výpočetní výkon pozastavením výpočetních prostředků.
Škálování výpočetních prostředků
Kapacitu výpočetních prostředků můžete škálovat nebo škálovat zpět úpravou nastavení jednotek datového skladu (DWU) pro vyhrazený fond SQL. Načítání a výkon dotazů se může při přidávání dalších jednotek DWU zvyšovat lineárně.
Postup horizontálního navýšení kapacity najdete v rychlých startech webu Azure Portal, PowerShellu nebo T-SQL. Operace horizontálního navýšení kapacity můžete provádět také pomocí rozhraní REST API.
Pokud chcete provést operaci škálování, vyhrazený fond SQL nejprve ukonče všechny příchozí dotazy a potom vrátí transakce zpět, aby byl zajištěn konzistentní stav. Ke škálování dojde až po odvolání transakcí. V případě operace škálování systém odpojí vrstvu úložiště od výpočetních uzlů, přidá výpočetní uzly a pak znovu připojí vrstvu úložiště k výpočetní vrstvě.
Každý vyhrazený fond SQL je uložený jako 60 distribucí, které se rovnoměrně distribuují do výpočetních uzlů. Přidání dalších výpočetních uzlů zvyšuje výpočetní výkon. S rostoucím počtem výpočetních uzlů se počet distribucí na výpočetní uzel snižuje a poskytuje tak větší výpočetní výkon pro vaše dotazy. Stejně tak snížení jednotek DWU snižuje počet výpočetních uzlů, což snižuje výpočetní prostředky pro dotazy.
Následující tabulka ukazuje, jak se mění počet distribucí na výpočetní uzel při změně jednotek DWU. DW30000c poskytuje 60 výpočetních uzlů a dosahuje mnohem vyššího výkonu dotazů než DW100c.
Jednotky datového skladu | Počet výpočetních uzlů | # of distributions per node |
---|---|---|
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 | 0 |
Vyhledání správné velikosti jednotek datového skladu
Pokud chcete zobrazit výhody horizontálního navýšení kapacity, zejména u větších jednotek datového skladu, chcete použít alespoň sadu dat o velikosti 1 TB. Pokud chcete najít nejlepší počet jednotek DWU pro vyhrazený fond SQL, zkuste vertikálně navýšit nebo snížit kapacitu. Po načtení dat spusťte několik dotazů s různými čísly DWU. Vzhledem k tomu, že škálování je rychlé, můžete vyzkoušet různé úrovně výkonu za hodinu nebo méně.
Doporučení pro vyhledání nejlepšího počtu jednotek DWU:
- Pro vyhrazený fond SQL ve vývoji začněte výběrem menšího počtu jednotek DWU. Dobrým výchozím bodem je DW400c nebo DW200c.
- Monitorujte výkon aplikace a sledujte počet jednotek DWU vybraných v porovnání s výkonem, který sledujete.
- Předpokládejme lineární měřítko a určete, kolik potřebujete zvýšit nebo snížit jednotky DWU.
- Pokračujte v úpravách, dokud nedosáhnete optimální úrovně výkonu pro vaše obchodní požadavky.
Kdy provést horizontální navýšení kapacity
Horizontální navýšení kapacity jednotek DWU má vliv na tyto aspekty výkonu:
- Lineární zlepšení výkonu systému pro prohledávání, agregace a příkazy CTAS
- Zvyšuje počet čtenářů a zapisovačů pro načítání dat.
- Maximální počet souběžných dotazů a slotů souběžnosti
Doporučení pro horizontální navýšení kapacity jednotek DWU:
- Před provedením náročné operace načítání nebo transformace dat vertikálně navyšte kapacitu, aby byla data k dispozici rychleji.
- Během špičky můžete škálovat kapacitu tak, aby vyhovovala většímu počtu souběžných dotazů.
Co když horizontální navýšení kapacity nezlepší výkon?
Přidání jednotek DWU zvyšuje paralelismus. Pokud je práce rovnoměrně rozdělená mezi výpočetní uzly, další paralelismus zlepšuje výkon dotazů. Pokud horizontální navýšení kapacity nezmění váš výkon, existuje několik důvodů, proč k tomu může dojít. Vaše data můžou být v různých distribucích nerovnoměrná nebo dotazy můžou představovat velké množství přesunů dat. Pokud chcete prozkoumat problémy s výkonem dotazů, přečtěte si téma Řešení potíží s výkonem.
Pozastavení a obnovení výpočtů
Pozastavení výpočetních prostředků způsobí odpojení vrstvy úložiště od výpočetních uzlů. Výpočetní prostředky se z vašeho účtu uvolní. Při pozastavení výpočetních prostředků se vám neúčtují poplatky za výpočetní prostředky. Obnovení výpočetních prostředků znovu připojí úložiště k výpočetním uzlům a obnoví poplatky za výpočetní prostředky.
Když pozastavíte vyhrazený fond SQL:
- Výpočetní prostředky a prostředky paměti se vrátí do fondu dostupných prostředků v datacentru.
- Náklady na jednotku datového skladu jsou během pozastavení nulové.
- Úložiště dat není ovlivněné a vaše data zůstanou nedotčená.
- Všechny spuštěné nebo zařazené operace ve frontě se zruší.
- Čítače dynamické správy se resetují.
Při obnovení vyhrazeného fondu SQL:
- Vyhrazený fond SQL získává pro nastavení DWU výpočetní prostředky a prostředky paměti.
- Poplatky za výpočetní prostředky pro obnovení jednotek DWU.
- Vaše data budou k dispozici.
- Po online spuštění vyhrazeného fondu SQL je potřeba restartovat dotazy na úlohy.
Pokud chcete, aby byl vyhrazený fond SQL vždy přístupný, zvažte jeho snížení kapacity na nejmenší velikost, a ne pozastavení.
Postup pozastavení a obnovení najdete v rychlých startech webu Azure Portal nebo PowerShellu. Můžete také použít rozhraní REST API pro pozastavení nebo obnovení rozhraní REST API.
Vypusťte transakce před pozastavením nebo škálováním
Doporučujeme před spuštěním operace pozastavení nebo škálování počkat, až se dokončí existující transakce.
Když pozastavíte nebo škálujete vyhrazený fond SQL, dotazy se na pozadí zruší při zahájení žádosti o pozastavení nebo škálování. Zrušení jednoduchého dotazu SELECT je rychlá operace a nemá téměř žádný vliv na dobu potřebnou k pozastavení nebo škálování instance. Transakční dotazy, které upravují vaše data nebo strukturu dat, se ale nemusí rychle zastavit. Transakční dotazy se podle definice musí dokončit v celém rozsahu, nebo musí vrátit zpět provedené změny.
Vracení dokončené práce transakčního dotazu zpět může trvat stejně dlouho nebo dokonce déle, než původní změna, kterou dotaz prováděl. Pokud například zrušíte dotaz, který odstranil řádky a už hodinu běží, může systém trvat hodinu, než vrátí odstraněné řádky. Pokud během probíhajících transakcí spouštíte pozastavení nebo škálování, může trvat delší dobu, protože pozastavení a škálování musí počkat, než se operace vrácení dokončí, než bude možné pokračovat.
Další informace naleznete v tématu Použití transakcí a optimalizace transakcí.
Automatizace správy výpočetních prostředků
Pokud chcete automatizovat operace správy výpočetních prostředků, přečtěte si téma Použití Azure Functions ke správě výpočetních prostředků pro vyhrazený fond SQL.
Dokončení jednotlivých operací škálování na více instancí, pozastavení a obnovení může trvat několik minut. Pokud provádíte automatické škálování, pozastavení nebo obnovení, doporučujeme implementovat logiku, abyste měli jistotu, že se určité operace dokončí, než budete pokračovat v jiné akci. Kontrola stavu vyhrazeného fondu SQL prostřednictvím různých koncových bodů umožňuje správně implementovat automatizaci těchto operací.
Pokud chcete zkontrolovat stav vyhrazeného fondu SQL, projděte si rychlé starty pro PowerShell nebo T-SQL. Pomocí rozhraní REST API můžete také zkontrolovat stav vyhrazeného fondu SQL.
Oprávnění
Škálování vyhrazeného fondu SQL vyžaduje oprávnění popsaná v příkazu ALTER DATABASE. Pozastavení a obnovení vyžaduje roli Přispěvatel databáze SQL, konkrétně Microsoft.Sql/servers/databases/action.