Jak Służy do ograniczania wykorzystania Procesora przez kompresję kopii zapasowej (Transact-SQL) Resource Governor

Domyślnie wykonywanie kopii zapasowych przy użyciu kompresji znacznie zwiększa obciążenie Procesora i dodatkowe Procesora przez proces kompresji może pogorszyć operacji jednoczesnych.Dlatego warto utworzyć kopia zapasowa w sesja, którego użycie Procesora jest ograniczona niskim priorytecie skompresowane Resource Governor po wystąpieniu Rywalizacja o Procesor.W tym temacie przedstawiono klasyfikujący sesje określonego scenariusza SQL Server użytkownika, mapując je do grupa obciążenia Resource Governor, która ogranicza użycie Procesora w takich przypadkach.

Ważna informacjaWażne:

W danym scenariuszu Resource Governor klasyfikacji sesja może być oparta na nazwę użytkownika, nazwę aplikacji lub jakichkolwiek innych czynności można odróżnić połączenie.Aby uzyskać więcej informacji, zobacz Zagadnienia dotyczące pisania funkcji klasyfikatora i Scenariusze zarządzania obciążenia Resource Governor.

Ten temat zawiera następujący zestaw scenariuszy, które są prezentowane w kolejności:

  1. Ustawianie logowania i użytkownika dla operacji o niskim priorytecie

  2. Konfigurowanie Resource Governor ograniczyć użycie Procesora

  3. Weryfikowanie klasyfikacji bieżącej sesji (Transact-SQL)

  4. Kompresowanie kopii zapasowych przy użyciu sesji z ograniczoną Procesora

Ustawianie logowania i użytkownika dla operacji o niskim priorytecie

Scenariusz, w tym temacie wymaga niskim priorytecie SQL Server logowania i użytkownika.Nazwa użytkownika będzie używana do klasyfikowania sesji uruchomionych w logowania i trasa je do grupa obciążenia Resource Governor, która ogranicza użycie Procesora.

W poniższej procedurze opisano kroki konfigurowania logowania i użytkownika w tym celu następuje Transact-SQL przykład, "przykład A: Ustawianie logowania i użytkownik (Transact-SQL)."

Aby zestaw up klasyfikujący sesji logowania i bazy danych użytkownika

  1. Tworzenie SQL Server logowania do tworzenia niskim priorytecie skompresowanej kopii zapasowych.

    Aby utworzyć identyfikator logowania

  2. Opcjonalnie udzielić tego identyfikatora logowania WYŚWIETL stan serwera.

    Aby uzyskać więcej informacji, zobacz Uprawnienia ról serwera stałych (aparat bazy danych).

  3. Tworzenie SQL Server użytkownika do logowania.

    Aby utworzyć użytkownika

  4. Aby włączyć sesji logowania i użytkownikowi tworzyć kopię zapasową podanej bazy danych, dodawanie użytkowników do db_backupoperator rola bazy danych tej bazy danych.W tym dla każdej bazy danych, które użytkownik będzie tworzyć kopię zapasową.Opcjonalnie można dodać użytkownika do innych ról stałej bazy danych.

    Aby dodać użytkownika dostała rola bazy danych

    Aby uzyskać więcej informacji, zobacz Uprawnienia ról stałej bazy danych (aparat bazy danych).

Przykład A: Ustawianie logowania i użytkownik (Transact-SQL)

Poniższy przykład jest istotne tylko wtedy, gdy użytkownik chce utworzyć nową SQL Server logowania i użytkownika o niskim priorytecie kopii zapasowych.Alternatywnie można użyć istniejącego identyfikatora logowania i użytkownika, jeżeli istnieje odpowiednie.

Ważna informacjaWażne:

W poniższym przykładzie użyto przykładowej logowania oraz nazwę użytkownika, nazwa_domeny\MAX_CPU.Zastąpić je z nazwami SQL Server logowania i użytkownika, który ma być używany podczas tworzenia tego niskim priorytecie skompresowanej kopii zapasowych.

W tym przykładzie tworzony logowania dla nazwa_domeny\MAX_CPU Windows konto i następnie udziela stan WIDOKU serwera uprawnień do logowania.To uprawnienie umożliwia sprawdzenie klasyfikacji Resource Governor sesji logowania.Przykład tworzy następnie użytkownika dla nazwa_domeny\MAX_CPU i dodaje go do db_backupoperator stała rola bazy danych dla AdventureWorks2008R2 przykładowej bazy danych.Ta nazwa użytkownika będą używane przez funkcja Resource 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 AdventureWorks2008R2 for this login
USE AdventureWorks2008R2;
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 Resource Governor ograniczyć użycie Procesora

Ostrzeżenie

Upewnij się, że Resource Governor jest włączona.Aby uzyskać więcej informacji, zobacz Jak Włączanie lub wyłączanie Resource Governor (SSMS).

W tym scenariuszu Resource Governor Konfiguracja obejmuje następujące podstawowe czynności:

  1. Utwórz i skonfiguruj zasób Governor puli zasób, która ogranicza maksymalna średnia przepustowość Procesora, jaką należy podać żądania w puli zasób po wystąpieniu Rywalizacja o Procesor.

  2. Utwórz i skonfiguruj grupa obciążenia Resource Governor, która korzysta z tej puli.

  3. Tworzenie funkcja klasyfikatora, który jest zdefiniowany przez użytkownika funkcja (UDF) którego wartości zwracane są używane przez Resource Governor klasyfikujący sesje tak przekierowywane do odpowiedniego grupa obciążenia.

  4. Zarejestruj Resource Governor z funkcja klasyfikatora.

  5. Zastosuj zmiany konfiguracja Resource Governor w pamięci.

