Megosztás a következőn keresztül:


A Resource Governor használata a processzorhasználat biztonsági mentési tömörítéssel történő korlátozásához (Transact-SQL)

A következőkre vonatkozik:SQL Server

Alapértelmezés szerint a tömörítés használatával történő biztonsági mentés jelentősen növeli a processzorhasználatot, és a tömörítési folyamat által felhasznált további PROCESSZOR hátrányosan befolyásolhatja az egyidejű műveleteket. Ezért érdemes lehet alacsony prioritású tömörített biztonsági mentést létrehozni egy olyan munkamenetben, amelynek processzorkihasználtságát a Erőforrás-vezérlő korlátozza, amikor CPU terhelés alakul ki. Ez a témakör egy olyan forgatókönyvet mutat be, amely egy adott SQL Server-felhasználó munkameneteit osztályozza egy Resource Governor számítási csoporthoz való hozzárendeléssel, amely korlátozza az ilyen esetekben a processzorhasználatot.

Fontos

Egy adott Resource Governor-forgatókönyvben a munkamenetek besorolása egy felhasználóneven, egy alkalmazásnéven vagy bármi máson alapulhat, amely megkülönbözteti a kapcsolatot. További információ: Erőforrás-kormányzó osztályozó funkció és Erőforrás-kormányzó számítási feladatcsoport.

Ez a témakör a következő forgatókönyveket tartalmazza, amelyek sorrendben jelennek meg:

  1. Bejelentkezés és felhasználó beállítása Low-Priority műveletekhez

  2. Erőforrás-vezérlő konfigurálása a processzorhasználat korlátozásához

  3. Az aktuális munkamenet (Transact-SQL) besorolásának ellenőrzése

  4. Biztonsági másolatok tömörítése korlátozott processzorhasználatú munkamenettel

Bejelentkezés és felhasználó beállítása Low-Priority műveletekhez

A jelen témakör forgatókönyvéhez alacsony prioritású SQL Server-bejelentkezésre és felhasználóra van szükség. A rendszer a felhasználónévvel osztályozza a bejelentkezésben futó munkameneteket, és átirányítja őket egy erőforrás-kormányzó számítási feladatcsoportba, amely korlátozza a processzorhasználatot.

Az alábbi eljárás ismerteti a bejelentkezés és a felhasználó e célra történő beállításának lépéseit, majd egy Transact-SQL példát,"A. példa: Bejelentkezés és felhasználó beállítása (Transact-SQL)."

Bejelentkezési és adatbázis-felhasználó beállítása munkamenetek besorolásához

  1. Hozzon létre egy SQL Server-bejelentkezést alacsony prioritású tömörített biztonsági mentések létrehozásához.

    Bejelentkezési fiók létrehozása

  2. Igény szerint adja meg a VIEW SERVER STATE parancsot ehhez a bejelentkezéshez.

    További információért lásd: GRANT Adatbázis Kezelő Jogosultságok (Transact-SQL).

  3. Hozzon létre egy SQL Server-felhasználót ehhez a bejelentkezéshez.

    Felhasználó létrehozása

  4. Ha engedélyezni szeretné a bejelentkezési munkamenetek és a felhasználó számára egy adott adatbázis biztonsági mentését, adja hozzá a felhasználót az adatbázis db_backupoperator adatbázis-szerepköréhez. Tegye ezt minden olyan adatbázishoz, amelyről a felhasználó biztonsági másolatot készít. Igény szerint vegye fel a felhasználót más rögzített adatbázis-szerepkörökbe.

    Felhasználó hozzáadása rögzített adatbázis-szerepkörhöz

    További információért lásd: GRANT Adatbázis Kezelő Jogosultságok (Transact-SQL).

A. példa: Bejelentkezés és felhasználó beállítása (Transact-SQL)

Az alábbi példa csak akkor releváns, ha új SQL Server-bejelentkezést és felhasználót hoz létre alacsony prioritású biztonsági mentésekhez. Alternatívaként használhat egy meglévő bejelentkezést és felhasználót, ha van ilyen.

Fontos

