Aracılığıyla paylaş


Nasıl yapılır: Kaynak süresine (Transact-SQL) yedekleme sıkıştırma cpu kullanımını sınırlamak için kullanın

Varsayılan olarak, önemli ölçüde sıkıştırma kullanılarak yedekleme cpu kullanımı artıyor ve ek sıkıştırma işlem tarafından kullanılan cpu eşzamanlı operasyonlar olumsuz yönde etkileyebilir.Bu nedenle, düşük öncelikli sıkıştırılmış yedekleme oluşturmak isteyebilirsiniz bir oturum , cpu kullanımı sınırlı olarak Kaynak süresine cpu çekişme oluştuğunda.Bu konuda belli bir oturumları sınıflandırır bir senaryo sunan SQL Server bunları bir kaynak süresine eşleme tarafından kullanıcı iş yükü grubu , cpu kullanımı gibi durumlarda sınırlar

Önemli notÖnemli

Belirli bir kaynak süresine senaryosunda, oturum sınıflandırma bir kullanıcı adı, uygulama adı veya başka bir şey, bir bağlantı ayırabilir esas almıyor olabilir.Daha fazla bilgi için bkz: Sınıflandırıcısı işlevi yazarken dikkat edilmesi gereken noktalar ve Kaynak süresine iş yükünü yönetim senaryoları.

Bu konu aşağıdakileri içerir küme hangi sırayla sunulan senaryoların:

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

  2. Süresine cpu kullanımını sınırlamak için kaynak 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 kullanılarak 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 Server oturum açma ve kullanıcı.Kullanıcı adı oturum açma çalıştırılan oturumları sınıflandırmak ve bunları bir kaynak süresine yönlendirmek için kullanılan iş yükü grubu , cpu kullanımını sınırlar.

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

İçin küme yukarı bir oturum açma ve veritabanı kullanıcı oturumları sınıflandırma

  1. Oluşturma bir SQL Server oturum açma oluşturma düşük öncelikli sıkıştırılmış yedeklemeler.

    Bir oturumu oluşturmak için

  2. İsteğe bağlı olarak, bu oturum açma için Görünüm sunucu durumu atayın.

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

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

    Bir kullanıcı oluşturmak için

  4. Bu oturum açma ve belirli bir veritabanını yedeklemek için kullanıcı oturumları etkinleştirmek için kullanıcı ekleme db_backupoperator veritabanı rolü, bu veritabanı.Bu kullanıcı dosyalarınızı yedeklemek her veritabanı için bunu.İsteğe bağlı olarak, kullanıcı için diğer sabit veritabanı rolleri ekleyin.

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

    Daha fazla bilgi için bkz: Sabit veritabanı rolleri (veritabanı altyapısı) izinleri.

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

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

Önemli notÖnemli

The following example uses a sample login and user name, domain_name\MAX_CPU.Adları ile bunların yerine SQL Server oturum açma ve kullanıcı planladığınız kullanmak oluştururken, düşük öncelikli sıkıştırılmış yedeklemeler.

This example creates a login for the domain_name\MAX_CPU Windows account and then grants VIEW SERVER STATE permission to the login.Bu izin, oturum açma oturumu kaynak süresine sınıflandırma doğrulamanızı sağlar.The example then creates a user for domain_name\MAX_CPU and adds it to the db_backupoperator fixed database role for the AdventureWorks2008R2 sample database.Bu kullanıcı adı kaynak süresine Sınıflandırıcısı işlev 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 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

[Üst]

Süresine cpu kullanımını sınırlamak için kaynak yapılandırma

Not

Kaynak süresine etkinleştirildiğinden emin olun.Daha fazla bilgi için bkz: Nasıl yapılır: Etkinleştirmek veya devre dışı kaynak süresine (ssms).

Bu kaynak süresine senaryosunda, aşağıdaki temel adımları yapılandırma oluşur:

  1. Oluşturun ve cpu çekişme oluştuğunda, kaynak havuzunda isteklere verilen en yüksek ortalama cpu bant genişliği sınırlayan kaynak süresine kaynak havuzu yapılandırın.

  2. Oluşturma ve yapılandırma kaynak süresine iş yükü grubu bu havuzu kullanan.

  3. Oluşturma bir Sınıflandırıcısı işlevi, dönüş değerleri kullanılan kaynak süresine göre bunlar uygun yöneltilmesini oturumlarının sınıflandırılması için kullanıcı tanımlı bir işlev (udf) olduğu iş yükü grubu.

  4. Sınıflandırıcısı işlev ile kaynak süresine kaydettirin.

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