Ostrzeżenie

Informacje zasób Governor pule zasób i grup obciążenia klasyfikacji, zobacz Pojęcia Resource Governor.

Transact-SQL Sprawozdania te kroki są opisane w procedurze "Aby skonfigurować Resource Governor ograniczania użycia Procesora" których następuje Transact-SQL przykład procedury.

Aby skonfigurować Resource Governor (SQL Server Management Studio)

Aby skonfigurować Resource Governor ograniczania użycia Procesora (języka Transact-SQL)

  1. Problem Tworzenie PULI zasób instrukcja, aby utworzyć pulę zasób.Przykład procedura używa następującej składni:

    CREATE RESOURCE POOL pool_name Z (MAX_CPU_PERCENT = value );

    Value jest liczbą całkowitą od 1 do 100 procent średniej, maksymalna przepustowość Procesora wskazuje.Odpowiednią wartość zależy od środowiska.W rozumieniu ilustracji, w tym temacie przykład używa 20% procent (MAX_CPU_PERCENT = 20.)

  2. Problem Tworzenie grupa obciążenia instrukcja do utworzenia grupa obciążenia dla operacji o niskim priorytecie, którego użycie Procesora, który chcesz regulować.Przykład procedura używa następującej składni:

    Tworzenie grupy obciążenia group_name USING pool_name;

  3. Problem funkcja tworzenia instrukcja do utworzenia funkcja klasyfikatora, która mapuje grupa obciążenia utworzonego w poprzednim kroku do użytkownika logowania niskim priorytecie.Przykład procedura używa następującej składni:

    Tworzenie funkcji [schema_name.function_name() Zwraca sysname

    Z SCHEMABINDING

    JAK

    ROZPOCZĘCIE

    @ Workload_group_name jako ZADEKLAROWAĆ sysname

    IF (SUSER_NAME() = "user_of_low_priority_login")

    ZESTAW @ workload_group_name = "workload_group_name'

    ZWROTU @ workload_group_name

    KONIEC

    Informacje o składnikach tej funkcji Tworzenie instrukcja zobacz:

  4. Problem ALTER RESOURCE GOVERNOR instrukcja zarejestrować Resource Governor z funkcja klasyfikatora.Przykład procedura używa następującej składni:

    Z RESOURCE GOVERNOR ALTER (CLASSIFIER_FUNCTION = schema_name.function_name);

  5. Wydawać druga Instrukcja ALTER RESOURCE GOVERNOR, aby zastosować zmiany w konfiguracja w pamięci Resource Governor w następujący sposób:

    ALTER RESOURCE GOVERNOR RECONFIGURE;
    

Przykład B: Konfigurowanie Resource Governor (Transact-SQL)

Poniższy przykład wykonuje następujące czynności w ramach pojedynczej transakcji:

  1. Tworzy pMAX_CPU_PERCENT_20 puli zasób.

  2. Tworzy gMAX_CPU_PERCENT_20 grupa obciążenia.

  3. Tworzy rgclassifier_MAX_CPU() funkcja klasyfikatora, którego używa nazwy użytkownika utworzone w poprzednim przykładzie.

  4. Rejestruje funkcja klasyfikatora z Resource Governor.

Po zatwierdzeniem transakcji, przykład dotyczy zmian konfiguracja wymagane w instrukcji ALTER obciążenia grupy lub zmieniać PULI zasobów.

Ważna informacjaWażne:

W poniższym przykładzie użyto nazwy użytkownika próbki SQL Server użytkownika utworzone w "przykład A: Ustawianie logowania i użytkownik (Transact-SQL)" nazwa_domeny\MAX_CPU.Zastąpić tę nazwę użytkownika logowania, który ma być używany do tworzenia kopii zapasowych 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 bieżącej sesji (Transact-SQL)

Opcjonalnie, zaloguj się jako użytkownik określony w funkcja Klasyfikator i sprawdź klasyfikacji sesja, wydając następujące Zaznacz 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 nazwę kolumna powinien zawierać jedną lub wiele sesji dla nazwy grupy obciążenia określonego w funkcja Klasyfikator.

Ostrzeżenie

Informacje o widokach dynamicznego zarządzania nazywane tej instrukcja SELECT, zobacz sys.dm_exec_sessions (języka Transact-SQL) i sys.dm_resource_governor_workload_groups (języka Transact-SQL).

[Do góry]

Kompresowanie kopii zapasowych przy użyciu sesji z ograniczoną Procesora

Do tworzenia kopia zapasowa skompresowane w sesja z ograniczoną maksymalną Procesora, zaloguj się jako użytkownik określony w funkcja Klasyfikator.Polecenia kopia zapasowa albo określić WITH COMPRESSION (Transact-SQL) lub wybierz kompresowanie kopia zapasowa (SQL Server Management Studio).

Aby utworzyć skompresowany bazy danychkopia zapasowa

Przykład C: Tworzenie skompresowanej kopii zapasowej (Transact-SQL)

Następujące kopia zapasowa przykład tworzy skompresowanym pełna kopia zapasowa z AdventureWorks2008R2 bazy danych w pliku kopia zapasowa nowo sformatowanym Z:\SQLServerBackups\AdvWorks2008R2Data.bak.

--Run backup statement in the gBackup session.
BACKUP DATABASE AdventureWorks2008R2 TO DISK='Z:\SQLServerBackups\AdvWorks2008R2Data.bak' 
WITH 
   FORMAT, 
   MEDIADESCRIPTION='AdventureWorks2008R2 Compressed Data Backups'
   DESCRIPTION='First database backup on AdventureWorks2008R2 Compressed Data Backups media set'
   COMPRESSION;
GO

[Do góry]