Aracılığıyla paylaş


Nasıl Yapılır: CPU kullanımı yedek sıkıştırma (Transact-SQL) göre sınırlamak için kaynak Governor kullanın.

Varsayılan değer olarak, sıkıştırma önemli ölçüde kullanarak yedekleme, CPU kullanımını artırır ve ek Sıkıştırma işlemi tarafından tüketilen CPU, eşzamanlı operasyonlar olumsuz etkileyebilir.Bu nedenle, sıkıştırılmış bir düşük öncelik, CPU kullanımı ile sınırlı bir oturumda yedek oluşturmak isteyebilirsiniz Kaynak Governor CPU çekişmesi oluştuğunda.Bu konu, belirli bir oturum olarak sınıflandırır bir senaryo sunar. SQL Server Bu gibi durumlarda, CPU kullanımı sınırlayan bir kaynak Governor iş yükü grubu eşleme tarafından kullanıcı'ı tıklatın.

Important noteImportant Note:

Belirli bir kaynak Governor senaryosunda oturum sınıflandırmasını bir kullanıcı adı, bir uygulama adı veya başka bir şey bağlantı birbirinden ayırabilirsiniz, temel.Daha fazla bilgi için bkz: Bir Sınıflandırıcısı işlev yazılıyor dikkat edilmesi gereken noktalar ve Kaynak Governor Workload Yönetim senaryoları.

Bu konu aşağıdakileri içerir küme hangi sırada sunulur ve senaryosu:

  1. Bir oturum açma ve kullanıcı için düşük öncelikli işlemleri ayarlama

  2. Kaynak Governor, CPU kullanımını sınırlamak için yapılandırma

  3. Geçerli oturum (Transact-SQL) sınıflandırmasını doğrulanıyor

  4. Bir oturum ile sınırlı CPU kullanarak yedekleme sıkıştırma

Bir oturum açma ve kullanıcı için düşük öncelikli işlemleri ayarlama

Bu konu senaryosunda düşük öncelikli gerektirir. SQL Server oturum açma adı ve kullanıcı. Kullanıcı adı, oturum açma çalışan oturum sınıflandırmak ve bunları CPU kullanımı sınırlayan bir kaynak Governor iş yükünü grubuna yönlendirmek için kullanılır.

Aşağıdaki yordam, ardından, bu amaçla, bir oturum açma ve kullanıcı ayarlama adımlarını açıklar bir Transact-SQLÖrneğin, "örnek A: Bir oturum açma ve kullanıcı (Transact-SQL) ayarlama."

Oturum açma adı ve veritabanı kullanıcı oturumlarının sınıflandırma için ayarlamak için

  1. Oluşturma bir SQL Server oturum açma, düşük öncelikli oluşturmak için yedekleme sıkıştırılmış.

    Bir oturum oluşturmak için

  2. Isteğe bağlı olarak, bu oturum için VIEW SERVER DURUM verin.

    Daha fazla bilgi için bkz:Sabit sunucu rollerini (Veritabanı Altyapısı) izinleri.

  3. Oluşturma bir SQL Server Bu oturum açma için kullanıcı.

    Bir kullanıcı oluşturmak için

  4. Bu oturum açma ve belirli bir veritabanını yedeklemek için kullanıcı oturumları'nı etkinleştirmek için , bu veritabanını db_backupoperator veritabanı rolü kullanıcı ekleyin.Bu kullanıcının geri her veritabanı için bunu yapın.Isteğe bağlı olarak, kullanıcı için diğer sabit veritabanı rolü ekleyin.

    Bir sabit veritabanı rolü için bir kullanıcı eklemek için

    Daha fazla bilgi için bkz:Sabit Database Roles (Veritabanı Altyapısı) izinleri.

Örnek A: Bir oturum açma ve kullanıcı (Transact-SQL) ayarlama

Aşağıdaki örnek, yeni bir seçerseniz geçerlidir SQL Server oturum açma adı ve kullanıcı için düşük öncelikli yedekler. Alternatif olarak, uygun bir varsa bir varolan oturum açma ve kullanıcı, kullanabilirsiniz.

