Megosztás a következőn keresztül:


ERŐFORRÁSKÉSZLET LÉTREHOZÁSA (Transact-SQL)

A következőkre vonatkozik:SQL ServerFelügyelt Azure SQL-példány

Létrehoz egy erőforrás-vezérlőt erőforráskészletet. Az erőforráskészlet egy adatbázismotor-példány fizikai erőforrásainak (CPU, memória és I/O) egy részhalmazát jelöli. Az erőforrás-kormányzó lehetővé teszi a kiszolgálói erőforrások erőforráskészletek közötti lefoglalását vagy korlátozását, legfeljebb 64 készletig.

Az erőforrás-vezérlő nem érhető el az SQL Server minden kiadásában. Az SQL Server kiadásai által támogatott funkciók listáját az SQL Server 2022Kiadásai és támogatott funkciói című témakörben találja.

Jegyzet

Felügyelt Azure SQL-példány esetén az erőforrás-vezérlő konfigurációjának módosításához a master adatbázis környezetében kell lennie.

Transact-SQL szintaxis konvenciói

Szintaxis

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]

Érvek

pool_name

Az erőforráskészlet felhasználó által definiált neve. pool_name alfanumerikus, legfeljebb 128 karakter hosszúságú lehet, egyedinek kell lennie egy adatbázismotor-példányon belül, és meg kell felelnie adatbázis-azonosítókszabályainak.

MIN_CPU_PERCENT = érték

Megadja az erőforráskészletben lévő összes kérés garantált átlagos PROCESSZOR-sávszélességét, amikor processzor-versengés történik. érték egy 0 alapértelmezett beállítású egész szám. Az érték megengedett tartománya 0 és 100 között lehet.

MAX_CPU_PERCENT = érték

Megadja, hogy az erőforráskészlet összes kérése maximális átlagos processzorhasználati sávszélességet kap-e, amikor cpu-versengés történik. érték egy 100 alapértelmezett beállítású egész szám. Az érték megengedett tartománya 1 és 100 között lehet.

CAP_CPU_PERCENT = érték

A következővonatkozik: SQL Server 2012 (11.x) és újabb.

Meghatározza az erőforráskészlet összes kérése által fogadott cpu-sávszélesség kemény korlátját. A maximális cpu-sávszélesség-szint a megadott értékkel megegyezőre korlátozza. érték egy 100 alapértelmezett beállítású egész szám. Az érték megengedett tartománya 1 és 100 között lehet.

Jegyzet

A CPU-szabályozás statisztikai jellege miatt előfordulhat, hogy a CAP_CPU_PERCENT.

AFFINITÁS {SCHEDULER = AUTO | ( <scheduler_range_spec> ) | NUMANODE = (<NUMA_node_range_spec>)}

A következővonatkozik: SQL Server 2012 (11.x) és újabb.

Csatolja az erőforráskészletet adott ütemezőkhöz. Az alapértelmezett érték a AUTO.

A AFFINITY SCHEDULER<scheduler_range_spec> megadása affinitja az erőforráskészletet a megadott azonosítók által azonosított adatbázismotor-ütemezőkhöz. Ezek az azonosítók a sys.dm_os_schedulersscheduler_id oszlopában lévő értékekhez vannak megfeleltetve.

A AFFINITY NUMANODE<NUMA_node_range_spec> megadásával az erőforráskészletet az adatbázismotor ütemezőihez rendeli, amelyek az adott NUMA-csomópontnak vagy csomóponttartománynak megfelelő logikai CPU-khoz lesznek megfeleltetve. Az alábbi Transact-SQL lekérdezés segítségével felderítheti a fizikai NUMA-konfiguráció és az adatbázismotor ütemezőazonosítói közötti megfeleltetést.

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 = érték

Megadja az erőforráskészlet számára fenntartott lekérdezési munkaterület minimális memóriáját, amely nem osztható meg más erőforráskészletekkel. érték egy 0 alapértelmezett beállítású egész szám. A érték megengedett tartománya 0 és 100 között van.

MAX_MEMORY_PERCENT = érték

Megadja, hogy az erőforráskészletben lévő kérések maximálisan mennyi lekérdezési munkaterület memóriát használhatnak. érték egy 100 alapértelmezett beállítású egész szám. Az érték megengedett tartománya 1 és 100 között lehet.

MIN_IOPS_PER_VOLUME = érték

A következővonatkozik: SQL Server 2014 (12.x) és újabb.

Megadja az erőforráskészlethez lefoglalandó lemezkötetenkénti minimális I/O-műveleteket (IOPS). Az érték megengedett tartománya 0 és 2^31–1 között van (2 147 483 647). Adjon meg 0 értéket a készlet minimális számának megadásához. Az alapértelmezett érték 0.

MAX_IOPS_PER_VOLUME = érték

A következővonatkozik: SQL Server 2014 (12.x) és újabb.

