UBAH KUMPULAN SUMBER DAYA (Transact-SQL)

Berlaku untuk:SQL ServerAzure SQL Managed Instance

Mengubah konfigurasi kumpulan sumber daya Resource Governor yang ada di SQL Server.

Konvensi sintaks transact-SQL

Sintaksis

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]  

Catatan

Untuk melihat sintaks Transact-SQL untuk SQL Server 2014 (12.x) dan versi yang lebih lama, lihat Dokumentasi versi sebelumnya.

Argumen

{ pool_name | "default" }
Adalah nama kumpulan sumber daya yang ditentukan pengguna atau kumpulan sumber daya default yang dibuat saat SQL Server diinstal.

"default" harus diapit oleh tanda kutip ("") atau tanda kurung ([]) ketika digunakan dengan ALTER RESOURCE POOL untuk menghindari konflik dengan DEFAULT, yang merupakan kata yang dicadangkan sistem. Untuk informasi selengkapnya, lihat Pengidentifikasi Database.

Catatan

Grup beban kerja dan kumpulan sumber daya yang telah ditentukan sebelumnya semuanya menggunakan nama huruf kecil, seperti "default". Ini harus diperhitungkan untuk server yang menggunakan kolase peka huruf besar/kecil. Server dengan kolase yang tidak peka huruf besar/kecil, seperti SQL_Latin1_General_CP1_CI_AS, akan memperlakukan "default" dan "Default" sebagai hal yang sama.

MIN_CPU_PERCENT =value
Menentukan bandwidth CPU rata-rata yang dijamin untuk semua permintaan di kumpulan sumber daya ketika ada ketidakcocokan CPU. nilai adalah bilangan bulat dengan pengaturan default 0. Rentang yang diizinkan untuk nilai adalah dari 0 hingga 100.

MAX_CPU_PERCENT =value
Menentukan bandwidth CPU rata-rata maksimum yang akan diterima semua permintaan di kumpulan sumber daya ketika ada ketidakcocokan CPU. nilai adalah bilangan bulat dengan pengaturan default 100. Rentang yang diizinkan untuk nilai adalah dari 1 hingga 100.

CAP_CPU_PERCENT =value
Berlaku untuk: SQL Server 2012 (11.x) dan yang lebih baru.

Menentukan kapasitas CPU maksimum target untuk permintaan di kumpulan sumber daya. nilai adalah bilangan bulat dengan pengaturan default 100. Rentang yang diizinkan untuk nilai adalah dari 1 hingga 100.

Catatan

Karena sifat statistik tata kelola CPU, Anda mungkin melihat lonjakan sesekali melebihi nilai yang ditentukan dalam CAP_CPU_PERCENT.

AFINITAS {SCHEDULER = OTOMATIS | (Scheduler_range_spec) | NUMANODE = (NUMA_node_range_spec)}
Berlaku untuk: SQL Server 2012 (11.x) dan yang lebih baru.

Lampirkan kumpulan sumber daya ke penjadwal tertentu. Nilai defaultnya adalah AUTO.

AFFINITY SCHEDULER = (Scheduler_range_spec) memetakan kumpulan sumber daya ke jadwal SQL Server yang diidentifikasi oleh ID yang diberikan. ID ini memetakan ke nilai di kolom scheduler_id di sys.dm_os_schedulers (Transact-SQL).

Saat Anda menggunakan AFFINITY NAMANODE = (NUMA_node_range_spec), kumpulan sumber daya diafinisiskan ke penjadwal SQL Server yang memetakan ke CPU fisik yang sesuai dengan simpul atau rentang node NUMA yang diberikan. Anda dapat menggunakan kueri Transact-SQL berikut untuk menemukan pemetaan antara konfigurasi NUMA fisik dan ID penjadwal SQL Server.

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 =value
Menentukan jumlah minimum memori yang dicadangkan untuk kumpulan sumber daya ini yang tidak dapat dibagikan dengan kumpulan sumber daya lainnya. nilai adalah bilangan bulat dengan pengaturan default 0. Rentang yang diizinkan untuk nilai adalah dari 0 hingga 100.

MAX_MEMORY_PERCENT =value
Menentukan total memori server yang dapat digunakan oleh permintaan di kumpulan sumber daya ini. nilai adalah bilangan bulat dengan pengaturan default 100. Rentang yang diizinkan untuk nilai adalah dari 1 hingga 100.

MIN_IOPS_PER_VOLUME =value
Berlaku untuk: SQL Server 2014 (12.x) dan yang lebih baru.

Menentukan operasi I/O minimum per detik (IOPS) per volume disk untuk dicadangkan untuk kumpulan sumber daya. Rentang nilai yang diizinkan adalah dari 0 hingga 2^31-1 (2.147.483.647). Tentukan 0 untuk menunjukkan tidak ada ambang minimum untuk kumpulan.

