CREATE RESOURCE POOL (Transact-SQL)
Şunlar için geçerlidir:SQL Server
Azure SQL Yönetilen Örneği
Kaynak havuzu bir
Resource Governor, SQL Server'ın her sürümünde kullanılamaz. SQL Server sürümleri tarafından desteklenen özelliklerin listesi için bkz. Sürümleri ve SQL Server 2022'nin desteklenen özellikleri.
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
CREATE RESOURCE POOL pool_name
[ 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
Kaynak havuzunun kullanıcı tanımlı adıdı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
İzinler
CONTROL SERVER
izni gerektirir.
Örnekler
Ek resource governor yapılandırma örnekleri için bkz. Resource governor yapılandırma örnekleri veen iyi yöntemler.
Kaynak havuzu oluşturma
Bu örnek, bigPool
adlı bir kaynak havuzu oluşturmuştur. Bu havuz varsayılan kaynak yöneticisi ayarlarını kullanır.
CREATE RESOURCE POOL bigPool;
ALTER RESOURCE GOVERNOR RECONFIGURE;
CPU ve bellek ayırmalarını ve sınırlarını ayarlama
Bu örnekte adhocPool
kaynak havuzu aşağıdaki gibi yapılandırılır:
- 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.
CREATE 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)
);
IOPS rezervasyon ve sınırını ayarlama
Bu örnek, MIN_IOPS_PER_VOLUME
kullanarak havuz için birim başına 200 IOPS ayırır ve MAX_IOPS_PER_VOLUME
kullanarak birim başına IOPS'yi 1000 ile sınırlar. Bu değerler, kaynak havuzunu kullanan istekler için kullanılabilen toplam fiziksel G/Ç okuma ve yazma işlemlerini yönetir.
için geçerlidir: SQL Server 2014 (12.x) ve üzeri.
CREATE RESOURCE POOL PoolAdmin
WITH (
MIN_IOPS_PER_VOLUME = 200,
MAX_IOPS_PER_VOLUME = 1000
);
İlgili içerik
- Öğreticisi: Kaynak yöneticisi yapılandırma örnekleri ve en iyi yöntemler
- resource governor
- Resource governor kaynak havuzunu
- Kaynak havuzu oluşturma
- ALTER KAYNAK HAVUZU
- DROP RESOURCE POOL
- CREATE WORKLOAD GROUP
- ALTER İŞ YÜKÜ GRUBU
- DROP İŞ YÜKÜ GRUBU
- ALTER RESOURCE GOVERNOR