Important noteImportant Note:

Aşağıdaki örnek, bir örnek oturum açma ve kullanıcı adını kullanır. Etki_alanı_adı\MAX_CPU.Bu adları yerine SQL Server oturum açma adı ve bilgisayarınızı düşük öncelikli oluştururken, kullanmayı planladığınız kullanıcı yedekleme sıkıştırılmış.

Bu örnek için bir oturum oluşturur Etki_alanı_adı\MAX_CPU Windows hesabını ve sonra oturumu VIEW SERVER DURUM izin verir.Bu izin, oturum açma, oturumu kaynak Governor sınıflandırma doğrulamanızı sağlar.Örnek sonra bir kullanıcı oluşturur. Etki_alanı_adı\MAX_CPU ve db_backupoperator sabit veritabanı rolü için eklerAdventureWorks Örnek Veritabanı'nı tıklatın. Bu kullanıcı adı, kaynak Governor Sınıflandırıcısı tarafından kullanılacak işlev.

-- 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

[Üst]

Kaynak Governor, CPU kullanımını sınırlamak için yapılandırma

Not

Kaynak Governor etkinleştirildiğinden emin olun.Daha fazla bilgi için bkz:Nasıl Yapılır: Etkinleştirme veya kaynak Governor (SQL Server Management Studio'yu) devre dışı bırakma.

Bu kaynak Governor senaryosunda, yapılandırma, aşağıdaki temel adımları kapsar:

  1. Oluşturun ve CPU çekişmesi ortaya çıktığında, kaynak havuzu isteğine verilen en fazla ortalama CPU bant sınırlayan kaynak Governor kaynak havuzuyla yapılandırın.

  2. Oluşturma ve bir kaynak Governor yapılandırma iş yükü grubu, bu havuzu kullanır.

  3. Oluşturma bir Sınıflandırıcısı işlevidönüş değerleri, uygun olan yöneltilmesini oturumların sınıflandırma kaynak Governor tarafından kullanılan kullanıcı tanımlı bir işlev (UDF) olan iş yükü grubu.

  4. Sınıflandırıcısı işlev ile kaynak Governor kaydedin.

  5. Kaynak Governor içinde-bellek için değişiklikleri uygulamak yapılandırma.

Not

Kaynak havuzu kaynak Governor iş grupları ve sınıflandırması hakkında daha fazla bilgi için bkz: Kaynak Governor kavramları.

The Transact-SQL statements for these steps are described in the procedure, "To configure kaynak Governor for limiting CPU usage," which is followed by a Transact-SQL example of the procedure.

Kaynak Governor (SQL Server Management Studio'yu) yapılandırmak için

Kaynak Governor (Transact-SQL) CPU kullanımını sınırlamak için yapılandırmak için

  1. Sorun bir KAYNAK HAVUZU OLUŞTURMA deyim kaynak havuzu oluşturmak için.Bu yordam için örnek, aşağıdaki sözdizimini kullanır:

    CREATE RESOURCE POOL pool_name İLE (max_cpu_percent = value );

    Value maksimum ortalama CPU bant genişliği yüzdesini gösteren 1 ile 100 tamsayıdır.Uygun bir değerle ortamınıza bağlıdır.Gösterim amacıyla, bu konudaki örnek % yüzde 20 kullanır (MAX_CPU_PERCENT = 20.)

  2. Sorun bir İŞ GRUBU OLUŞTURMA deyim, CPU kullanımının düşük öncelikli operasyonlar için iş yükünü grup oluşturmak, yönetmek istediğiniz.Bu yordam için örnek, aşağıdaki sözdizimini kullanır:

    İŞ GRUBU OLUŞTURMA group_name Bu alternatif pool_name;

  3. Sorun bir FONKSİYON OLUŞTUR deyim düşük öncelikli oturum açma kullanıcısı için bir önceki adımda oluşturduğunuz iş yükü grubu eşleyen bir Sınıflandırıcısı işlevi oluşturmak için.Bu yordam için örnek, aşağıdaki sözdizimini kullanır:

    OLUŞTURMA işlev [schema_name.function_name() VERIR sysname

    schemabinding İLE

    OLARAK

    BAŞLANGIÇ

    @ Workload_group_name AS BILDIRIN. sysname

    if (suser_name() = 'user_of_low_priority_login')

    küme @ workload_group_name = 'workload_group_name'

    @ Workload_group_name RETURN

    BİTİŞ

    Bu CREATE işlev bileşenler hakkında daha fazla bilgi için deyim, bkz:

  4. Sorun bir KAYNAK governor DEĞİŞTİRME ekstresi Sınıflandırıcısı işlev ile kaynak Governor kaydedilemedi.Bu yordam için örnek, aşağıdaki sözdizimini kullanır:

    alter KAYNAK governor İLE (classifier_function = schema_name. function_name);

  5. Değişiklikleri kaynak Governor bellek yapılandırması için aşağıdaki gibi uygulamak için ikinci bir KAYNAĞı GOVERNOR ALTER deyim yayınlayın:

    ALTER RESOURCE GOVERNOR RECONFIGURE;
    

Örnek B: Kaynak Governor (Transact-SQL) yapılandırma

Aşağıdaki örnekte, tek bir işlem içinde aşağıdaki adımları gerçekleştirir:

  1. Oluşturur pMAX_CPU_PERCENT_20 Kaynak havuzu.

  2. Oluşturur gMAX_CPU_PERCENT_20 iş yükü grubu.

  3. Oluşturur rgclassifier_MAX_CPU() Önceki örnekte oluşturulmuş kullanıcı adı kullandığını Sınıflandırıcısı işlev.

  4. Sınıflandırıcısı işlev ile kaynak Governor kaydeder.

Işlem yapılıyor sonra örnek iş YÜKÜ GROUP ALTER veya ALTER kaynak POOL tablolarda istenen yapılandırma değişiklikleri uygular.

Important noteImportant Note:

Aşağıdaki örnek, örnek kullanıcı adını kullanır. SQL Server"örnek A: içinde oluşturulan kullanıcı Bir oturum açma ve kullanıcı (Transact-SQL) ayarlama"Etki_alanı_adı\MAX_CPU.Bu, düşük öncelikli sıkıştırılmış yedek oluşturmak için kullanmayı planladığınız oturum açma kullanıcı adını değiştirin.

-- 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

[Üst]

Geçerli oturum (Transact-SQL) sınıflandırmasını doğrulanıyor

Isteğe bağlı olarak, sizin Sınıflandırıcısı'de belirtilen kullanıcı olarak oturum işlev ve aşağıdaki yayımlayarak oturum sınıflandırma doğrulayın. SELECT deyiminde Object Explorer:

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

Sonuçlar bölmesinde, Ad sütun kendi Sınıflandırıcısı'de belirtilen iş grubu adı için bir veya daha fazla oturumu listelenmelidir işlev.

Not

Bu adı verilen dinamik yönetimi görünümler hakkında bilgi için deyim SELECT Bkz: sys.dm_exec_sessions (Transact-SQL) ve sys.dm_resource_governor_workload_groups (Transact-SQL).

[Üst]

Bir oturum ile sınırlı CPU kullanarak yedekleme sıkıştırma

Bir oturumda sınırlı bir en yüksek CPU ile sıkıştırılmış yedek oluşturmak için , olarak Sınıflandırıcısı işlevinizin belirtilen kullanıcı oturum açın.yedek komutunuzu, WITH COMPRESSION (ya da belirtin.Transact-SQL) ya da seçin Yedeklemeyi sıkıştırma (SQL Server Management Studio).

Sıkıştırılmış veritabanı yedeği oluşturmak için

Örneğin C: Bir sıkıştırılmış yedek (Transact-SQL) oluşturma

Aşağıdaki yedek Sıkıştırılmış tam yedek örnek oluştururAdventureWorks veritabanında, yeni biçimlendirilmiş yedek dosyası 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

[Üst]