Aracılığıyla paylaş


Yedekleme sıkıştırma (Transact-sql) cpu kullanımını sınırlamak için kaynak Governor kullanın

Varsayılan olarak, yedekleme sıkıştırma kullanılarak önemli ölçüde cpu kullanımı artar ve sıkıştırma işlem tarafından kullanılan ek işlemci eşzamanlı operasyonlar olumsuz etkileyebilir. Bu nedenle, düşük öncelikli sıkıştırılmış olan cpu kullanımı ile sınırlı olduğu bir oturumda yedek oluşturmak isteyebilirsiniz Kaynak Governor cpu Çekişmesi oluştuğunda. Bu konuda belirli bir oturum sınıflandırır bir senaryo sunan SQL Servercpu kullanımı gibi durumlarda sınırlayan kaynak Governor iş yükünü grup eşleme kullanıcı.

Önemli notÖnemli

Belirli bir kaynak Governor senaryoda, kullanıcı adı, uygulama adı veya başka bir şey bağlantı ayırt oturum sınıflandırma esas olabilir. Daha fazla bilgi için Kaynak Governor Classifier işlevive Kaynak Governor iş yükünü Grup.

Bu konu aşağıdaki sırayla sunulan senaryoları içerir:

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

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

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

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

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

Düşük öncelikli senaryo bu konudaki gerektirir SQL Servergiriş ve kullanıcı. Kullanıcı adı, giriş çalıştırılan oturumları sınıflandırmak ve cpu kullanımını sınırlayan bir kaynak Governor iş yükünü Grup onları yönlendirmek için kullanılır.

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

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

  1. Yaratmak a SQL Serverdüşük öncelikli oluşturma giriş sıkıştırılmış yedeklemeler. 

    Bir oturumu oluşturmak için

  2. İsteğe bağlı olarak, bu oturum açma VIEW server state izni.

    Daha fazla bilgi için, bkz. grant veritabanı asıl izinler (Transact-sql).

  3. Yaratmak a SQL Serverkullanıcı için bu giriş.

    Bir kullanıcı oluşturmak için

  4. Bu mantık ve belirli bir veritabanını yedeklemek için kullanıcı oturumları etkinleştirmek için kullanıcı ekleme db_backupoperatorveritabanı rolü veritabanı. Bu kullanıcının geri her veritabanı için bunu. Isteğe bağlı olarak, kullanıcı diğer sabit veritabanı rolleri ekleyin.

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

    Daha fazla bilgi için, bkz. grant veritabanı asıl izinler (Transact-sql).

Örnek a: ayarlama oturumu ve kullanıcı (Transact-sql)

Aşağıdaki örnek yalnızca yeni oluşturmak isterseniz ilgili SQL Servergiriş ve kullanıcı düşük öncelikli yedeklemeler için. Alternatif olarak, uygun bir varsa, varolan oturum açma ve kullanıcı kullanabilirsiniz.

Önemli notÖnemli

Aşağıdaki örnek bir örnek oturum açma ve kullanıcı adı kullanan domain_name\MAX_CPU. Bunlar adlarıyla değiştirmek SQL Servergiriş, düşük öncelikli oluştururken kullanmayı planladığınız kullanıcı sıkıştırılmış yedeklemeler.

Bu örnek için bir giriş oluşturur domain_name\MAX_CPUWindows hesabı ve oturum açma VIEW server state izni verir. Bu izni, oturum açma oturumları kaynak Governor sınıflandırma doğrulamanızı sağlar. Sonra bir kullanıcı için örnek oluşturur domain_name\MAX_CPUve ekler db_backupoperatorsabit veritabanı rolü AdventureWorks2012örnek veritabanı. Bu kullanıcı adı, kaynak Governor classifier işlevi tarafından kullanılacaktır.

-- 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 AdventureWorks2012 for this login
USE AdventureWorks2012;
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 etkin olduğundan emin olun. Daha fazla bilgi için, bkz. Kaynak Governor etkinleştir.

Bu kaynak Governor senaryoda, yapılandırma aşağıdaki temel adımları içerir:

  1. Oluşturun ve cpu Çekişmesi oluştuğunda, kaynak havuzunda isteklere verilen en yüksek ortalama cpu bant genişliğini sınırlar kaynak Governor kaynak havuzu yapılandırın.

  2. Oluşturma ve bu havuzu kullanan kaynak Governor iş yükünü Grup yapılandırma.

  3. Yaratmak a classifier işlevi, dönüş değerleri için uygun iş yükünü Grup yöneltilmesini oturumları sınıflandırma kaynak Governor tarafından kullanıldığı bir kullanıcı tanımlı işlevi (udf) olduğu.

  4. Classifier işlevi ile kaynak Governor kaydolun.

  5. Kaynak Governor bellek içi yapılandırma değişiklikleri uygulayın.

[!NOT]

Sınıflandırma kaynak Governor kaynak havuzları ve iş yükünü grupları hakkında daha fazla bilgi için bkz: Kaynak İdarecisi.

