ALTER WORKLOAD GROUP (Transact-SQL)
Wybieranie produktu
W poniższym wierszu wybierz nazwę produktu, którą cię interesuje, i zostanie wyświetlona tylko informacja o tym produkcie.
* SQL Server *
usługi
Azure Synapse
analizy
SQL Server i SQL Managed Instance
Zmienia konfigurację grupy obciążeń zarządcy zasobów i opcjonalnie przypisuje ją do innej puli zasobów zarządcy zasobów.
Nuta
W przypadku usługi Azure SQL Managed Instance musisz być w kontekście bazy danych master
, aby zmodyfikować konfigurację zarządcy zasobów.
Transact-SQL konwencje składni.
Składnia
ALTER WORKLOAD GROUP { group_name | [default] }
[ WITH
([ IMPORTANCE = { LOW | MEDIUM | HIGH } ]
[ [ , ] REQUEST_MAX_MEMORY_GRANT_PERCENT = value ]
[ [ , ] REQUEST_MAX_CPU_TIME_SEC = value ]
[ [ , ] REQUEST_MEMORY_GRANT_TIMEOUT_SEC = value ]
[ [ , ] MAX_DOP = value ]
[ [ , ] GROUP_MAX_REQUESTS = value ] )
]
[ USING { pool_name | [default] } ]
[ ; ]
Argumenty
group_name | [ustawienie domyślne]
Nazwa istniejącej grupy obciążeń zdefiniowanej przez użytkownika lub wbudowanej grupy obciążeń zarządcy zasobów default
.
default
musi znajdować się w nawiasach kwadratowych ([]
) lub cudzysłowie (""
) w przypadku użycia z ALTER WORKLOAD GROUP
, aby uniknąć konfliktu z DEFAULT
, który jest słowem zarezerwowanym systemu. Aby uzyskać więcej informacji, zobacz Identyfikatory bazy danych.
Wbudowane pule zasobów i grupy obciążeń używają wszystkich małych liter, takich jak default
. Użyj małych liter default
na serwerach korzystających z sortowania z uwzględnieniem wielkości liter. Serwery z sortowaniem bez uwzględniania wielkości liter traktują default
, Default
i DEFAULT
co ta sama wartość.
WAŻNOŚĆ = { NISKA | ŚREDNI | WYSOKI }
Określa względne znaczenie żądania w grupie obciążeń. Wartość domyślna to MEDIUM
.
IMPORTANCE
jest lokalna dla puli zasobów, która zawiera grupę obciążeń. Grupy obciążeń o różnym znaczeniu w tej samej puli zasobów wpływają na siebie, ale nie mają wpływu na grupy obciążeń w innych pulach zasobów.
REQUEST_MAX_MEMORY_GRANT_PERCENT = wartość
Określa maksymalną ilość pamięci obszaru roboczego zapytania, którą pojedyncze żądanie może pobrać z puli.
wartość jest procentem rozmiaru puli zasobów zdefiniowanego przez MAX_MEMORY_PERCENT
. Wartość domyślna to 25.
W programie SQL Server 2017 (14.x) i starszych wartość jest liczbą całkowitą, a dozwolony zakres wynosi od 1 do 100.
Począwszy od programu SQL Server 2019 (15.x), wartość może być ułamkowa przy użyciu typu danych float
. Dozwolony zakres wynosi od 0 do 100.
Ważny
Określona ilość odnosi się tylko do pamięci obszaru roboczego kwerendy uzyskanej za pośrednictwem przydziałów pamięci zapytania.
Nie zaleca się ustawiania wartości zbyt dużej (na przykład większej niż 70), ponieważ serwer może nie być w stanie odłożyć wystarczającej ilości wolnej pamięci dla innych współbieżnych zapytań. Może to prowadzić do przekroczenia limitu czasu przydziału pamięci błędem 8645.
Ustawienie wartości na 0 lub małą wartość może uniemożliwić wykonywanie zapytań z operatorami wymagającymi pamięci obszaru roboczego, takimi jak sort
i hash
, z uruchamiania w grupach obciążeń zdefiniowanych przez użytkownika. Jeśli wymagania dotyczące pamięci zapytania przekraczają limit zdefiniowany przez ten parametr, występuje następujące zachowanie:
- W przypadku grup obciążeń zdefiniowanych przez użytkownika serwer próbuje zmniejszyć stopień równoległości (DOP) żądania (zapytania), dopóki wymaganie pamięci nie spadnie do limitu lub dopóki DOP nie będzie równa 1. Jeśli wymaganie dotyczące pamięci zapytania jest nadal większe niż limit, wystąpi błąd 8657 i zapytanie zakończy się niepowodzeniem.
- W przypadku grup obciążeń
internal
idefault
serwer zezwala na uzyskanie wymaganej pamięci przez zapytanie.
W obu przypadkach może wystąpić błąd 8645, jeśli serwer ma niewystarczającą ilość pamięci fizycznej.
REQUEST_MAX_CPU_TIME_SEC = wartości
Określa maksymalny czas procesora CPU (w sekundach), którego może używać żądanie. wartość musi być 0 lub dodatnią liczbą całkowitą. Ustawieniem domyślnym wartości jest 0, co oznacza nieograniczone.
Domyślnie zarządca zasobów nie uniemożliwia kontynuowanie żądania w przypadku przekroczenia maksymalnego czasu. Zdarzenie jest jednak generowane. Aby uzyskać więcej informacji, zobacz próg procesora CPU przekroczono klasę zdarzeń.
Począwszy od programu SQL Server 2016 (13.x) SP2 i PROGRAMU SQL Server 2017 (14.x) CU3, a także przy użyciu flagi śledzenia 2422, zarządca zasobów przerywa żądanie po przekroczeniu maksymalnego czasu procesora CPU.
REQUEST_MEMORY_GRANT_TIMEOUT_SEC = wartość
Określa maksymalny czas (w sekundach), przez który zapytanie może poczekać na przyznanie pamięci z pamięci obszaru roboczego zapytania, aby stało się dostępne. wartość musi być 0 lub dodatnią liczbą całkowitą. Ustawienie domyślne wartości , 0, używa wewnętrznego obliczenia na podstawie kosztu zapytania w celu określenia maksymalnego czasu.
Zapytanie nie zawsze kończy się niepowodzeniem po osiągnięciu limitu czasu przydziału pamięci. Zapytanie kończy się niepowodzeniem tylko wtedy, gdy jest uruchomionych zbyt wiele współbieżnych zapytań. W przeciwnym razie zapytanie może uzyskać tylko minimalną ilość przydziału pamięci, co spowoduje zmniejszenie wydajności zapytań.
MAX_DOP = wartości
Określa maksymalny stopień równoległości (MAXDOP
) na potrzeby równoległego wykonywania zapytań. Dozwolony zakres wartości wynosi od 0 do 64. Ustawienie domyślne wartości , 0, używa ustawienia globalnego.
Aby uzyskać więcej informacji, zobacz MAXDOP.
GROUP_MAX_REQUESTS = wartości
Określa maksymalną liczbę równoczesnych żądań, które mogą być wykonywane w grupie obciążeń. wartość musi być 0 lub dodatnią liczbą całkowitą. Ustawieniem domyślnym wartości jest 0 i zezwala na nieograniczone żądania. Po osiągnięciu maksymalnej liczby współbieżnych żądań można utworzyć sesję w tej grupie, ale jest umieszczana w stanie oczekiwania, aż liczba współbieżnych żądań spadnie poniżej określonej wartości.
USING { pool_name | [domyślne] }
Kojarzy grupę obciążeń z pulą zasobów zdefiniowaną przez użytkownika zidentyfikowaną przez pool_namelub z pulą zasobów default
. Jeśli nie podano pool_name lub jeśli argument USING
nie zostanie określony, grupa obciążeń jest skojarzona z wbudowaną pulą default
.
default
jest słowem zastrzeżonym, a jeśli określono w USING
, musi być ujęta w nawiasy ([]
) lub cudzysłów (""
).
Wbudowane pule zasobów i grupy obciążeń używają wszystkich małych liter, takich jak default
. Użyj małych liter default
na serwerach korzystających z sortowania z uwzględnieniem wielkości liter. Serwery z sortowaniem bez uwzględniania wielkości liter traktują default
, Default
i DEFAULT
co ta sama wartość.
Uwagi
ALTER WORKLOAD GROUP
jest dozwolona w grupie obciążeń default
, ale nie w grupie internal
.
Zmiany konfiguracji grupy obciążeń nie zostaną wprowadzone dopiero po wykonaniu ALTER RESOURCE GOVERNOR RECONFIGURE
.
Aby uzyskać więcej informacji, zobacz Zarządca zasobów i grupa obciążeń Zarządca zasobów.
MAXDOP
W przypadku danego zapytania obowiązująca MAXDOP
jest określana w następujący sposób:
-
MAXDOP
, ponieważ wskazówka dotycząca zapytania jest honorowana, o ile nie przekracza ustawieniaMAX_DOP
grupy obciążeń. -
MAXDOP
jako wskazówka zapytania zawsze zastępuje konfigurację serweramax degree of parallelism
. Aby uzyskać więcej informacji, zobacz Server configuration: max degree of parallelism. - Grupa obciążeń
MAX_DOP
zastępuje konfigurację serweramax degree of parallelism
i konfigurację o zakresie bazy danychMAXDOP
.
Limit MAXDOP
jest ustawiany na zadanie . Nie jest to żądanie na ani limit zapytania. Podczas wykonywania zapytania równoległego pojedyncze żądanie może zduplikować wiele zadań przypisanych do harmonogramu . Aby uzyskać więcej informacji, zobacz przewodnik dotyczący architektury wątków i zadań .
Gdy zapytanie jest oznaczone jako szeregowe w czasie kompilacji (MAXDOP = 1
), nie może być wykonywane z równoległością w czasie wykonywania niezależnie od ustawienia grupy obciążeń lub konfiguracji serwera. Po określeniu MAXDOP
dla zapytania można go zmniejszyć tylko z powodu użycia pamięci. Ponowna konfiguracja grupy obciążeń nie ma wpływu na zapytania oczekujące w kolejce przyznawania pamięci.
Buforowane plany
Po zmianie planu mającego wpływ na ustawienie, takie jak MAX_DOP
, nowe ustawienie zostanie zastosowane w poprzednio buforowanych planach dopiero po wykonaniu DBCC FREEPROCCACHE (<pool_name>)
, gdzie <pool_name>
jest nazwą puli zasobów zarządcy zasobów używanej przez bieżącą grupę obciążeń.
- W przypadku zmiany
MAX_DOP
na 1 wykonywanieDBCC FREEPROCCACHE
nie jest wymagane, ponieważ plany równoległe mogą być uruchamiane w trybie seryjnym. Jednak taki plan może być mniej wydajny niż plan skompilowany jako plan seryjny. - Jeśli zmiana
MAX_DOP
z zakresu od 1 do 0 lub wartości większej niż 1, wykonywanieDBCC FREEPROCCACHE
nie jest wymagane. Jednak plany szeregowe nie mogą działać równolegle, dlatego wyczyszczenie odpowiedniej pamięci podręcznej umożliwia potencjalnie skompilowanie nowych planów przy użyciu równoległości.
Ostrzeżenie
Wyczyszczenie buforowanych planów z puli zasobów skojarzonej z więcej niż jedną grupą obciążeń wpływa na wszystkie grupy obciążeń przy użyciu puli zasobów zdefiniowanej przez użytkownika zidentyfikowanej przez <pool_name>
.
Tworzenie indeksu
Ze względu na wydajność tworzenie indeksu może używać więcej obszaru roboczego pamięci niż początkowo udzielono. Zarządca zasobów obsługuje tę specjalną obsługę. Jednak początkowe przyznanie i wszelkie dodatkowe przydziały pamięci są ograniczone przez ustawienia grupy obciążeń i puli zasobów.
Ilość pamięci użytej do utworzenia indeksu nieprzygotowanego w tabeli partycjonowanej jest proporcjonalna do liczby zaangażowanych partycji. Jeśli łączna wymagana ilość pamięci przekracza limit dla poszczególnych zapytań wymuszony przez ustawienie grupy obciążeń REQUEST_MAX_MEMORY_GRANT_PERCENT
, tworzenie indeksu może zakończyć się niepowodzeniem. Ponieważ grupa obciążeń default
zezwala na przekroczenie limitu dla poszczególnych zapytań z minimalną wymaganą ilością pamięci do uruchomienia w celu zapewnienia zgodności z poprzednimi wersjami, może być możliwe utworzenie tego samego indeksu przy użyciu grupy obciążeń default
, jeśli pula zasobów default
ma wystarczającą ilość pamięci całkowitej.
Uprawnienia
Wymaga uprawnienia CONTROL SERVER
.
Przykłady
W poniższym przykładzie pokazano, jak zmienić znaczenie żądań w grupie domyślnej z MEDIUM
na LOW
.
ALTER WORKLOAD GROUP [default]
WITH (IMPORTANCE = LOW);
ALTER RESOURCE GOVERNOR RECONFIGURE;
W poniższym przykładzie pokazano, jak przenieść grupę obciążeń z puli, która jest obecnie w puli default
.
ALTER WORKLOAD GROUP adHoc
USING [default];
ALTER RESOURCE GOVERNOR RECONFIGURE;
Powiązana zawartość
* SQL Managed Instance *
Azure Synapse
analizy
SQL Server i SQL Managed Instance
Zmienia konfigurację grupy obciążeń zarządcy zasobów i opcjonalnie przypisuje ją do innej puli zasobów zarządcy zasobów.
Nuta
W przypadku usługi Azure SQL Managed Instance musisz być w kontekście bazy danych master
, aby zmodyfikować konfigurację zarządcy zasobów.
Transact-SQL konwencje składni.
Składnia
ALTER WORKLOAD GROUP { group_name | [default] }
[ WITH
([ IMPORTANCE = { LOW | MEDIUM | HIGH } ]
[ [ , ] REQUEST_MAX_MEMORY_GRANT_PERCENT = value ]
[ [ , ] REQUEST_MAX_CPU_TIME_SEC = value ]
[ [ , ] REQUEST_MEMORY_GRANT_TIMEOUT_SEC = value ]
[ [ , ] MAX_DOP = value ]
[ [ , ] GROUP_MAX_REQUESTS = value ] )
]
[ USING { pool_name | [default] } ]
[ ; ]
Argumenty
group_name | [ustawienie domyślne]
Nazwa istniejącej grupy obciążeń zdefiniowanej przez użytkownika lub wbudowanej grupy obciążeń zarządcy zasobów default
.
default
musi znajdować się w nawiasach kwadratowych ([]
) lub cudzysłowie (""
) w przypadku użycia z ALTER WORKLOAD GROUP
, aby uniknąć konfliktu z DEFAULT
, który jest słowem zarezerwowanym systemu. Aby uzyskać więcej informacji, zobacz Identyfikatory bazy danych.
Wbudowane pule zasobów i grupy obciążeń używają wszystkich małych liter, takich jak default
. Użyj małych liter default
na serwerach korzystających z sortowania z uwzględnieniem wielkości liter. Serwery z sortowaniem bez uwzględniania wielkości liter traktują default
, Default
i DEFAULT
co ta sama wartość.
WAŻNOŚĆ = { NISKA | ŚREDNI | WYSOKI }
Określa względne znaczenie żądania w grupie obciążeń. Wartość domyślna to MEDIUM
.
IMPORTANCE
jest lokalna dla puli zasobów, która zawiera grupę obciążeń. Grupy obciążeń o różnym znaczeniu w tej samej puli zasobów wpływają na siebie, ale nie mają wpływu na grupy obciążeń w innych pulach zasobów.
REQUEST_MAX_MEMORY_GRANT_PERCENT = wartość
Określa maksymalną ilość pamięci obszaru roboczego zapytania, którą pojedyncze żądanie może pobrać z puli.
wartość jest procentem rozmiaru puli zasobów zdefiniowanego przez MAX_MEMORY_PERCENT
. Wartość domyślna to 25.
W programie SQL Server 2017 (14.x) i starszych wartość jest liczbą całkowitą, a dozwolony zakres wynosi od 1 do 100.
Począwszy od programu SQL Server 2019 (15.x), wartość może być ułamkowa przy użyciu typu danych float
. Dozwolony zakres wynosi od 0 do 100.
Ważny
Określona ilość odnosi się tylko do pamięci obszaru roboczego kwerendy uzyskanej za pośrednictwem przydziałów pamięci zapytania.
Nie zaleca się ustawiania wartości zbyt dużej (na przykład większej niż 70), ponieważ serwer może nie być w stanie odłożyć wystarczającej ilości wolnej pamięci dla innych współbieżnych zapytań. Może to prowadzić do przekroczenia limitu czasu przydziału pamięci błędem 8645.
Ustawienie wartości na 0 lub małą wartość może uniemożliwić wykonywanie zapytań z operatorami wymagającymi pamięci obszaru roboczego, takimi jak sort
i hash
, z uruchamiania w grupach obciążeń zdefiniowanych przez użytkownika. Jeśli wymagania dotyczące pamięci zapytania przekraczają limit zdefiniowany przez ten parametr, występuje następujące zachowanie:
- W przypadku grup obciążeń zdefiniowanych przez użytkownika serwer próbuje zmniejszyć stopień równoległości (DOP) żądania (zapytania), dopóki wymaganie pamięci nie spadnie do limitu lub dopóki DOP nie będzie równa 1. Jeśli wymaganie dotyczące pamięci zapytania jest nadal większe niż limit, wystąpi błąd 8657 i zapytanie zakończy się niepowodzeniem.
- W przypadku grup obciążeń
internal
idefault
serwer zezwala na uzyskanie wymaganej pamięci przez zapytanie.
W obu przypadkach może wystąpić błąd 8645, jeśli serwer ma niewystarczającą ilość pamięci fizycznej.
REQUEST_MAX_CPU_TIME_SEC = wartości
Określa maksymalny czas procesora CPU (w sekundach), którego może używać żądanie. wartość musi być 0 lub dodatnią liczbą całkowitą. Ustawieniem domyślnym wartości jest 0, co oznacza nieograniczone.
Domyślnie zarządca zasobów nie uniemożliwia kontynuowanie żądania w przypadku przekroczenia maksymalnego czasu. Zdarzenie jest jednak generowane. Aby uzyskać więcej informacji, zobacz próg procesora CPU przekroczono klasę zdarzeń.
Począwszy od programu SQL Server 2016 (13.x) SP2 i PROGRAMU SQL Server 2017 (14.x) CU3, a także przy użyciu flagi śledzenia 2422, zarządca zasobów przerywa żądanie po przekroczeniu maksymalnego czasu procesora CPU.
REQUEST_MEMORY_GRANT_TIMEOUT_SEC = wartość
Określa maksymalny czas (w sekundach), przez który zapytanie może poczekać na przyznanie pamięci z pamięci obszaru roboczego zapytania, aby stało się dostępne. wartość musi być 0 lub dodatnią liczbą całkowitą. Ustawienie domyślne wartości , 0, używa wewnętrznego obliczenia na podstawie kosztu zapytania w celu określenia maksymalnego czasu.
Zapytanie nie zawsze kończy się niepowodzeniem po osiągnięciu limitu czasu przydziału pamięci. Zapytanie kończy się niepowodzeniem tylko wtedy, gdy jest uruchomionych zbyt wiele współbieżnych zapytań. W przeciwnym razie zapytanie może uzyskać tylko minimalną ilość przydziału pamięci, co spowoduje zmniejszenie wydajności zapytań.
MAX_DOP = wartości
Określa maksymalny stopień równoległości (MAXDOP
) na potrzeby równoległego wykonywania zapytań. Dozwolony zakres wartości wynosi od 0 do 64. Ustawienie domyślne wartości , 0, używa ustawienia globalnego.
Aby uzyskać więcej informacji, zobacz MAXDOP.
GROUP_MAX_REQUESTS = wartości
Określa maksymalną liczbę równoczesnych żądań, które mogą być wykonywane w grupie obciążeń. wartość musi być 0 lub dodatnią liczbą całkowitą. Ustawieniem domyślnym wartości jest 0 i zezwala na nieograniczone żądania. Po osiągnięciu maksymalnej liczby współbieżnych żądań można utworzyć sesję w tej grupie, ale jest umieszczana w stanie oczekiwania, aż liczba współbieżnych żądań spadnie poniżej określonej wartości.
USING { pool_name | [domyślne] }
Kojarzy grupę obciążeń z pulą zasobów zdefiniowaną przez użytkownika zidentyfikowaną przez pool_namelub z pulą zasobów default
. Jeśli nie podano pool_name lub jeśli argument USING
nie zostanie określony, grupa obciążeń jest skojarzona z wbudowaną pulą default
.
default
jest słowem zastrzeżonym, a jeśli określono w USING
, musi być ujęta w nawiasy ([]
) lub cudzysłów (""
).
Wbudowane pule zasobów i grupy obciążeń używają wszystkich małych liter, takich jak default
. Użyj małych liter default
na serwerach korzystających z sortowania z uwzględnieniem wielkości liter. Serwery z sortowaniem bez uwzględniania wielkości liter traktują default
, Default
i DEFAULT
co ta sama wartość.
Uwagi
ALTER WORKLOAD GROUP
jest dozwolona w grupie obciążeń default
, ale nie w grupie internal
.
Zmiany konfiguracji grupy obciążeń nie zostaną wprowadzone dopiero po wykonaniu ALTER RESOURCE GOVERNOR RECONFIGURE
.
Aby uzyskać więcej informacji, zobacz Zarządca zasobów i grupa obciążeń Zarządca zasobów.
MAXDOP
W przypadku danego zapytania obowiązująca MAXDOP
jest określana w następujący sposób:
-
MAXDOP
, ponieważ wskazówka dotycząca zapytania jest honorowana, o ile nie przekracza ustawieniaMAX_DOP
grupy obciążeń. -
MAXDOP
jako wskazówka zapytania zawsze zastępuje konfigurację serweramax degree of parallelism
. Aby uzyskać więcej informacji, zobacz Server configuration: max degree of parallelism. - Grupa obciążeń
MAX_DOP
zastępuje konfigurację serweramax degree of parallelism
i konfigurację o zakresie bazy danychMAXDOP
.
Limit MAXDOP
jest ustawiany na zadanie . Nie jest to żądanie na ani limit zapytania. Podczas wykonywania zapytania równoległego pojedyncze żądanie może zduplikować wiele zadań przypisanych do harmonogramu . Aby uzyskać więcej informacji, zobacz przewodnik dotyczący architektury wątków i zadań .
Gdy zapytanie jest oznaczone jako szeregowe w czasie kompilacji (MAXDOP = 1
), nie może być wykonywane z równoległością w czasie wykonywania niezależnie od ustawienia grupy obciążeń lub konfiguracji serwera. Po określeniu MAXDOP
dla zapytania można go zmniejszyć tylko z powodu użycia pamięci. Ponowna konfiguracja grupy obciążeń nie ma wpływu na zapytania oczekujące w kolejce przyznawania pamięci.
Buforowane plany
Po zmianie planu mającego wpływ na ustawienie, takie jak MAX_DOP
, nowe ustawienie zostanie zastosowane w poprzednio buforowanych planach dopiero po wykonaniu DBCC FREEPROCCACHE (<pool_name>)
, gdzie <pool_name>
jest nazwą puli zasobów zarządcy zasobów używanej przez bieżącą grupę obciążeń.
- W przypadku zmiany
MAX_DOP
na 1 wykonywanieDBCC FREEPROCCACHE
nie jest wymagane, ponieważ plany równoległe mogą być uruchamiane w trybie seryjnym. Jednak taki plan może być mniej wydajny niż plan skompilowany jako plan seryjny. - Jeśli zmiana
MAX_DOP
z zakresu od 1 do 0 lub wartości większej niż 1, wykonywanieDBCC FREEPROCCACHE
nie jest wymagane. Jednak plany szeregowe nie mogą działać równolegle, dlatego wyczyszczenie odpowiedniej pamięci podręcznej umożliwia potencjalnie skompilowanie nowych planów przy użyciu równoległości.
Ostrzeżenie
Wyczyszczenie buforowanych planów z puli zasobów skojarzonej z więcej niż jedną grupą obciążeń wpływa na wszystkie grupy obciążeń przy użyciu puli zasobów zdefiniowanej przez użytkownika zidentyfikowanej przez <pool_name>
.
Tworzenie indeksu
Ze względu na wydajność tworzenie indeksu może używać więcej obszaru roboczego pamięci niż początkowo udzielono. Zarządca zasobów obsługuje tę specjalną obsługę. Jednak początkowe przyznanie i wszelkie dodatkowe przydziały pamięci są ograniczone przez ustawienia grupy obciążeń i puli zasobów.
Ilość pamięci użytej do utworzenia indeksu nieprzygotowanego w tabeli partycjonowanej jest proporcjonalna do liczby zaangażowanych partycji. Jeśli łączna wymagana ilość pamięci przekracza limit dla poszczególnych zapytań wymuszony przez ustawienie grupy obciążeń REQUEST_MAX_MEMORY_GRANT_PERCENT
, tworzenie indeksu może zakończyć się niepowodzeniem. Ponieważ grupa obciążeń default
zezwala na przekroczenie limitu dla poszczególnych zapytań z minimalną wymaganą ilością pamięci do uruchomienia w celu zapewnienia zgodności z poprzednimi wersjami, może być możliwe utworzenie tego samego indeksu przy użyciu grupy obciążeń default
, jeśli pula zasobów default
ma wystarczającą ilość pamięci całkowitej.
Uprawnienia
Wymaga uprawnienia CONTROL SERVER
.
Przykłady
W poniższym przykładzie pokazano, jak zmienić znaczenie żądań w grupie domyślnej z MEDIUM
na LOW
.
ALTER WORKLOAD GROUP [default]
WITH (IMPORTANCE = LOW);
ALTER RESOURCE GOVERNOR RECONFIGURE;
W poniższym przykładzie pokazano, jak przenieść grupę obciążeń z puli, która jest obecnie w puli default
.
ALTER WORKLOAD GROUP adHoc
USING [default];
ALTER RESOURCE GOVERNOR RECONFIGURE;
Powiązana zawartość
usługi
* Azure Synapse
Analiza *
Azure Synapse Analytics
Zmienia istniejącą grupę obciążeń.
Zobacz sekcję ALTER WORKLOAD GROUP
zachowania poniżej, aby uzyskać więcej informacji na temat działania ALTER WORKLOAD GROUP
w systemie z uruchomionymi i w kolejce żądaniami.
Ograniczenia dotyczące CREATE WORKLOAD GROUP również mają zastosowanie do ALTER WORKLOAD GROUP
. Przed zmodyfikowaniem parametrów zapytanie sys.workload_management_workload_groups, aby upewnić się, że wartości znajdują się w dopuszczalnych zakresach.
Składnia
ALTER WORKLOAD GROUP group_name
WITH
([ MIN_PERCENTAGE_RESOURCE = value ]
[ [ , ] CAP_PERCENTAGE_RESOURCE = value ]
[ [ , ] REQUEST_MIN_RESOURCE_GRANT_PERCENT = value ]
[ [ , ] REQUEST_MAX_RESOURCE_GRANT_PERCENT = value ]
[ [ , ] IMPORTANCE = { LOW | BELOW_NORMAL | NORMAL | ABOVE_NORMAL | HIGH }]
[ [ , ] QUERY_EXECUTION_TIMEOUT_SEC = value ] )
[ ; ]
Argumenty
group_name
To nazwa istniejącej grupy obciążeń zdefiniowanej przez użytkownika, która jest zmieniana. group_name nie można zmienić.
MIN_PERCENTAGE_RESOURCE = wartość
wartość jest liczbą całkowitą z zakresu od 0 do 100. Podczas zmiany MIN_PERCENTAGE_RESOURCE suma MIN_PERCENTAGE_RESOURCE we wszystkich grupach obciążeń nie może przekroczyć 100. Zmiana MIN_PERCENTAGE_RESOURCE wymaga ukończenia wszystkich uruchomionych zapytań w grupie obciążeń przed ukończeniem polecenia. Aby uzyskać więcej informacji, zobacz sekcję ALTER WORKLOAD GROUP zachowanie w tym artykule.
CAP_PERCENTAGE_RESOURCE = wartości
wartość jest zakresem liczby całkowitej z zakresu od 1 do 100. Wartość CAP_PERCENTAGE_RESOURCE musi być większa niż MIN_PERCENTAGE_RESOURCE. Zmiana CAP_PERCENTAGE_RESOURCE wymaga ukończenia wszystkich uruchomionych zapytań w grupie obciążeń przed ukończeniem polecenia. Aby uzyskać więcej informacji, zobacz sekcję ALTER WORKLOAD GROUP zachowanie w tym artykule.
REQUEST_MIN_RESOURCE_GRANT_PERCENT = wartość
wartość to liczba dziesiętna z zakresem od 0,75 do 100,00. Wartość REQUEST_MIN_RESOURCE_GRANT_PERCENT musi być czynnikiem MIN_PERCENTAGE_RESOURCE i być mniejsza niż CAP_PERCENTAGE_RESOURCE.
REQUEST_MAX_RESOURCE_GRANT_PERCENT = wartość
wartość jest dziesiętna i musi być większa niż REQUEST_MIN_RESOURCE_GRANT_PERCENT.
WAŻNOŚĆ = { NISKA | BELOW_NORMAL | NORMALNY | ABOVE_NORMAL | WYSOKI }
Zmienia domyślną ważność żądania dla grupy obciążeń.
QUERY_EXECUTION_TIMEOUT_SEC = wartość
Zmienia maksymalny czas (w sekundach), który może zostać wykonany przez zapytanie przed jego anulowaniem. Wartość musi być 0 lub dodatnią liczbą całkowitą. Ustawieniem domyślnym wartości jest 0, co oznacza nieograniczone.
Uprawnienia
Wymaga uprawnień CONTROL DATABASE.
Przykład
Poniższy przykład sprawdza wartości w widoku wykazu dla grupy obciążeń o nazwie wgDataLoadsi zmienia wartości.
SELECT *
FROM sys.workload_management_workload_groups
WHERE [name] = 'wgDataLoads'
ALTER WORKLOAD GROUP wgDataLoads WITH
( MIN_PERCENTAGE_RESOURCE = 40
, CAP_PERCENTAGE_RESOURCE = 80
, REQUEST_MIN_RESOURCE_GRANT_PERCENT = 10 )
ALTER WORKLOAD GROUP behavior (ZMIENIANIE ZACHOWANIA GRUPY OBCIĄŻEŃ)
W dowolnym momencie w systemie istnieją trzy typy żądań:
- Żądania, które nie zostały jeszcze sklasyfikowane.
- Żądania sklasyfikowane i oczekujące dla blokad obiektów lub zasobów systemowych.
- Żądania sklasyfikowane i uruchomione.
Na podstawie właściwości zmienianej grupy obciążeń czas trwania ustawień będzie się różnić.
Ważność lub query_execution_timeout
Aby uzyskać znaczenie i query_execution_timeout właściwości, żądania nieklasyfikowane pobierają nowe wartości konfiguracji. Oczekujące i uruchomione żądania są wykonywane przy użyciu starej konfiguracji. Żądanie ALTER WORKLOAD GROUP
jest wykonywane natychmiast, niezależnie od tego, czy w grupie obciążeń są uruchomione zapytania.
REQUEST_MIN_RESOURCE_GRANT_PERCENT lub REQUEST_MAX_RESOURCE_GRANT_PERCENT
W przypadku REQUEST_MIN_RESOURCE_GRANT_PERCENT i REQUEST_MAX_RESOURCE_GRANT_PERCENT uruchamianie żądań wykonywanych przy użyciu starej konfiguracji. Żądania oczekujące i żądania nieklasyfikowane pobierają nowe wartości konfiguracji. Żądanie ALTER WORKLOAD GROUP
jest wykonywane natychmiast, niezależnie od tego, czy w grupie obciążeń są uruchomione zapytania.
MIN_PERCENTAGE_RESOURCE lub CAP_PERCENTAGE_RESOURCE
W przypadku MIN_PERCENTAGE_RESOURCE i CAP_PERCENTAGE_RESOURCE uruchamianie żądań wykonywanych przy użyciu starej konfiguracji. Żądania oczekujące i żądania nieklasyfikowane pobierają nowe wartości konfiguracji.
Zmiana MIN_PERCENTAGE_RESOURCE i CAP_PERCENTAGE_RESOURCE wymaga opróżnienia uruchomionych żądań w grupie obciążeń, która jest zmieniana. Po zmniejszeniu MIN_PERCENTAGE_RESOURCE zwalniane zasoby są zwracane do puli udziałów, co umożliwia korzystanie z żądań z innych grup obciążeń. Z drugiej strony zwiększenie MIN_PERCENTAGE_RESOURCE będzie czekać, aż żądania będą korzystać tylko z wymaganych zasobów z puli udostępnionej do ukończenia. Operacja ALTER WORKLOAD GROUP
będzie miała priorytet dostępu do zasobów udostępnionych za pośrednictwem innych żądań oczekujących na wykonanie w puli udostępnionej. Jeśli suma MIN_PERCENTAGE_RESOURCE przekracza 100%, żądanie ALTER WORKLOAD GROUP
zakończy się niepowodzeniem natychmiast.
Zachowanie blokujące
Zmiana grupy obciążeń wymaga globalnej blokady we wszystkich grupach obciążeń. Żądanie zmiany grupy obciążenia spowoduje utworzenie lub usunięcie żądań grupy obciążeń w kolejce za już przesłaną. Jeśli partia instrukcji alter jest przesyłana jednocześnie, są one przetwarzane w kolejności, w której są przesyłane.