Konwertowanie klas zasobów na grupy obciążeń
Grupy obciążeń zapewniają mechanizm izolowania i przechowywania zasobów systemowych. Ponadto grupy obciążeń umożliwiają ustawianie reguł wykonywania dla uruchomionych w nich żądań. Reguła wykonywania limitu czasu zapytania umożliwia anulowanie zapytań wybiegu bez interwencji użytkownika. W tym artykule wyjaśniono, jak podjąć istniejącą klasę zasobów i utworzyć grupę obciążeń z podobną konfiguracją. Ponadto jest dodawana opcjonalna reguła limitu czasu zapytania.
Uwaga
Zobacz sekcję Mieszanie przypisań klas zasobów z klasyfikatorami w dokumencie pojęcia klasyfikacji obciążenia, aby uzyskać wskazówki dotyczące korzystania z grup obciążeń i klas zasobów w tym samym czasie.
Opis istniejącej konfiguracji klasy zasobów
Grupy obciążeń wymagają parametru o nazwie REQUEST_MIN_RESOURCE_GRANT_PERCENT
, który określa procent ogólnych zasobów systemowych przydzielonych na żądanie. Alokacja zasobów jest wykonywana dla klas zasobów przez przydzielanie miejsc współbieżności. Aby określić wartość, która ma być określona dla REQUEST_MIN_RESOURCE_GRANT_PERCENT
elementu , użyj sys.dm_workload_management_workload_groups_stats widoku DMV. Na przykład poniższe zapytanie zwraca wartość, która może służyć do REQUEST_MIN_RESOURCE_GRANT_PERCENT
utworzenia grupy obciążeń podobnej do staticrc40.
SELECT Request_min_resource_grant_percent = Effective_request_min_resource_grant_percent
FROM sys.dm_workload_management_workload_groups_stats
WHERE name = 'staticrc40'
Uwaga
Grupy obciążeń działają na podstawie procentu ogólnych zasobów systemowych.
Ponieważ grupy obciążeń działają na podstawie procentu ogólnych zasobów systemowych, w miarę skalowania w górę i w dół procent zasobów przydzielonych do statycznych klas zasobów w stosunku do ogólnych zmian zasobów systemowych. Na przykład staticrc40 w dw1000c przydziela 19,2% ogólnych zasobów systemowych. Przy dw2000c przydzielane jest 9,6%. Ten model jest podobny, jeśli chcesz skalować w górę w celu współbieżności w porównaniu z przydzielaniem większej ilości zasobów na żądanie.
Tworzenie grupy obciążeń
Za pomocą znanego REQUEST_MIN_RESOURCE_GRANT_PERCENT
polecenia można utworzyć grupę obciążeń za pomocą składni CREATE WORKLOAD GROUP . Opcjonalnie można określić wartość MIN_PERCENTAGE_RESOURCE
większą niż zero, aby odizolować zasoby dla grupy obciążeń. Ponadto możesz opcjonalnie określić CAP_PERCENTAGE_RESOURCE
mniej niż 100, aby ograniczyć ilość zasobów, z których może korzystać grupa obciążeń.
Użycie mediumrc jako podstawy dla przykładu poniższy kod ustawia MIN_PERCENTAGE_RESOURCE
wartość , aby przeznaczyć 10% zasobów systemowych na wgDataLoads
i gwarantuje, że jedno zapytanie będzie mogło działać przez cały czas. CAP_PERCENTAGE_RESOURCE
Ponadto jest ustawiona na 40% i ogranicza tę grupę obciążeń do czterech współbieżnych żądań. Po ustawieniu parametru QUERY_EXECUTION_TIMEOUT_SEC
na 3600 wszystkie zapytania uruchamiane przez więcej niż 1 godzinę zostaną automatycznie anulowane.
CREATE WORKLOAD GROUP wgDataLoads WITH
( REQUEST_MIN_RESOURCE_GRANT_PERCENT = 10
,MIN_PERCENTAGE_RESOURCE = 10
,CAP_PERCENTAGE_RESOURCE = 40
,QUERY_EXECUTION_TIMEOUT_SEC = 3600)
Tworzenie klasyfikatora
Wcześniej mapowanie zapytań na klasy zasobów zostało wykonane przy użyciu sp_addrolemember. Aby uzyskać te same funkcje i mapować żądania do grup obciążeń, użyj składni CREATE WORKLOAD CLASSIFIER . Użycie sp_addrolemember umożliwia mapowania zasobów tylko na żądanie na podstawie identyfikatora logowania. Klasyfikator udostępnia dodatkowe opcje oprócz logowania, takie jak: — etykieta — sesja — czas poniższy przykład przypisuje zapytania z AdfLogin
identyfikatora logowania, które mają również właściwość OPTION LABEL ustawioną na factloads
grupę wgDataLoads
obciążeń utworzoną powyżej.
CREATE WORKLOAD CLASSIFIER wcDataLoads WITH
( WORKLOAD_GROUP = 'wgDataLoads'
,MEMBERNAME = 'AdfLogin'
,WLM_LABEL = 'factloads')
Testowanie przy użyciu przykładowego zapytania
Poniżej znajduje się przykładowe zapytanie i zapytanie DMV, aby upewnić się, że grupa obciążeń i klasyfikator są poprawnie skonfigurowane.
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