Az alábbi példa egy minta bejelentkezést és felhasználónevet használ, domain_name\MAX_CPU. Ezeket cserélje le az alacsony prioritású tömörített biztonsági mentések létrehozásakor használni kívánt SQL Server-bejelentkezés és felhasználó nevére.

Ez a példa létrehoz egy bejelentkezést a domain_name\MAX_CPU Windows-fiókhoz, majd view server state engedélyt ad a bejelentkezéshez. Ez az engedély lehetővé teszi a bejelentkezés munkameneteinek Resource Governor-besorolásának ellenőrzését. A példa ezután létrehoz egy felhasználót a domain_name\MAX_CPU számára, és hozzáadja azt az AdventureWorks2025 mintaadatbázis db_backupoperator rögzített adatbázis-szerepköréhez. Ezt a felhasználónevet a Resource Governor osztályozó függvény fogja használni.

-- 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 AdventureWorks2022 for this login  
USE AdventureWorks2022;  
CREATE USER [domain_name\MAX_CPU] FOR LOGIN [domain_name\MAX_CPU];  
EXEC sp_addrolemember 'db_backupoperator', 'domain_name\MAX_CPU';  
GO  

[Top]

Erőforrás-vezérlő konfigurálása a processzorhasználat korlátozásához

Jegyzet

Győződjön meg arról, hogy a Resource Governor engedélyezve van. További információkért, tekintse meg a Erőforrás-kormányzó engedélyezéserészt.

Ebben az erőforrás-kormányzói forgatókönyvben a konfiguráció a következő alapvető lépéseket tartalmazza:

  1. Hozzon létre és konfiguráljon egy Resource Governor-erőforráskészletet, amely korlátozza az erőforráskészletben lévő kéréseknek a CPU-versengés során megadott maximális átlagos processzor-sávszélességet.

  2. Hozzon létre és konfiguráljon egy erőforrás-kormányzó számítási feladatcsoportot, amely ezt a készletet használja.

  3. Hozzon létre egy osztályozófüggvényt, amely egy felhasználó által definiált függvény (UDF), amelynek visszatérési értékeit a Resource Governor használja a munkamenetek besorolásához, hogy azok a megfelelő számítási feladatcsoporthoz legyenek irányítva.

  4. Regisztrálja az osztályozófüggvényt a Resource Governor segítségével.

  5. Alkalmazza a módosításokat a memóriabeli Resource Governor konfigurációra.

Jegyzet

A Resource Governor erőforráskészletekkel, számítási feladatcsoportokkal és besorolással kapcsolatos információkért lásd Erőforrás-kormányzó.

A Transact-SQL lépésekre vonatkozó utasításokat a "Resource Governor konfigurálása a processzorhasználat korlátozására" című eljárás ismerteti, amelyet az eljárás Transact-SQL példája követ.

A Resource Governor (SQL Server Management Studio) konfigurálása

A Resource Governor konfigurálása a processzorhasználat korlátozásához (Transact-SQL)

  1. Adjon ki egy CREATE RESOURCE POOL utasítást egy erőforráskészlet létrehozásához. Az eljárás példája a következő szintaxist használja:

    CREATE RESOURCE POOL [<pool_name>] WITH ( MAX_CPU_PERCENT = /*replace 10 with the actual value*/10 );
    

    érték egy 1 és 100 közötti egész szám, amely a maximális átlagos PROCESSZOR-sávszélesség százalékos arányát jelzi. A megfelelő érték a környezettől függ. Az ábrán szereplő példa 20% százalékot használ (MAX_CPU_PERCENT = 20).)

  2. Adjon ki egy SZÁMÍTÁSI FELADATCSOPORT LÉTREHOZÁSA utasítást olyan alacsony prioritású műveletek számítási feladatcsoportjának létrehozásához, amelyek processzorhasználatát szabályozni szeretné. Az eljárás példája a következő szintaxist használja:

    CREATE WORKLOAD GROUP [<group_name>] USING [<pool_name>];
    
  3. Adjon ki egy CREATE FUNCTION utasítást egy osztályozó függvény létrehozásához, amely az előző lépésben létrehozott számítási feladatcsoportot az alacsony prioritású bejelentkezés felhasználójának megfelelteti. Az eljárás példája a következő szintaxist használja:

    CREATE FUNCTION [<schema_name>].[<function_name>]() RETURNS sysname  
    WITH SCHEMABINDING  
    AS  
    BEGIN  
        DECLARE @workload_group_name AS [<sysname>]  
        IF (SUSER_NAME() = '<user_of_low_priority_login>')  
        SET @workload_group_name = '<workload_group_name>'  
        RETURN @workload_group_name  
    END;
    

    A CREATE FUNCTION utasítás összetevőiről a következő témakörben olvashat bővebben:

  4. Állítjon ki egy ALTER RESOURCE GOVERNOR utasítást az osztályozó függvény Resource Governor-beli regisztrálásához. Az eljárás példája a következő szintaxist használja:

    ALTER RESOURCE GOVERNOR WITH (CLASSIFIER_FUNCTION = [<schema_name>].[<function_name>]);
    
  5. Adjon ki egy második ALTER RESOURCE GOVERNOR utasítást a memóriabeli erőforrás-kormányzó konfigurációjának módosításainak alkalmazásához az alábbiak szerint:

    ALTER RESOURCE GOVERNOR RECONFIGURE;  
    