MAX_IOPS_PER_VOLUME =value
Berlaku untuk: SQL Server 2014 (12.x) dan yang lebih baru.

Menentukan operasi I/O maksimum per detik (IOPS) per volume disk untuk memungkinkan kumpulan sumber daya. Rentang nilai yang diizinkan adalah dari 0 hingga 2^31-1 (2.147.483.647). Tentukan 0 untuk mengatur ambang batas tak terbatas untuk kumpulan. Defaultnya adalah 0.

Jika MAX_IOPS_PER_VOLUME untuk kumpulan diatur ke 0, kumpulan tidak diatur sama sekali dan dapat mengambil semua IOPS dalam sistem bahkan jika kumpulan lain memiliki kumpulan MIN_IOPS_PER_VOLUME diatur. Untuk kasus ini, kami sarankan Anda mengatur nilai MAX_IOPS_PER_VOLUME untuk kumpulan ini ke angka tinggi (misalnya, nilai maksimum 2^31-1) jika Anda ingin kumpulan ini diatur untuk IO.

Keterangan

MAX_CPU_PERCENT dan MAX_MEMORY_PERCENT harus lebih besar dari atau sama dengan MIN_CPU_PERCENT dan MIN_MEMORY_PERCENT.

MAX_CPU_PERCENT dapat menggunakan kapasitas CPU di atas nilai MAX_CPU_PERCENT jika tersedia. Meskipun mungkin ada lonjakan berkala di atas CAP_CPU_PERCENT, beban kerja tidak boleh melebihi CAP_CPU_PERCENT untuk jangka waktu yang lama, bahkan ketika kapasitas CPU tambahan tersedia.

Persentase CPU total untuk setiap komponen yang didefinisikan (penjadwal atau simpul NUMA) tidak boleh melebihi 100%.

Saat Anda menjalankan pernyataan DDL, kami sarankan Anda terbiasa dengan status Resource Governor. Untuk informasi selengkapnya, lihat Resource Governor.

Saat mengubah rencana yang memengaruhi pengaturan, pengaturan baru hanya akan berlaku dalam paket yang di-cache sebelumnya setelah menjalankan DBCC FREEPROCCACHE (pool_name), di mana pool_name adalah nama kumpulan sumber daya Resource Governor.

  • Jika Anda mengubah AFFINITY dari beberapa penjadwal ke satu penjadwal, menjalankan DBCC FREEPROCCACHE tidak diperlukan karena paket paralel dapat berjalan dalam mode serial. Namun, mungkin tidak seefisien rencana yang dikompilasi sebagai rencana serial.

  • Jika Anda mengubah AFFINITY dari penjadwal tunggal ke beberapa penjadwal, menjalankan DBCC FREEPROCCACHE tidak diperlukan. Namun, rencana serial tidak dapat berjalan secara paralel, sehingga menghapus cache masing-masing akan memungkinkan rencana baru berpotensi dikompilasi menggunakan paralelisme.

Perhatian

Menghapus paket cache dari kumpulan sumber daya yang terkait dengan lebih dari satu grup beban kerja akan memengaruhi semua grup beban kerja dengan kumpulan sumber daya yang ditentukan pengguna yang diidentifikasi oleh pool_name.

Izin

Memerlukan izin SERVER KONTROL.

Contoh

Contoh berikut menyimpan semua pengaturan kumpulan sumber daya default pada default kumpulan kecuali , MAX_CPU_PERCENTyang diubah menjadi 25.

ALTER RESOURCE POOL "default"  
WITH  
     ( MAX_CPU_PERCENT = 25);  
GO  
ALTER RESOURCE GOVERNOR RECONFIGURE;  
GO  

Dalam contoh berikut, CAP_CPU_PERCENT menetapkan huruf keras ke 80% dan AFFINITY SCHEDULER diatur ke nilai individual 8 dan rentang 12 hingga 16.

Berlaku untuk: SQL Server 2012 (11.x) dan yang lebih baru.

ALTER RESOURCE POOL Pool25  
WITH(   
     MIN_CPU_PERCENT = 5,  
     MAX_CPU_PERCENT = 10,       
     CAP_CPU_PERCENT = 80,  
     AFFINITY SCHEDULER = (8, 12 TO 16),   
     MIN_MEMORY_PERCENT = 5,  
     MAX_MEMORY_PERCENT = 15  
);  
  
GO  
ALTER RESOURCE GOVERNOR RECONFIGURE;  
GO  

Lihat Juga

Resource Governor
BUAT KUMPULAN SUMBER DAYA (Transact-SQL)
DROP RESOURCE POOL (Transact-SQL)
CREATE WORKLOAD GROUP (Transact-SQL)
UBAH GRUP BEBAN KERJA (Transact-SQL)
DROP WORKLOAD GROUP (Transact-SQL)
ALTER RESOURCE GOVERNOR (Transact-SQL)