Převod tříd prostředků na skupiny úloh
Skupiny úloh poskytují mechanismus izolace a zahrnutí systémových prostředků. Skupiny úloh navíc umožňují nastavit pravidla spouštění pro požadavky spuštěné v nich. Pravidlo provádění časového limitu dotazu umožňuje zrušení runaway dotazů bez zásahu uživatele. Tento článek vysvětluje, jak použít existující třídu prostředků a vytvořit skupinu úloh s podobnou konfigurací. Kromě toho se přidá volitelné pravidlo časového limitu dotazu.
Poznámka:
Pokyny k používání skupin úloh a tříd prostředků najednou najdete v části Kombinování přiřazení tříd prostředků s klasifikátory v dokumentu o klasifikaci úloh.
Principy stávající konfigurace třídy prostředků
Skupiny úloh vyžadují parametr, REQUEST_MIN_RESOURCE_GRANT_PERCENT
který určuje procento celkových systémových prostředků přidělených na požadavek. Přidělení prostředků se provádí pro třídy prostředků přidělením slotů souběžnosti. Chcete-li určit hodnotu, pro REQUEST_MIN_RESOURCE_GRANT_PERCENT
kterou se má zadat, použijte sys.dm_workload_management_workload_groups_stats zobrazení dynamické správy. Následující dotaz například vrátí hodnotu, kterou lze pro REQUEST_MIN_RESOURCE_GRANT_PERCENT
parametr použít k vytvoření skupiny úloh podobné staticrc40.
SELECT Request_min_resource_grant_percent = Effective_request_min_resource_grant_percent
FROM sys.dm_workload_management_workload_groups_stats
WHERE name = 'staticrc40'
Poznámka:
Skupiny úloh fungují na základě procenta celkových systémových prostředků.
Vzhledem k tomu, že skupiny úloh fungují na základě procenta celkových systémových prostředků při vertikálním navýšení nebo snížení kapacity, procento prostředků přidělených statickým třídám prostředků vzhledem k celkové změně systémových prostředků. Například staticrc40 na DW1000c přidělí 19,2 % celkových systémových prostředků. V DW2000c je přiděleno 9,6 %. Tento model je podobný, pokud chcete vertikálně navýšit kapacitu pro souběžnost a přidělení dalších prostředků na požadavek.
Vytvoření skupiny úloh
Pomocí známé REQUEST_MIN_RESOURCE_GRANT_PERCENT
syntaxe CREATE WORKLOAD GROUP můžete vytvořit skupinu úloh. Volitelně můžete zadat MIN_PERCENTAGE_RESOURCE
, že je větší než nula, abyste mohli izolovat prostředky pro skupinu úloh. Volitelně můžete také zadat CAP_PERCENTAGE_RESOURCE
méně než 100, abyste omezili množství prostředků, které může skupina úloh využívat.
Použití mediumrc jako základu pro příklad nastaví následující kód MIN_PERCENTAGE_RESOURCE
tak, aby vyhradit 10 % systémových prostředků a zaručit, že wgDataLoads
jeden dotaz bude moct spustit celou dobu. Kromě toho CAP_PERCENTAGE_RESOURCE
je nastavená na 40 % a omezuje tuto skupinu úloh na čtyři souběžné požadavky. Nastavením parametru QUERY_EXECUTION_TIMEOUT_SEC
na 3600 se všechny dotazy, které běží déle než 1 hodinu, automaticky zruší.
CREATE WORKLOAD GROUP wgDataLoads WITH
( REQUEST_MIN_RESOURCE_GRANT_PERCENT = 10
,MIN_PERCENTAGE_RESOURCE = 10
,CAP_PERCENTAGE_RESOURCE = 40
,QUERY_EXECUTION_TIMEOUT_SEC = 3600)
Vytvoření klasifikátoru
Dříve bylo mapování dotazů na třídy prostředků provedeno s sp_addrolemember. Pokud chcete dosáhnout stejné funkčnosti a namapovat požadavky na skupiny úloh, použijte syntaxi CREATE WORKLOAD CLASSIFIER . Použití sp_addrolemember vám umožnilo namapovat prostředky pouze na požadavek na základě přihlášení. Klasifikátor poskytuje další možnosti kromě přihlášení, například: - popisek - relace - čas Následující příklad přiřazuje dotazy z AdfLogin
přihlášení, které mají také OPTION LABEL nastavený na factloads
skupinu wgDataLoads
úloh vytvořenou výše.
CREATE WORKLOAD CLASSIFIER wcDataLoads WITH
( WORKLOAD_GROUP = 'wgDataLoads'
,MEMBERNAME = 'AdfLogin'
,WLM_LABEL = 'factloads')
Testování pomocí ukázkového dotazu
Níže je ukázkový dotaz a dotaz DMV, který zajistí správnou konfiguraci skupiny úloh a klasifikátoru.
SELECT SUSER_SNAME() --should be 'AdfLogin'
--change to a valid table AdfLogin has access to
SELECT TOP 10 *
FROM nation
OPTION (label='factloads')
SELECT request_id, [label], classifier_name, group_name, command
FROM sys.dm_pdw_exec_requests
WHERE [label] = 'factloads'
ORDER BY submit_time DESC