Transact-SQLDeyimleri için aşağıdaki adımları "Yapılandırma kaynak Governor cpu kullanımını sınırlamak için" yordamında açıklanan hangi tarafından sonra bir Transact-SQLyordamı örneği.

Kaynak Governor (SQL Server Management Studio'yu) yapılandırma

cpu kullanımı (Transact-sql) sınırlandırmak için kaynak Governor yapılandırmak için

  1. Sorun bir Kaynak havuzu oluşturmak bir kaynak havuzu oluşturma için deyimi. Bu yordam için örnek aşağıdaki sözdizimini kullanır:

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

    Valueen yüksek ortalama cpu bant genişliği yüzdesini gösteren 1 ile 100 tamsayıdır. Uygun değer ortamınıza bağlıdır. Resimde amacı, bu konuda örnek % yüzde 20 kullanır (max_cpu_percent = 20.)

  2. Sorun bir İş yükünü grubu oluşturmak deyimi iş yükünü oluşturmak için Grup düşük öncelikli işlemleri için yönetmek istediğiniz cpu kullanımı. Bu yordam için örnek aşağıdaki sözdizimini kullanır:

    İş yükünü grubu oluşturmak group_namekullanarak pool_name;

  3. Sorun bir create FUNCTION düşük öncelikli oturum açma kullanıcısı için bir önceki adımda oluşturulan iş yükünü Grup eşleyen bir classifier işlevi oluşturmak için deyimi. Bu yordam için örnek aşağıdaki sözdizimini kullanır:

    İŞLEV oluşturun schema_name. function_name() returns sysname

    SCHEMABINDING İLE

    AS

    BAŞLAMAK

    declare @ workload_group_name assysname

    IF (suser_name() = 'user_of_low_priority_login')

    set @ workload_group_name = 'workload_group_name'

    @ Workload_group_name dönmek

    SONUNDA

    Bu create FUNCTION deyimi bileşenleri hakkında daha fazla bilgi için bkz:

  4. Sorun bir Kaynak governor alter deyimi ile kaynak Governor classifier işlevi kaydolun. Bu yordam için örnek aşağıdaki sözdizimini kullanır:

    alter resource governor ile (CLASSIFIER_FUNCTION = schema_name.function_name);

  5. Kaynak Governor bellek içi yapılandırma için aşağıdaki değişiklikleri uygulamak için ikinci bir kaynak governor alter deyimi sorun:

    ALTER RESOURCE GOVERNOR RECONFIGURE;
    

Örnek b: yapılandırma kaynak Governor (Transact-sql)

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

  1. Oluşturur pMAX_CPU_PERCENT_20Kaynak Havuzu.

  2. Oluşturur gMAX_CPU_PERCENT_20iş yükünü Grup.

  3. Oluşturur rgclassifier_MAX_CPU()Önceki örnekte oluşturulmuş kullanıcı adı kullandığını classifier işlevi.

  4. Classifier işlevi ile kaynak Governor kaydeder.

İşlem yapılıyor sonra örnek iş yükünü group alter veya alter resource pool deyimleri istenen yapılandırma değişiklikleri uygular.

Önemli notÖnemli

Aşağıdaki örnek, örnek adını kullanır SQL Server"Örnek a: kurma oturumu ve kullanıcı (Transact-sql)," kullanıcı oluşturulan domain_name\MAX_CPU. Bu kullanıcı düşük öncelikli sıkıştırılmış yedeklemeler oluşturmak için kullanmayı planladığınız oturum açma adı ile 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 oturumu (Transact-sql) sınıflandırmasını doğrulanıyor

İsteğe bağlı olarak, classifier işlevinde belirtilen kullanıcı olarak giriş yapın ve aşağıdaki yayımlayarak oturum sınıflandırma doğrulamak seçin nesne Explorer'da deyimi:

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, namesütun classifier işlevinde belirtilen iş yükünü Grup adı için bir veya daha fazla oturumlar listesi.

[!NOT]

Bu select deyimi tarafından adlandırılan dinamik yönetimi görünümler hakkında daha fazla bilgi için bkz: 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 oturum ile sınırlı en yüksek cpu sıkıştırılmış yedekleme oluşturmak için classifier işlevinde belirtilen kullanıcı olarak oturum. Yedekleme, ya da sıkıştırma ile komutta (Transact-SQL) veya Yedekleme Sıkıştır (SQL Server Management Studio). Sıkıştırılmış veritabanı yedeği oluşturmak için bkz: Tam Veritabanı Yedeği Oluşturma (SQL Server).

Örnek c: sıkıştırılmış yedekleme (Transact-sql) oluşturma

Aşağıdaki yedekleme örnek, sıkıştırılmış bir tam yedeğini oluşturur AdventureWorks2012veritabanı yeni biçimlendirilmiş yedek dosyası Z:\SQLServerBackups\AdvWorksData.bak.

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

[Üst]

Ayrıca bkz.

Görevler

Oluşturmak ve bir Classifier kullanıcı tanımlı işlev testi

Kavramlar

Kaynak İdarecisi