Megadja az erőforráskészlet engedélyezéséhez másodpercenkénti maximális I/O-műveleteket (IOPS) lemezkötetenként. Az érték megengedett tartománya 0 és 2^31–1 között van (2 147 483 647). A készlet IOPS-korlátjának eltávolításához adja meg a 0 értéket. Az alapértelmezett érték 0.

Ha egy készlet MAX_IOPS_PER_VOLUME 0 értékre van állítva, a készlet egyáltalán nem IO-szabályozás alatt áll, és akkor is elviheti a rendszerben lévő összes IOPS-t, ha más készletek MIN_IOPS_PER_VOLUME vannak beállítva. Ebben az esetben azt javasoljuk, hogy állítsa a készlet MAX_IOPS_PER_VOLUME értékét magas számra (például a maximális 2^31-1 értékre), hogy ez a készlet IO-szabályozással legyen szabályozva, és hogy tiszteletben tarthassa a többi készlet esetében esetleg meglévő IOPS-foglalásokat.

Megjegyzések

Az összes erőforráskészlethez tartozó MIN_CPU_PERCENT vagy MIN_MEMORY_PERCENT összege nem haladhatja meg a 100%-ot.

MIN_IOPS_PER_VOLUME és MAX_IOPS_PER_VOLUME adja meg a másodpercenkénti minimális és maximális I/O-t. Az I/O-k lehetnek olvasások vagy írások, és bármilyen méretűek lehetnek. Ezért ugyanazokkal az IOPS-korlátokkal a minimális és maximális I/O-átviteli sebesség a számítási feladat I/O-méreteinek keverékétől függően változhat.

A MAX_CPU_PERCENT és a MAX_MEMORY_PERCENT értékeinek nagyobbnak vagy egyenlőnek kell lenniük a MIN_CPU_PERCENT és MIN_MEMORY_PERCENTértékeinél.

CAP_CPU_PERCENT abban különbözik MAX_CPU_PERCENT, hogy a készlethez társított számítási feladatok a rendelkezésre álló MAX_CPU_PERCENT értéknél nagyobb processzorkapacitást használhatnak, de nem a CAP_CPU_PERCENTértéke felett. Bár előfordulhat, hogy a CAP_CPU_PERCENT-nél rövidebb kiugró csúcsok is előfordulhatnak, a számítási feladatok hosszabb ideig nem haladhatják meg a CAP_CPU_PERCENT, még akkor sem, ha további processzorkapacitás áll rendelkezésre.

Az egyes affinitásos összetevők (ütemező(k) vagy NUMA-csomópont(ok)) teljes processzorszázaléka nem haladhatja meg a 100 százalékot.

További információ: Erőforrás-kormányzó és Erőforrás-vezérlő erőforráskészlet.

Engedélyek

A CONTROL SERVER engedélyre van szükség.

Példák

További erőforrás-vezérlőkonfigurációs példákért lásd erőforrás-vezérlő konfigurációs példáit és ajánlott eljárásait.

Erőforráskészlet létrehozása

Ez a példa létrehozott egy bigPoolnevű erőforráskészletet. Ez a készlet az alapértelmezett erőforrás-vezérlőbeállításokat használja.

CREATE RESOURCE POOL bigPool;
ALTER RESOURCE GOVERNOR RECONFIGURE;

CPU- és memóriafoglalások és -korlátok beállítása

Ez a példa a adhocPool erőforráskészletet a következőképpen konfigurálja:

  • A processzor 10 százalékát, a lekérdezési munkaterület memóriájának 5 százalékát lefoglalja MIN_CPU_PERCENT és MIN_MEMORY_PERCENT használatával.
  • 15 százalékos lekérdezési munkaterület memóriakorlátját állítja be a MAX_MEMORY_PERCENThasználatával.
  • 20 százalékos puha CPU-korlátot állít be 30 százalékos kemény cpu-korláttal MAX_CPU_PERCENT és CAP_CPU_PERCENT használatával.
  • A készletet két logikai CPU-tartományhoz (0–63 és 128–191) affinitja AFFINITY SCHEDULERhasználatával.

A következővonatkozik: SQL Server 2012 (11.x) és újabb.

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-foglalás és -korlát beállítása

Ez a példa kötetenként 200 IOPS-t foglal le a készlethez MIN_IOPS_PER_VOLUMEhasználatával, és a kötetenkénti IOPS-t 1000-re korlátozza a MAX_IOPS_PER_VOLUMEhasználatával. Ezek az értékek szabályozzák az erőforráskészletet használó kérelmekhez elérhető összes fizikai I/O olvasási és írási műveletet.

A következővonatkozik: SQL Server 2014 (12.x) és újabb.

CREATE RESOURCE POOL PoolAdmin
WITH (
     MIN_IOPS_PER_VOLUME = 200,
     MAX_IOPS_PER_VOLUME = 1000
     );