Aracılığıyla paylaş


ALTER RESOURCE POOL (Transact-SQL)

Şunlar için geçerlidir:SQL ServerAzure SQL Yönetilen Örneği

Veritabanı Altyapısı örneği için mevcut kaynak yöneticisi kaynak havuzu yapılandırmasını değiştirir.

Not

Azure SQL Yönetilen Örneği için resource governor yapılandırmasını değiştirmek için master veritabanı bağlamında olmanız gerekir.

Transact-SQL söz dizimi kuralları

Sözdizimi

ALTER RESOURCE POOL { pool_name | [default] }
[WITH
    ( [ MIN_CPU_PERCENT = value ]
    [ [ , ] MAX_CPU_PERCENT = value ]
    [ [ , ] CAP_CPU_PERCENT = value ]
    [ [ , ] AFFINITY {
                        SCHEDULER = AUTO
                      | ( <scheduler_range_spec> )
                      | NUMANODE = ( <NUMA_node_range_spec> )
                      }]
    [ [ , ] MIN_MEMORY_PERCENT = value ]
    [ [ , ] MAX_MEMORY_PERCENT = value ]
    [ [ , ] MIN_IOPS_PER_VOLUME = value ]
    [ [ , ] MAX_IOPS_PER_VOLUME = value ]
)]
[;]

<scheduler_range_spec> ::=
{SCHED_ID | SCHED_ID TO SCHED_ID}[,...n]

<NUMA_node_range_spec> ::=
{NUMA_node_ID | NUMA_node_ID TO NUMA_node_ID}[,...n]

Bağımsız değişken

{ pool_name | [default] }

Mevcut kullanıcı tanımlı kaynak havuzunun veya yerleşik default kaynak havuzunun adıdır.

default, sistem tarafından ayrılmış bir sözcük olan DEFAULTçakışmasını önlemek için ALTER RESOURCE POOL kullanıldığında köşeli ayraç ([]) veya tırnak işareti ("") olmalıdır. Daha fazla bilgi için bkz.Veritabanı tanımlayıcıları.

Yerleşik kaynak havuzları ve iş yükü grupları, defaultgibi tüm küçük harf adlarını kullanır. Büyük/küçük harfe duyarlı harmanlama kullanan sunucularda küçük harf default kullanın. Büyük/küçük harfe duyarlı olmayan harmanlama içeren sunucular, default, Defaultve DEFAULT aynı değer olarak davranır.

MIN_CPU_PERCENT = değer

CPU çekişmesi olduğunda kaynak havuzundaki tüm istekler için garanti edilen ortalama CPU bant genişliğini belirtir. değer, varsayılan ayarı 0 olan bir tamsayıdır. değer için izin verilen aralık 0 ile 100 arasındadır.

MAX_CPU_PERCENT = değer

CPU çekişmesi olduğunda kaynak havuzundaki tüm isteklerin aldığı ortalama en yüksek CPU bant genişliğini belirtir. değeri, varsayılan ayarı 100 olan bir tamsayıdır. değer için izin verilen aralık 1 ile 100 arasındadır.

CAP_CPU_PERCENT = değer

için geçerlidir: SQL Server 2012 (11.x) ve üzeri.

Kaynak havuzundaki tüm isteklerin aldığı CPU bant genişliği üzerinde sabit bir üst sınır belirtir. En yüksek CPU bant genişliği düzeyini belirtilen değerle aynı olacak şekilde sınırlar. değeri, varsayılan ayarı 100 olan bir tamsayıdır. değer için izin verilen aralık 1 ile 100 arasındadır.

Not

CPU idaresinin istatistiksel yapısı nedeniyle, CAP_CPU_PERCENTiçinde belirtilen değeri aşan kısa ani artışlar fark edebilirsiniz.

BENZİLİK {SCHEDULER = AUTO | ( <scheduler_range_spec> ) | NUMANODE = (<NUMA_node_range_spec>)}

için geçerlidir: SQL Server 2012 (11.x) ve üzeri.

Kaynak havuzunu belirli zamanlayıcılara ekleyin. Varsayılan değer AUTO.