B példa: Erőforrás-kormányzó konfigurálása (Transact-SQL)

Az alábbi példa a következő lépéseket hajtja végre egyetlen tranzakción belül:

  1. Létrehozza a pMAX_CPU_PERCENT_20 erőforráskészletet.

  2. Létrehozza a gMAX_CPU_PERCENT_20 számítási feladatcsoportot.

  3. Létrehozza a rgclassifier_MAX_CPU() osztályozó függvényt, amely az előző példában létrehozott felhasználónevet használja.

  4. Regisztrálja az osztályozó függvényt a Resource Governorben.

A tranzakció véglegesítése után a példa az ALTER SZÁMÍTÁSI FELADATCSOPORTban vagy az ALTER RESOURCE POOL utasításban kért konfigurációs módosításokat alkalmazza.

Fontos

Az alábbi példa az "A. példa: Bejelentkezés és felhasználó beállítása (Transact-SQL)," domain_name\MAX_CPUcímű példában létrehozott SQL Server-mintafelhasználó felhasználónevet használja. Cserélje le ezt az alacsony prioritású tömörített biztonsági mentések létrehozásához használni kívánt bejelentkezési felhasználó nevére.

-- Configure Resource Governor.  
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    

[Top]

Az aktuális munkamenet besorolásának ellenőrzése (Transact-SQL)

Ha szeretné, jelentkezzen be az osztályozó függvényben megadott felhasználóként, és ellenőrizze a munkamenet-besorolást a következő SELECT utasítás kiadásával az Object Explorerben:

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  

Az eredmények ablaktáblán a név oszlopnak egy vagy több munkamenetet kell felsorolnia az osztályozó függvényben megadott számítási feladatcsoport-névhez.

Jegyzet

A SELECT utasítás által meghívott dinamikus felügyeleti nézetekről további információt a sys.dm_exec_sessions (Transact-SQL) és sys.dm_resource_governor_workload_groups (Transact-SQL)című cikkben talál.

[Top]

Biztonsági másolatok tömörítése korlátozott processzorhasználatú munkamenet használatával

Ha korlátozott maximális processzorhasználattal rendelkező munkamenetben szeretne tömörített biztonsági másolatot készíteni, jelentkezzen be az osztályozó függvényben megadott felhasználóként. A biztonsági mentési parancsban adja meg a WITH COMPRESSION (Transact-SQL) értéket, vagy válassza a Biztonsági mentés tömörítése (SQL Server Management Studio) lehetőséget. Tömörített adatbázis biztonsági mentésének létrehozásáról a Teljes adatbázis biztonsági mentése (SQL Server)című témakörben olvashat.

C példa: Tömörített biztonsági mentés létrehozása (Transact-SQL)

Az alábbi BACKUP-példa egy újonnan formázott biztonsági mentési fájlban Z:\SQLServerBackups\AdvWorksData.bakhozza létre az AdventureWorks2025-adatbázis tömörített teljes biztonsági mentését.

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

[Top]

Lásd még:

Osztályozó User-Defined függvény létrehozása és tesztelése
resource governor