Bagikan melalui


UBAH KUMPULAN SUMBER DAYA (Transact-SQL)

Berlaku untuk: SQL ServerAzure SQL Managed Instance

Mengubah gubernur sumber daya yang ada konfigurasi kumpulan sumber daya untuk instans Mesin Database.

Catatan

Untuk Azure SQL Managed Instance, Anda harus berada dalam konteks database master untuk memodifikasi konfigurasi gubernur sumber daya.

Konvensi sintaks transact-SQL

Sintaks

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]

Argumen

{ pool_name | [default] }

Adalah nama kumpulan sumber daya yang ditentukan pengguna atau kumpulan sumber daya default bawaan.

default harus dalam tanda kurung siku ([]) atau tanda kutip ("") ketika digunakan dengan ALTER RESOURCE POOL untuk menghindari konflik dengan DEFAULT, yang merupakan kata khusus sistem. Untuk informasi selengkapnya, lihat pengidentifikasi database .

Kumpulan sumber daya bawaan dan grup beban kerja menggunakan semua nama huruf kecil, seperti default. Gunakan default huruf kecil pada server yang menggunakan kolatasi peka huruf besar/kecil. Server dengan kolase tidak sensitif huruf besar/kecil memperlakukan default, Default, dan DEFAULT sebagai nilai yang sama.

MIN_CPU_PERCENT = nilai

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 = nilai

Menentukan bandwidth CPU rata-rata maksimum yang 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 = nilai

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

Menentukan batas keras pada bandwidth CPU yang diterima semua permintaan di kumpulan sumber daya. Membatasi tingkat bandwidth CPU maksimum agar sama dengan nilai yang ditentukan. 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 pendek 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.

Menentukan <scheduler_range_spec> untuk AFFINITY SCHEDULER mendefinisikan kumpulan sumber daya ke penjadwal Mesin Database yang diidentifikasi oleh ID yang diberikan. ID ini memetakan ke nilai di kolom scheduler_id di sys.dm_os_schedulers.

Menentukan <NUMA_node_range_spec> untuk AFFINITY NUMANODE mendefinisikan kumpulan sumber daya ke penjadwal Mesin Database yang memetakan ke CPU logis yang sesuai dengan simpul NUMA yang diberikan atau rentang simpul. Anda dapat menggunakan kueri Transact-SQL berikut untuk menemukan pemetaan antara konfigurasi NUMA fisik dan ID penjadwal Mesin Database.

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 = nilai

Menentukan jumlah minimum memori ruang kerja kueri yang dicadangkan untuk kumpulan sumber daya 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 = nilai

Menentukan jumlah maksimum memori ruang kerja kueri yang meminta dalam kumpulan sumber daya ini dapat digunakan. nilai adalah bilangan bulat dengan pengaturan default 100. Rentang yang diizinkan untuk nilai adalah dari 1 hingga 100.

MIN_IOPS_PER_VOLUME = nilai

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 minimum untuk kumpulan. Defaultnya adalah 0.

MAX_IOPS_PER_VOLUME = nilai

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 menghapus batas IOPS untuk kumpulan. Defaultnya adalah 0.

Jika MAX_IOPS_PER_VOLUME untuk kumpulan diatur ke 0, kumpulan tidak diatur IO 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 menetapkan nilai MAX_IOPS_PER_VOLUME untuk kumpulan ini ke angka tinggi (misalnya, nilai maksimum 2^31-1) untuk membuat kumpulan ini diatur IO dan untuk menghormati reservasi IOPS yang mungkin ada untuk kumpulan lain.

Keterangan

Jumlah MIN_CPU_PERCENT atau MIN_MEMORY_PERCENT untuk semua kumpulan sumber daya tidak boleh melebihi 100 persen.

MIN_IOPS_PER_VOLUME dan MAX_IOPS_PER_VOLUME menentukan IO minimum dan maksimum per detik. IO dapat berupa baca atau tulis, dan dapat dalam ukuran apa pun. Oleh karena itu, dengan batas IOPS yang sama, throughput IO minimum dan maksimum dapat bervariasi tergantung pada campuran ukuran IO dalam beban kerja.

Nilai untuk MAX_CPU_PERCENT dan MAX_MEMORY_PERCENT harus lebih besar dari atau sama dengan nilai untuk MIN_CPU_PERCENT dan MIN_MEMORY_PERCENT, masing-masing.

CAP_CPU_PERCENT berbeda dari MAX_CPU_PERCENT dalam beban kerja yang terkait dengan kumpulan dapat menggunakan kapasitas CPU di atas nilai MAX_CPU_PERCENT jika tersedia, tetapi tidak di atas nilai CAP_CPU_PERCENT. Meskipun mungkin ada lonjakan pendek yang lebih tinggi dari 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 difinisikan (penjadwal atau node NUMA) tidak boleh melebihi 100 persen.

Untuk informasi selengkapnya, lihat gubernur sumber daya dan kumpulan sumber daya gubernur sumber daya .

Paket yang di-cache

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

  • Jika Anda mengubah AFFINITY dari beberapa penjadwal ke satu penjadwal, menjalankan DBCC FREEPROCCACHE tidak diperlukan karena paket paralel dapat berjalan dalam mode serial. Namun, rencana seperti itu mungkin kurang efisien daripada rencana yang dikompilasi sebagai rencana serial.
  • Jika Anda mengubah AFFINITY dari satu penjadwal ke beberapa penjadwal, menjalankan DBCC FREEPROCCACHE tidak diperlukan. Namun, rencana serial tidak dapat berjalan secara paralel, jadi menghapus cache masing-masing memungkinkan rencana baru berpotensi dikompilasi menggunakan paralelisme.

Peringatan

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

Izin

Memerlukan izin CONTROL SERVER.

Contoh

Contoh berikut menyimpan semua pengaturan kumpulan sumber daya saat ini untuk kumpulan default, kecuali untuk MAX_CPU_PERCENT, yang diubah menjadi 25 persen.

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

ALTER RESOURCE GOVERNOR RECONFIGURE;

Contoh berikut memodifikasi kumpulan sumber daya adhocPool sebagai berikut:

  • Mencadangkan 10 persen CPU dan 5 persen memori ruang kerja kueri menggunakan MIN_CPU_PERCENT dan MIN_MEMORY_PERCENT masing-masing.
  • Mengatur batas memori ruang kerja kueri 15 persen menggunakan MAX_MEMORY_PERCENT.
  • Menetapkan batas CPU lunak 20 persen dengan batas CPU keras 30 persen menggunakan MAX_CPU_PERCENT dan CAP_CPU_PERCENT masing-masing.
  • Afinisis kumpulan ke dua rentang CPU logis (0 hingga 63 dan 128 hingga 191) menggunakan AFFINITY SCHEDULER.

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

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;