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.
Yerleşik kaynak havuzları ve iş yükü grupları, default
gibi 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
, Default
ve 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.
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.
Not
CPU idaresinin istatistiksel yapısı nedeniyle, CAP_CPU_PERCENT
iç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.
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.
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.
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_PERCENT
değ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_PERCENT
değ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
Ö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ğindenDBCC 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_PERCENT
dışı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
veMIN_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_PERCENT
kullanarak yüzde 15 sorgu çalışma alanı bellek sınırı ayarlar. - Sırasıyla
MAX_CPU_PERCENT
veCAP_CPU_PERCENT
kullanarak yüzde 20 yumuşak CPU üst sınırı yüzde 30 sabit CPU üst sınırı ayarlar. -
AFFINITY SCHEDULER
kullanarak 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;
İlgili içerik
- resource governor
- Resource governor kaynak havuzunu
- Kaynak havuzu ayarlarını değiştirme
- KAYNAK HAVUZU OLUŞTURMA
- DROP RESOURCE POOL
- CREATE WORKLOAD GROUP
- ALTER İŞ YÜKÜ GRUBU
- DROP İŞ YÜKÜ GRUBU
- ALTER RESOURCE GOVERNOR