Řízení prostředků SQL Serveru
Zatímco některé SQL Servery nebo spravované instance Azure SQL jsou vyhrazené pro databáze jedné aplikace, konfigurace často zobrazená v důležitých aplikacích, mnoho serverů podporuje databáze pro více aplikací s různými požadavky na výkon a cykly úloh ve špičce. Vyrovnávání těchto rozdílových požadavků může být pro správce náročné. Jedním z efektivních způsobů správy prostředků serveru je použití správce prostředků, který je zaveden v SYSTÉMU SQL Server 2008.
Správce prostředků je funkce ve spravovaných instancích SQL Serveru a Azure SQL, která umožňuje podrobnou kontrolu nad procesorem, fyzickými vstupně-výstupními a paměťovým prostředky pro příchozí požadavky aplikací. Pokud je tato možnost povolená na úrovni instance, správce prostředků používá funkci klasifikátoru k definování způsobu zpracování připojení, rozdělení relací do skupin úloh. Každá skupina úloh je nakonfigurovaná tak, aby používala konkrétní fond systémových prostředků.
Fondy zdrojů
Fond zdrojů představuje fyzické prostředky dostupné na serveru. SQL Server má vždy dva fondy: výchozí a interní, i když správce prostředků není povolený. Interní fond je vyhrazený pro důležité funkce SQL Serveru a nedá se omezit. Výchozí fond spolu s libovolnými fondy zdrojů, které explicitně definujete, je možné nakonfigurovat s omezeními prostředků, které můžou používat. Pro každý neinternalní fond můžete zadat následující omezení:
- Minimální/maximální procento procesoru
- Limit procenta procesoru
- Minimální/maximální procento paměti
- Spřažení uzlů NUMA
- Minimální/maximální počet vstupně-výstupních operací za sekundu na svazek
Poznámka:
Změny fondu zdrojů mají vliv jenom na nové relace, ne na probíhající relace. Úprava fondu proto neomezí prostředky dlouhotrvajícího procesu. Výjimkou tohoto pravidla jsou externí fondy používané se službou SQL Server Machine Learning Services, které můžou být omezeny změnou fondu i pro probíhající relace.
Všechna nastavení fondu prostředků s výjimkou minimálního a maximálního procenta procesoru představují pevné limity, které nelze překročit. Minimální/maximální procento procesoru platí pouze v případech, kdy dojde k kolizí procesoru. Pokud například nastavíte maximálně 70%, může úloha použít až 100% dostupných cyklů procesoru, pokud nedojde k kolizím. Pokud jsou však spuštěny jiné úlohy, bude úloha omezena na 70%.
Skupina úloh
Skupina úloh slouží jako kontejner pro požadavky relace klasifikované funkcí klasifikátoru. Podobně jako fondy zdrojů existují dvě předdefinované skupiny: výchozí a interní. Každá skupina úloh je přidružená k jednomu fondu zdrojů, ale fond zdrojů může hostovat více skupin úloh. Ve výchozím nastavení jsou všechna připojení směrována do výchozí skupiny úloh, pokud je funkce klasifikátoru nepřiřazuje ke skupině definované uživatelem. Výchozí skupina úloh využívá prostředky přidělené výchozímu fondu zdrojů.
Klasifikátor – funkce
Funkce klasifikátoru se spustí v době, kdy se naváže připojení k instanci SQL Serveru a klasifikuje každé připojení do dané skupiny úloh. Pokud funkce vrátí hodnotu NULL, výchozí hodnotu nebo název neexistující skupiny úloh, relace se přenese do výchozí skupiny úloh. Vzhledem k tomu, že klasifikátor běží při každém připojení, měl by být testován z hlediska efektivity. Následující obrázek znázorňuje ukázkovou funkci klasifikátoru, která klasifikuje uživatele na základě svého uživatelského jména.
CREATE FUNCTION dbo.RGClassifier()
RETURNS SYSNAME
WITH SCHEMABINDING
AS
BEGIN
DECLARE @WorkloadGroup AS SYSNAME
IF(SUSER_NAME() = 'ReportUser')
SET @WorkloadGroup = 'ReportServerGroup'
ELSE IF (SUSER_NAME() = 'PrimaryUser')
SET @WorkloadGroup = 'PrimaryServerGroup'
ELSE
SET @WorkloadGroup = 'default'
RETURN @WorkloadGroup
END
Složitost definice funkce zobrazené v příkladu můžete zvýšit, ale měli byste ověřit, že složitější funkce nemá vliv na výkon uživatele.
Případy použití správce prostředků
Správce prostředků se používá především ve víceklientských scénářích, kdy skupina databází sdílí jednu instanci SQL Serveru a výkon musí být konzistentní pro všechny uživatele serveru. Správce prostředků můžete také použít k omezení prostředků používaných operacemi údržby, jako jsou kontroly konzistence a opětovné sestavení indexu, a pokusit se zaručit dostatečné prostředky pro dotazy uživatelů během časových období údržby.