Poznámka
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
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ího výkonu můžete zvětšit nebo zmenšit úpravou nastavení jednotek datového skladu (DWU) pro vyhrazený SQL fond. Načítání a výkon dotazů se může při přidávání dalších jednotek DWU zvyšovat lineárně.
Pokyny pro škálování najdete v rychlých průvodcích pro Azure portal, PowerShell nebo T-SQL. Operace škálování 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. Scaling only occurs once the transaction rollback is complete. 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 | 1 |
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. To find the best number of DWUs for your dedicated SQL pool, try scaling up and down. 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 určení nejlepšího počtu DWU:
- For a dedicated SQL pool in development, begin by selecting a smaller number of DWUs. 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 rozšířit kapacitu
Horizontální navýšení kapacity jednotek DWU má vliv na tyto aspekty výkonu:
- Linearly improves performance of the system for scans, aggregations, and CTAS statements
- Zvyšuje počet čtenářů a zapisovačů pro načítání dat.
- Maximální počet souběžných dotazů a slotů souběžnosti
Recommendations for when to scale out DWUs:
- 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ž rozšíření systému nezlepší jeho výkon?
Adding DWUs increases the parallelism. 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í. You're not charged for compute while compute is paused. 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.
When you pause a dedicated SQL pool:
- 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á.
- All running or queued operations are canceled.
- DMV counters are reset.
When you resume a dedicated SQL pool:
- The dedicated SQL pool acquires compute and memory resources for your DWUs setting.
- Compute charges for your DWUs resume.
- Vaše data budou k dispozici.
- After the dedicated SQL pool is online, you need to restart your workload queries.
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.
Vyprázdně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. If you run pause or scaling while transactions are in flight, your pause or scaling might seem to take a long time because pausing and scaling has to wait for the rollback to complete before it can proceed.
Další informace naleznete v tématu Použití transakcí a optimalizace transakcí.
Automatizace správy výpočetních prostředků
Chcete-li automatizovat operace správy výpočetních prostředků, viz Použití Azure Functions ke správě výpočetních prostředků pro váš vyhrazený SQL fond.
Dokončení jednotlivých operací škálování, 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.