How to: Use Resource Governor to Limit CPU Usage by Backup Compression (Transact-SQL)
Domyślnie wykonywanie kopii zapasowej przy użyciu kompresji znacznie zwiększa obciążenia PROCESORA, a dodatkowe PROCESORA przez proces kompresji może pogorszyć równoczesne wykonywanie operacji.W związku z tym zachodzi potrzeba utworzenia kopia zapasowa w sesja, których użycie PROCESORA jest ograniczona przez skompresowane priorytetem niskim Governor zasób , gdy wystąpi Rywalizacja o PROCESOR.W tym temacie przedstawiono klasyfikujący sesje określonego scenariusza SQL Server Użytkownik, mapując je do regulator zasób grupa obciążenia, ogranicza użycie PROCESORA w takich przypadkach.
Important Note: |
---|
W danym scenariuszu zasób Governor klasyfikacji sesja może być oparta na nazwę użytkownika, nazwy aplikacji i wszelkie inne elementy, które można odróżnić połączenie.Aby uzyskać więcej informacji zobacz Uwagi dotyczące pisania funkcja klasyfikatora i Resource Governor Workload Management Scenarios. |
Ten temat zawiera następujący zestaw scenariuszy, które są prezentowane w kolejności:
Definiowanie identyfikator logowania i użytkownika dla operacji niski priorytet
Konfigurowanie zasób Governor do Ogranicz użycie procesora CPU
Weryfikowanie klasyfikacji w bieżącej sesja (języka Transact-SQL)
Kompresowanie kopii zapasowych, przy użyciu sesja z ograniczeniami PROCESORA
Definiowanie identyfikator logowania i użytkownika dla operacji niski priorytet
Scenariusz, w tym temacie wymaga niskim priorytecie SQL Server Identyfikator logowania i użytkownika. Nazwa użytkownika będzie używana do klasyfikowania sesji uruchomionych w identyfikator logowania i przesłać je do grupy obciążenia zasób Governor, która ogranicza użycie PROCESORA.
W poniższej procedurze opisano kroki konfigurowania logowania i użytkownika w tym celu, po której następuje Transact-SQLprzykład "przykład A: Definiowanie identyfikator logowania i użytkownika (języka Transact-SQL). „
Aby skonfigurować użytkownika logowania i bazy danych do klasyfikowania sesji
Utwórz SQL Server Logowanie do tworzenia niskim priorytecie skompresowane kopii zapasowych.
Aby utworzyć nazwę logowania
Opcjonalnie można przyznać VIEW SERVER STATE tego identyfikatora logowania.
Aby uzyskać więcej informacji zobaczPermissions of Fixed Server Roles (Database Engine).
Utwórz SQL Server Użytkownik, dla tego identyfikatora logowania.
Aby utworzyć użytkownika
Umożliwienie sesji tego identyfikatora logowania i użytkownikowi tworzyć kopię zapasową biorąc pod uwagę bazy danych, Dodaj użytkownika do rola bazy danych db_backupoperator tej bazy danych.Wykonaj tę czynność dla każdej bazy danych, który wykona kopię zapasową tego użytkownika.Opcjonalnie można dodać użytkownika do innych ról stałej bazy danych.
Aby dodać użytkownika do stała rola bazy danych
Aby uzyskać więcej informacji zobaczPermissions of Fixed Database Roles (Database Engine).
on error Definiowanie identyfikator logowania i użytkownika (języka Transact-SQL)
W poniższym przykładzie ma znaczenie tylko wtedy, gdy tworzysz nowy SQL Server Identyfikator logowania i użytkownika o niskim priorytecie kopii zapasowych. Można także korzystania z istniejącego identyfikatora logowania i użytkownika, jeśli występuje jeden z odpowiednich.
Important Note: |
---|
W poniższym przykładzie użyto nazwę logowania użytkownika i próbki, nazwa_domeny\MAX_CPU.Zastąpić je z nazwami SQL Server Identyfikator logowania i użytkownika, który ma być używany podczas tworzenia swojego niskim priorytecie kompresowane kopii zapasowych. |
W tym przykładzie tworzony logowania dla nazwa_domeny\MAX_CPU Windows konta, a następnie udziela VIEW SERVER STATE uprawnień do logowania się.To uprawnienie umożliwia sprawdzenie klasyfikacji zasób Governor sesji logowania.W przykładzie następnie tworzy dla użytkownika nazwa_domeny\MAX_CPU i dodaje go do roli db_backupoperator stałej bazy danych dla AdventureWorks Przykładowa baza danych. Ta nazwa użytkownika będą używane przez funkcja zasób Governor klasyfikatora.
-- Create a SQL Server login for low-priority operations
USE master;
CREATE LOGIN [domain_name\MAX_CPU] FROM WINDOWS;
GRANT VIEW SERVER STATE TO [domain_name\MAX_CPU];
GO
-- Create a SQL Server user in AdventureWorks for this login
USE AdventureWorks;
CREATE USER [domain_name\MAX_CPU] FOR LOGIN [domain_name\MAX_CPU];
EXEC sp_addrolemember 'db_backupoperator', 'domain_name\MAX_CPU';
GO
[Do góry]
Konfigurowanie zasób Governor do Ogranicz użycie procesora CPU
Uwaga
Należy upewnić się, że zasób Governor jest włączona.Aby uzyskać więcej informacji zobaczHow to: Enable or Disable Resource Governor (SQL Server Management Studio).
W tym scenariuszu zasób Governor konfiguracja obejmuje następujące podstawowe kroki:
Utwórz i skonfiguruj zasób Governor puli zasób, które ogranicza maksymalną Średnia przepustowość PROCESORA, jaką będzie miał na żądania w puli zasób po wystąpieniu Rywalizacja o PROCESOR.
Utwórz i skonfiguruj zasób Governor grupa obciążenia używające tej puli.
Utwórz Funkcja Klasyfikator, która jest zdefiniowana przez użytkownika funkcją (UDF) którego wartości zwracane są używane przez zasób Governor klasyfikacji sesji, dzięki czemu kierowane do odpowiedniego grupa obciążenia.
Zarejestruj zasób Governor z funkcja klasyfikatora.
Wprowadź zmiany w konfiguracja zasób Governor w pamięci.
Uwaga
Aby uzyskać informacje dotyczące zasób Governor pule zasób, grup obciążenia pracą i klasyfikacji zobacz Resource Governor Concepts.
The Transact-SQL statements for these steps are described in the procedure, "To configure zasób Governor for limiting CPU usage," which is followed by a Transact-SQL example of the procedure.
Aby skonfigurować zasób Governor (SQL Server Management Studio)
How to: Configure Resource Governor Using a Template (SQL Server Management Studio)
How to: Create a Resource Pool (SQL Server Management Studio)
How to: Create a Workload Group (SQL Server Management Studio)
Aby skonfigurować zasób Governor ograniczania użycia PROCESORA (języka Transact-SQL)
Problem TWORZENIE PULI zasób instrukcja tworzenia puli zasób.W przykładzie do wykonania tej procedury używa następującej składni:
CREATE RESOURCE POOL pool_name Z (MAX_CPU_PERCENT = value );
Value jest liczbą całkowitą z zakresu od 1 do 100 wskazujący procent maksymalna przepustowość PROCESORA, średnia.Odpowiednią wartość zależy od danego środowiska.W celu ich ilustracji, w przykładzie, w tym temacie użyto 20 % procent (MAX_CPU_PERCENT = 20.)
Problem TWORZENIE grupa obciążenia instrukcja, aby utworzyć grupę obciążenia dla operacji niskim priorytecie użycie PROCESORA, którego chcesz regulować.W przykładzie do wykonania tej procedury używa następującej składni:
TWORZENIE grupa obciążenia group_name ZA POMOCĄ pool_name;
Problem TWORZENIE funkcja instrukcję, aby utworzyć funkcja klasyfikatora, która mapuje grupy obciążenia, utworzony w kroku poprzednim użytkownikowi logowanie niskim priorytecie.W przykładzie do wykonania tej procedury używa następującej składni:
TWORZENIE funkcja [schema_name.function_name() Zwraca nazwa_systemu
Z SCHEMABINDING
JAK
ROZPOCZĘCIE
DECLARE @ workload_group_name AS sysname
IF (SUSER_NAME() = "user_of_low_priority_login')
zestaw @ workload_group_name = "workload_group_name"
@ Workload_group_name zwrotu
Projekt można skojarzyć z więcej niż jedno rozwiązanie.
Aby uzyskać informacje o składnikach tej instrukcja CREATE funkcja zobacz:
-
Important Note: SUSER_NAME jest tylko jedno z kilku funkcja systemowych, które mogą być używane w funkcja klasyfikatora.Aby uzyskać więcej informacji zobaczUwagi dotyczące pisania funkcja klasyfikatora.
Problem ZMIENIA REGULATOR zasób instrukcja zarejestrować zasób Governor z funkcja klasyfikatora.W przykładzie do wykonania tej procedury używa następującej składni:
REGULATOR zasób ZMIANY Z (CLASSIFIER_FUNCTION = schema_name. function_name);
Wydaj drugiej instrukcja ALTER regulator zasób, aby zastosować zmiany w konfiguracja Resource Governor w pamięci, w następujący sposób:
ALTER RESOURCE GOVERNOR RECONFIGURE;
Retrieving the file id of a specified file Konfigurowanie zasób Governor (języka Transact-SQL)
W poniższym przykładzie wykonuje następujące czynności w ramach pojedynczej transakcji:
Tworzy pMAX_CPU_PERCENT_20 Pula zasób.
Tworzy gMAX_CPU_PERCENT_20 Grupa obciążenia pracą.
Tworzy rgclassifier_MAX_CPU() Funkcja klasyfikatora, którego używa nazwy użytkownika utworzonego w poprzednim przykładzie.
Rejestruje funkcja klasyfikatora z zasób Governor.
Po zatwierdzeniem transakcji, w przykładzie ma zastosowanie w instrukcji ALTER GROUP obciążenie PRACĄ lub ALTER POOL zasób wymagane zmiany w konfiguracja.
Important Note: |
---|
W poniższym przykładzie użyto nazwy użytkownika próbki SQL Serverużytkownika utworzone w "przykład A: Definiowanie identyfikator logowania i użytkownika (języka Transact-SQL) "nazwa_domeny\MAX_CPU.Zastąp to nazwa użytkownika identyfikator logowania, który ma być używany do tworzenia kopii zapasowych skompresowanych niskim priorytecie. |
-- Configure Resource Governor.
BEGIN TRAN
USE master;
-- Create a resource pool that sets the MAX_CPU_PERCENT to 20%.
CREATE RESOURCE POOL pMAX_CPU_PERCENT_20
WITH
(MAX_CPU_PERCENT = 20);
GO
-- Create a workload group to use this pool.
CREATE WORKLOAD GROUP gMAX_CPU_PERCENT_20
USING pMAX_CPU_PERCENT_20;
GO
-- Create a classification function.
-- Note that any request that does not get classified goes into
-- the 'Default' group.
CREATE FUNCTION dbo.rgclassifier_MAX_CPU() RETURNS sysname
WITH SCHEMABINDING
AS
BEGIN
DECLARE @workload_group_name AS sysname
IF (SUSER_NAME() = 'domain_name\MAX_CPU')
SET @workload_group_name = 'gMAX_CPU_PERCENT_20'
RETURN @workload_group_name
END;
GO
-- Register the classifier function with Resource Governor.
ALTER RESOURCE GOVERNOR WITH (CLASSIFIER_FUNCTION= dbo.rgclassifier_MAX_CPU);
COMMIT TRAN;
GO
-- Start Resource Governor
ALTER RESOURCE GOVERNOR RECONFIGURE;
GO
[Do góry]
Weryfikowanie klasyfikacji w bieżącej sesja (języka Transact-SQL)
Opcjonalnie można zalogować się jako użytkownik, który określono w funkcja Klasyfikator i sprawdź klasyfikacji sesja, wykonując następujące czynności WYBIERZ OPCJĘ instrukcja w Eksploratorze obiektów:
USE master;
SELECT sess.session_id, sess.login_name, sess.group_id, grps.name
FROM sys.dm_exec_sessions AS sess
JOIN sys.dm_resource_governor_workload_groups AS grps
ON sess.group_id = grps.group_id
WHERE session_id > 50;
GO
W okienku wyniki Nazwa kolumna powinien zawierać jedną lub wiele sesji dla nazwy grupy obciążenia, określoną w oknie funkcja klasyfikatora.
Uwaga
Informacji na temat widoków dynamicznego zarządzania wywoływany przez to instrukcja SELECT, zobacz sys.dm_exec_sessions (Transact-SQL) i sys.dm_resource_governor_workload_groups (Transact-SQL).
[Do góry]
Kompresowanie kopii zapasowych, przy użyciu sesja z ograniczeniami PROCESORA
Do tworzenia, skompresowane kopia zapasowa w sesja z ograniczoną maksymalną procesora CPU, zaloguj się jako użytkownik określony w funkcja klasyfikatora.Polecenia kopia zapasowa albo określić WITH COMPRESSION)Transact-SQL) lub wybierz Kompresowanie kopia zapasowa (SQL Server Management Studio).
Aby utworzyć kopię zapasową bazy danych skompresowanych
Przykład C: Tworzenie skompresowane kopia zapasowa (języka Transact-SQL)
Poniżej WYKONYWANIE KOPII ZAPASOWEJ przykład tworzy skompresowany pełna kopia zapasowa AdventureWorks Baza danych w plik kopii zapasowej nowo sformatowanym Z:\SQLServerBackups\AdvWorksData.bak.
--Run backup statement in the gBackup session.
BACKUP DATABASE AdventureWorks TO DISK='Z:\SQLServerBackups\AdvWorksData.bak'
WITH
FORMAT,
MEDIADESCRIPTION='AdventureWorks Compressed Data Backups'
DESCRIPTION='First database backup on AdventureWorks Compressed Data Backups media set'
COMPRESSION;
GO
[Do góry]
See Also