AFFINITY SCHEDULER için <scheduler_range_spec> belirtilmesi, kaynak havuzunu verilen kimlikler tarafından tanımlanan Veritabanı Altyapısı zamanlayıcılarına yönlendirir. Bu kimlikler, sys.dm_os_schedulersscheduler_id sütunundaki değerlerle eşler.

AFFINITY NUMANODE için <NUMA_node_range_spec> belirtilmesi, kaynak havuzunu, verilen NUMA düğümüne veya bir düğüm aralığına karşılık gelen mantıksal CPU'larla eşleyen Veritabanı Altyapısı zamanlayıcılarıyla birleştirir. Fiziksel NUMA yapılandırmasıyla Veritabanı Altyapısı zamanlayıcı kimlikleri arasındaki eşlemeyi bulmak için aşağıdaki Transact-SQL sorgusunu kullanabilirsiniz.

SELECT osn.memory_node_id AS numa_node_id,
       sc.cpu_id,
       sc.scheduler_id
FROM sys.dm_os_nodes AS osn
INNER JOIN sys.dm_os_schedulers AS sc
ON osn.node_id = sc.parent_node_id
   AND
   sc.scheduler_id < 1048576;

MIN_MEMORY_PERCENT = değer

Kaynak havuzu için ayrılan ve diğer kaynak havuzlarıyla paylaşılabilen en düşük sorgu çalışma alanı belleği miktarını belirtir. değer, varsayılan ayarı 0 olan bir tamsayıdır. değer için izin verilen aralık 0 ile 100 arasındadır.

MAX_MEMORY_PERCENT = değer

Bu kaynak havuzundaki isteklerin kullanabileceği en fazla sorgu çalışma alanı belleği miktarını belirtir. değeri, varsayılan ayarı 100 olan bir tamsayıdır. değer için izin verilen aralık 1 ile 100 arasındadır.

MIN_IOPS_PER_VOLUME = değer

için geçerlidir: SQL Server 2014 (12.x) ve üzeri.

Kaynak havuzu için ayıracak disk birimi başına saniye başına en düşük G/Ç işlemlerini (IOPS) belirtir. değeri için izin verilen aralık 0 ile 2^31-1 arasındadır (2.147.483.647). Havuz için en düşük değeri belirtmek için 0 değerini belirtin. Varsayılan değer 0'dır.

MAX_IOPS_PER_VOLUME = değer

için geçerlidir: SQL Server 2014 (12.x) ve üzeri.

Kaynak havuzuna izin vermek için disk birimi başına saniye başına en fazla G/Ç işlemini (IOPS) belirtir. değeri için izin verilen aralık 0 ile 2^31-1 arasındadır (2.147.483.647). Havuz için bir IOPS sınırını kaldırmak için 0 belirtin. Varsayılan değer 0'dır.

Havuzun MAX_IOPS_PER_VOLUME 0 olarak ayarlanırsa havuz GÇ ile yönetilmiyordur ve diğer havuzlarda MIN_IOPS_PER_VOLUME ayarlanmış olsa bile sistemdeki tüm IOPS'leri alabilir. Bu durumda, bu havuzu GÇ'ye tabi hale getirmek ve diğer havuzlar için mevcut olabilecek IOPS rezervasyonlarına saygı göstermek için bu havuz için MAX_IOPS_PER_VOLUME değerini yüksek bir sayıya (örneğin, en yüksek değer 2^31-1) ayarlamanızı öneririz.

Açıklamalar

Tüm kaynak havuzları için MIN_CPU_PERCENT veya MIN_MEMORY_PERCENT toplamı yüzde 100'ü aşamaz.

MIN_IOPS_PER_VOLUME ve MAX_IOPS_PER_VOLUME saniye başına en düşük ve en yüksek G/Ç sayısını belirtin. GÇ'ler okuma veya yazma işlemleri olabilir ve herhangi bir boyutta olabilir. Bu nedenle, aynı IOPS sınırlarıyla en düşük ve en yüksek GÇ aktarım hızı, iş yükündeki GÇ boyutlarının karışımına bağlı olarak değişebilir.