Not

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

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

Kaynak süresine (sql Server Management Studio'yu) yapılandırma

cpu kullanımı (Transact-sql) sınırlamak için kaynak süresine yapılandırmak için

  1. Sorun bir Kaynak HAVUZU oluşturmak bir kaynak havuzu oluşturmak için deyim.Örneğin bu yordamda aşağıdaki sözdizimini kullanır:

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

    Value en yüksek ortalama cpu bant genişliği yüzdesini gösteren bir 1 ile 100 tamsayıdır.Ortamınıza uygun değere bağlıdır.Bu konudaki örnek resimde amacı için yüzde %20 kullanır (max_cpu_percent = 20.)

  2. Sorun bir create iş yükü grubu deyimi oluşturmak için bir iş yükü grubu cpu kullanımını yöneten istediğiniz düşük öncelikli işlemleri için.Örneğin bu yordamda aşağıdaki sözdizimini kullanır:

    İş YÜKÜNÜ grubu oluşturmak group_name kullanma pool_name;

  3. Sorun bir create işlev eşleyen bir Sınıflandırıcısı işlev oluşturmak için ifade iş yükü grubu düşük öncelikli oturum açma kullanıcısı için bir önceki adımda oluşturduğunuz.Örneğin bu yordamda aşağıdaki sözdizimini kullanır:

    FONKSİYON oluşturma [schema_name.function_name() DÖNDÜRÜR sysname

    EMA BALAMA İLE

    AS

    BAŞLAMAK

    @ Workload_group_name'olarak BİLDİRMEK sysname

    IF (suser_name() = 'user_of_low_priority_login')

    set @ workload_group_name = 'workload_group_name'

    return @ workload_group_name

    SON

    Bu create FUNCTION bileşenler hakkında bilgi için deyim, bkz.:

  4. Sorun bir alter resource süresine Sınıflandırıcısı işlev ile kaynak süresine kaydetmek için deyim.Örneğin bu yordamda aşağıdaki sözdizimini kullanır:

    alter resource süresine WITH (CLASSIFIER_FUNCTION = schema_name.function_name);

  5. Değişiklikleri kaynak süresine bellek içi yapılandırma için aşağıdaki şekilde uygulamak için ikinci kaynak süresine alter deyim sorun:

    ALTER RESOURCE GOVERNOR RECONFIGURE;
    

Örnek b: Kaynak süresine (Transact-sql) yapılandırma

Aşağıdaki örnek, 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() Sınıflandırıcısı işlev, önceki örnek. oluşturulan kullanıcı adı kullanır

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

Örnek işlem yaptıktan sonra alter iş YÜKÜNÜ Grup veya kaynak HAVUZU alter deyimleri istenen yapılandırma değişiklikleri uygular.

Önemli notÖnemli

Aşağıdaki örnek kullanıcı adı örnek kullandığını SQL Server oluşturulan kullanıcı "örnek a: Setting Up a Login and User (Transact-SQL)," domain_name\MAX_CPU.Düşük öncelikli sıkıştırılmış yedeklemeler oluşturmak için kullanmayı planladığınız oturum açma kullanıcı 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, sizin Sınıflandırıcısı işlev belirtilen kullanıcı olarak oturum ve aşağıdaki yayımlayarak oturum sınıflandırma doğrulamak seçin Object Explorer'da deyim:

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ı işlev belirtilen iş yükünü grup adı için bir veya daha fazla oturumlar listesi.

Not

Bu bir deyim ile'olarak adlandırılan dinamik yönetimi görünümler hakkında daha fazla bilgi için bkz: sys.dm_exec_sessions (Transact-sql) ve sys.dm_resource_governor_workload_groups (Transact-sql).

[Üst]

Bir oturum ile sınırlı cpu kullanılarak yedekleme sıkıştırma

Bir oturumda sınırlı bir en fazla cpu ile sıkıştırılmış yedek oluşturmak için sizin Sınıflandırıcısı işlev belirtilen kullanıcı olarak oturum.WITH COMPRESSION ya da yedek komutunuzu belirtin (Transact-SQL) seçin veya Yedekleme Sıkıştır (SQL Server Management Studio).

Sıkıştırılmış veritabanı oluşturmak içinyedek

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

The following BACKUP example creates a compressed full backup of the AdventureWorks2008R2 database in a newly formatted backup file, 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

[Üst]