MAX_CPU_PERCENT ve MAX_MEMORY_PERCENT değerleri sırasıyla MIN_CPU_PERCENT ve MIN_MEMORY_PERCENTdeğerlerine eşit veya daha büyük olmalıdır.

CAP_CPU_PERCENT, havuzla ilişkilendirilmiş iş yüklerinin kullanılabilir durumdaysa MAX_CPU_PERCENT değerinin üzerinde CPU kapasitesi kullanabilmesi, ancak CAP_CPU_PERCENTdeğerinin üzerinde olmamasından MAX_CPU_PERCENT farklıdır. CAP_CPU_PERCENT'den yüksek kısa ani artışlar olsa da, ek CPU kapasitesi kullanılabilir olsa bile iş yükleri uzun süre boyunca CAP_CPU_PERCENT aşamaz.

Kesinleştirilmiş her bileşen (zamanlayıcılar veya NUMA düğümleri) için toplam CPU yüzdesi yüzde 100'ü aşamaz.

Daha fazla bilgi için bkz. resource governor ve resource governor kaynak havuzunu.

Önbelleğe alınmış planlar

Ayarı etkileyen bir planı değiştirdiğinizde, yeni ayar önceden önbelleğe alınmış planlarda yalnızca DBCC FREEPROCCACHE (<pool_name>)yürütüldükten sonra geçerli olur; burada <pool_name> kaynak yöneticisi kaynak havuzunun adıdır.

  • AFFINITY birden çok zamanlayıcıdan tek bir zamanlayıcıya değiştiriyorsanız paralel planlar seri modda çalışabildiğinden DBCC FREEPROCCACHE yürütülmesi gerekmez. Ancak bu tür bir plan, seri plan olarak derlenen bir plandan daha az verimli olabilir.
  • AFFINITY tek bir zamanlayıcıdan birden çok zamanlayıcıya değiştiriyorsanız, DBCC FREEPROCCACHE yürütülmesi gerekmez. Ancak seri planlar paralel olarak çalıştırılamaz, bu nedenle ilgili önbelleğin temizlenmesi yeni planların paralellik kullanılarak derlenmesine olanak tanır.

Uyarı

Birden fazla iş yükü grubuyla ilişkili bir kaynak havuzundan önbelleğe alınmış planların temizlenmesi, <pool_name>tarafından tanımlanan kullanıcı tanımlı kaynak havuzunu kullanan tüm iş yükü gruplarını etkiler.

İzinler

CONTROL SERVER izni gerektirir.

Örnekler

Aşağıdaki örnek, yüzde 25 olarak değiştirilen MAX_CPU_PERCENTdışında default havuzu için tüm geçerli kaynak havuzu ayarlarını tutar.

ALTER RESOURCE POOL [default] WITH (MAX_CPU_PERCENT = 25);

ALTER RESOURCE GOVERNOR RECONFIGURE;

Aşağıdaki örnek, adhocPool kaynak havuzunu aşağıdaki gibi değiştirir:

  • Sırasıyla MIN_CPU_PERCENT ve MIN_MEMORY_PERCENT kullanarak CPU'nun yüzde 10'unun ve sorgu çalışma alanı belleğinin yüzde 5'ini ayırır.
  • MAX_MEMORY_PERCENTkullanarak yüzde 15 sorgu çalışma alanı bellek sınırı ayarlar.
  • Sırasıyla MAX_CPU_PERCENT ve CAP_CPU_PERCENT kullanarak yüzde 20 yumuşak CPU üst sınırı yüzde 30 sabit CPU üst sınırı ayarlar.
  • AFFINITY SCHEDULERkullanarak havuzu iki mantıksal CPU aralığına (0 - 63 ve 128 - 191) ayırır.

için geçerlidir: SQL Server 2012 (11.x) ve üzeri.

ALTER RESOURCE POOL adhocPool
WITH (
     MIN_CPU_PERCENT = 10,
     MAX_CPU_PERCENT = 20,
     CAP_CPU_PERCENT = 30,
     MIN_MEMORY_PERCENT = 5,
     MAX_MEMORY_PERCENT = 15,
     AFFINITY SCHEDULER = (0 TO 63, 128 TO 191)
     );

ALTER RESOURCE GOVERNOR RECONFIGURE;