Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Pilih produk
Di baris berikut, pilih nama produk yang Anda minati, dan hanya informasi produk yang ditampilkan.
* SQL Server *
Azure Synapse
Analitik
SQL Server dan SQL Managed Instance
Membuat grup beban kerja gubernur sumber daya dan mengaitkan grup beban kerja dengan kumpulan sumber daya gubernur sumber daya.
Gubernur sumber daya tidak tersedia di setiap edisi SQL Server. Untuk daftar fitur yang didukung oleh edisi SQL Server, lihat Edisi dan fitur yang didukung SQL Server 2022.
Catatan
Untuk mengubah konfigurasi gubernur sumber daya di Azure SQL Managed Instance, Anda harus berada dalam konteks master database pada replika utama.
Konvensi sintaks transact-SQL.
Sintaks
CREATE WORKLOAD GROUP group_name
[ WITH
( [ IMPORTANCE = { LOW | MEDIUM | HIGH } ]
[ [ , ] REQUEST_MAX_MEMORY_GRANT_PERCENT = value ]
[ [ , ] REQUEST_MAX_CPU_TIME_SEC = value ]
[ [ , ] REQUEST_MEMORY_GRANT_TIMEOUT_SEC = value ]
[ [ , ] MAX_DOP = value ]
[ [ , ] GROUP_MAX_REQUESTS = value ]
[ [ , ] GROUP_MAX_TEMPDB_DATA_MB = value ]
[ [ , ] GROUP_MAX_TEMPDB_DATA_PERCENT = value ] )
]
[ USING {
[ pool_name | [default] ]
[ [ , ] EXTERNAL external_pool_name | [ default ] ]
} ]
[ ; ]
Argumen
group_name
Nama yang ditentukan pengguna untuk grup beban kerja. group_name bersifat alfanumerik, dapat mencapai 128 karakter, harus unik dalam instans Mesin Database, dan harus mematuhi aturan untuk pengidentifikasi Database .
KEPENTINGAN = { RENDAH | SEDANG | TINGGI }
Menentukan kepentingan relatif permintaan dalam grup beban kerja. Nilai defaultnya adalah MEDIUM.
IMPORTANCE bersifat lokal untuk kumpulan sumber daya yang berisi grup beban kerja. Grup beban kerja dengan kepentingan yang berbeda di dalam kumpulan sumber daya yang sama saling memengaruhi, tetapi tidak memengaruhi grup beban kerja di kumpulan sumber daya lain.
REQUEST_MAX_MEMORY_GRANT_PERCENT = nilai
Menentukan jumlah maksimum memori ruang kerja kueri yang dapat diambil satu permintaan dari kumpulan.
nilai adalah persentase ukuran kumpulan sumber daya yang ditentukan oleh MAX_MEMORY_PERCENT. Nilai default adalah 25.
Di SQL Server 2017 (14.x) dan yang lebih lama, nilai adalah bilangan bulat dan rentang yang diizinkan adalah dari 1 hingga 100.
Dimulai dengan SQL Server 2019 (15.x), nilainya bisa pecahan menggunakan jenis data float. Rentang yang diizinkan adalah dari 0 hingga 100.
Penting
Jumlah yang ditentukan hanya mengacu pada memori ruang kerja kueri yang diperoleh melalui pemberian memori kueri.
Tidak disarankan untuk mengatur nilai terlalu besar (misalnya, lebih besar dari 70) karena server mungkin tidak dapat menyisihkan memori bebas yang cukup untuk kueri bersamaan lainnya. Ini dapat menyebabkan waktu pemberian memori habis kesalahan 8645.
Mengatur nilai ke 0 atau nilai kecil mungkin mencegah kueri dengan operator yang memerlukan memori ruang kerja, seperti sort dan hash, agar tidak berjalan dalam grup beban kerja yang ditentukan pengguna. Jika persyaratan memori kueri melebihi batas yang ditentukan oleh parameter ini, perilaku berikut terjadi:
- Untuk grup beban kerja yang ditentukan pengguna, server mencoba mengurangi tingkat paralelisme (DOP) permintaan (kueri) hingga persyaratan memori berada di bawah batas, atau sampai DOP sama dengan 1. Jika persyaratan memori kueri masih lebih besar dari batas, kesalahan 8657 terjadi dan kueri gagal.
- Untuk grup beban kerja
internaldandefault, server mengizinkan kueri untuk mendapatkan memori yang diperlukan.
Dalam kedua kasus, kesalahan 8645 mungkin terjadi jika server memiliki memori fisik yang tidak mencukup.
REQUEST_MAX_CPU_TIME_SEC = nilai
Menentukan jumlah maksimum waktu CPU, dalam detik, yang dapat digunakan permintaan batch. nilai harus 0 atau bilangan bulat positif. Pengaturan default untuk nilai adalah 0, yang berarti tidak terbatas.
Ketika waktu CPU maksimum terlampaui, peristiwa cpu_threshold_exceeded diperluas dan peristiwa pelacakan dihasilkan. Untuk informasi selengkapnya, lihat Ambang batas CPU melebihi kelas peristiwa.
Di Azure SQL Managed Instance, ketika waktu CPU maksimum terlampaui, gubernur sumber daya membatalkan permintaan dengan kesalahan 10961.
Di SQL Server, gubernur sumber daya tidak membatalkan permintaan secara default. Namun, dimulai dengan SQL Server 2016 (13.x) SP2 dan SQL Server 2017 (14.x) CU3, gubernur sumber daya membatalkan permintaan dengan kesalahan 10961 ketika bendera pelacakan 2422 diaktifkan dan waktu CPU maksimum terlampaui.
Catatan
Interval deteksi untuk penggunaan waktu CPU adalah lima detik. Peristiwa dihasilkan jika kueri melebihi batas yang ditentukan setidaknya lima detik. Namun, jika kueri melebihi ambang yang ditentukan kurang dari lima detik, deteksinya mungkin terlewatkan tergantung pada waktu kueri dan waktu pembersihan deteksi terakhir.
REQUEST_MEMORY_GRANT_TIMEOUT_SEC = nilai
Menentukan waktu maksimum, dalam detik, bahwa kueri dapat menunggu peruntukan memori dari memori ruang kerja kueri tersedia. nilai harus 0 atau bilangan bulat positif. Pengaturan default untuk nilai, 0, menggunakan perhitungan internal berdasarkan biaya kueri untuk menentukan waktu maksimum.
Kueri tidak selalu gagal saat waktu pemberian memori habis tercapai. Kueri hanya gagal jika ada terlalu banyak kueri bersamaan yang berjalan. Jika tidak, kueri mungkin hanya mendapatkan peruntukan memori minimum, yang mengakibatkan berkurangnya performa kueri.
MAX_DOP = nilai
Menentukan tingkat paralelisme maksimum (MAXDOP) untuk eksekusi kueri paralel. Rentang yang diizinkan untuk nilai adalah dari 0 hingga 64. Pengaturan default untuk nilai, 0, menggunakan pengaturan global.
Untuk informasi selengkapnya, lihat MAXDOP.
GROUP_MAX_REQUESTS = nilai
Menentukan jumlah maksimum permintaan simultan yang diizinkan untuk dijalankan dalam grup beban kerja. nilai harus 0 atau bilangan bulat positif. Pengaturan default untuk nilai adalah 0, dan memungkinkan permintaan tanpa batas. Ketika permintaan bersamaan maksimum tercapai, sesi dalam grup tersebut dapat dibuat, tetapi ditempatkan dalam status tunggu hingga jumlah permintaan bersamaan turun di bawah nilai yang ditentukan.
GROUP_MAX_TEMPDB_DATA_MB = nilai
Menentukan jumlah maksimum ruang yang dapat dikonsumsi grup beban kerja dalam tempdb file data, dalam megabyte.
nilai harus 0, bilangan positif, atau NULL. Nilai pecahan diperbolehkan.
Ketika nilainya adalah 0, tempdb alokasi ruang menurut sesi dalam grup beban kerja tidak diizinkan. Saat nilai tidak ditetapkan, gubernur sumber daya tidak membatasi tempdb konsumsi ruang oleh grup beban kerja.
Batasnya adalah untuk total ruang yang digunakan tempdb oleh semua sesi dalam grup beban kerja.
Ketika permintaan yang berjalan dalam grup beban kerja mencoba meningkatkan tempdb konsumsi ruang data oleh grup beban kerja di atas batas yang ditetapkan oleh GROUP_MAX_TEMPDB_DATA_MB, gubernur sumber daya membatalkan permintaan dengan kesalahan 1138. Untuk informasi selengkapnya, lihat Tata kelola sumber daya ruang Tempdb.
GROUP_MAX_TEMPDB_DATA_PERCENT = nilai
Menentukan jumlah maksimum ruang yang dapat dikonsumsi grup beban kerja dalam tempdb file data, dalam persentase ukuran maksimum tempdb . Untuk definisi ukuran maksimum tempdb , lihat Konfigurasi batas persen.
harus berada dalam kisaran dari 0 hingga 100, atau NULL. Nilai pecahan diperbolehkan.
Ketika nilainya adalah 0, tempdb alokasi ruang menurut sesi dalam grup beban kerja tidak diizinkan. Saat nilai tidak ditetapkan, gubernur sumber daya tidak membatasi tempdb konsumsi ruang oleh grup beban kerja. Ketika GROUP_MAX_TEMPDB_DATA_MB diatur, atau ketika tempdb ukuran maksimum tidak ditentukan, GROUP_MAX_TEMPDB_DATA_PERCENT tidak berpengaruh.
Batasnya adalah untuk total ruang yang digunakan tempdb oleh semua sesi dalam grup beban kerja.
Ketika permintaan yang berjalan dalam grup beban kerja mencoba meningkatkan tempdb konsumsi ruang data oleh grup beban kerja di atas batas yang ditetapkan oleh GROUP_MAX_TEMPDB_DATA_PERCENT, gubernur sumber daya membatalkan permintaan dengan kesalahan 1138. Untuk informasi selengkapnya, lihat Tata kelola sumber daya ruang Tempdb.
MENGGUNAKAN { pool_name | [default] }
Mengaitkan grup beban kerja dengan kumpulan sumber daya yang ditentukan pengguna yang diidentifikasi oleh pool_name, atau dengan kumpulan sumber daya default. Jika pool_name tidak disediakan, atau jika argumen USING tidak ditentukan, grup beban kerja dikaitkan dengan kumpulan default bawaan.
default adalah kata yang dipesan dan ketika ditentukan dalam USING, harus diapit dalam tanda kurung ([]) atau tanda kutip ("").
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.
external_pool_name EKSTERNAL | [ default ]
Berlaku untuk: SQL Server 2016 (13.x) dan yang lebih baru.
Grup beban kerja dapat menentukan kumpulan sumber daya eksternal. Anda dapat menentukan grup beban kerja dan mengaitkannya dengan dua kumpulan:
- Kumpulan sumber daya untuk beban kerja Mesin Database.
- Kumpulan sumber daya eksternal untuk proses eksternal. Untuk informasi selengkapnya, lihat sp_execute_external_script.
Keterangan
Untuk informasi selengkapnya, lihat gubernur sumber daya
MAXDOP
Untuk kueri tertentu, MAXDOP efektif ditentukan sebagai berikut:
-
MAXDOPsebagai petunjuk kueri dihormati selama tidak melebihi pengaturanMAX_DOPgrup beban kerja. -
MAXDOPsebagai petunjuk kueri selalu mengambil alih konfigurasi servermax degree of parallelism. Untuk informasi selengkapnya, lihat konfigurasi server : tingkat paralelisme maksimum. - Grup beban kerja
MAX_DOPmengambil alih konfigurasi servermax degree of parallelismdan konfigurasi terlingkup databaseMAXDOP.
Batas MAXDOP diatur per tugas. Ini bukan batas per permintaan atau per kueri. Selama eksekusi kueri paralel, satu permintaan dapat menghasilkan beberapa tugas yang ditetapkan ke penjadwal . Untuk informasi selengkapnya, lihat panduan Alur dan arsitektur tugas.
Saat kueri ditandai sebagai serial pada waktu kompilasi (MAXDOP = 1), kueri tidak dapat dijalankan dengan paralelisme pada waktu proses terlepas dari grup beban kerja atau pengaturan konfigurasi server. Setelah MAXDOP ditentukan untuk kueri, kueri hanya dapat diturunkan karena tekanan memori. Konfigurasi ulang grup beban kerja tidak memengaruhi kueri yang menunggu dalam antrean peruntukan memori.
Pembuatan indeks
Untuk alasan performa, pembuatan indeks diizinkan untuk menggunakan lebih banyak ruang kerja memori daripada yang awalnya diberikan. Gubernur sumber daya mendukung penanganan khusus ini. Namun, pemberian awal dan pemberian memori tambahan dibatasi oleh grup beban kerja dan pengaturan kumpulan sumber daya.
Memori yang digunakan untuk membuat indeks nonaligned pada tabel yang dipartisi sebanding dengan jumlah partisi yang terlibat. Jika total memori yang diperlukan melebihi batas per kueri yang diberlakukan oleh pengaturan grup beban kerja REQUEST_MAX_MEMORY_GRANT_PERCENT, pembuatan indeks mungkin gagal. Karena grup beban kerja default memungkinkan kueri melebihi batas per kueri dengan memori minimum yang diperlukan untuk memulai kompatibilitas mundur, Anda mungkin dapat membuat indeks yang sama menggunakan grup beban kerja default jika kumpulan sumber daya default memiliki memori total yang cukup.
Izin
Memerlukan izin CONTROL SERVER.
Contoh
Membuat grup beban kerja bernama newReports di kumpulan sumber daya default, dan membatasi pemberian memori maksimum, waktu CPU maksimum untuk permintaan, dan MAXDOP.
CREATE WORKLOAD GROUP newReports
WITH (
REQUEST_MAX_MEMORY_GRANT_PERCENT = 2.5,
REQUEST_MAX_CPU_TIME_SEC = 100,
MAX_DOP = 4
)
USING [default];
Konten terkait
- tutorial : Contoh konfigurasi gubernur sumber daya dan praktik terbaik
- Gubernur sumber daya
- grup beban kerja gubernur sumber daya
- Membuat grup beban kerja
- UBAH GRUP BEBAN KERJA (Transact-SQL)
- DROP WORKLOAD GROUP (Transact-SQL)
- BUAT KUMPULAN SUMBER DAYA (Transact-SQL)
- UBAH KUMPULAN SUMBER DAYA (Transact-SQL)
- DROP RESOURCE POOL (Transact-SQL)
- UBAH PENGELOLA SUMBER DAYA (Transact-SQL)
- grup beban kerja sys.resource governor
- sys.dm_resource_governor_workload_groups
* Instans Terkelola SQL *
Azure Synapse
Analitik
SQL Server dan SQL Managed Instance
Membuat grup beban kerja gubernur sumber daya dan mengaitkan grup beban kerja dengan kumpulan sumber daya gubernur sumber daya.
Gubernur sumber daya tidak tersedia di setiap edisi SQL Server. Untuk daftar fitur yang didukung oleh edisi SQL Server, lihat Edisi dan fitur yang didukung SQL Server 2022.
Catatan
Untuk mengubah konfigurasi gubernur sumber daya di Azure SQL Managed Instance, Anda harus berada dalam konteks master database pada replika utama.
Konvensi sintaks transact-SQL.
Sintaks
CREATE WORKLOAD GROUP group_name
[ WITH
( [ IMPORTANCE = { LOW | MEDIUM | HIGH } ]
[ [ , ] REQUEST_MAX_MEMORY_GRANT_PERCENT = value ]
[ [ , ] REQUEST_MAX_CPU_TIME_SEC = value ]
[ [ , ] REQUEST_MEMORY_GRANT_TIMEOUT_SEC = value ]
[ [ , ] MAX_DOP = value ]
[ [ , ] GROUP_MAX_REQUESTS = value ]
[ [ , ] GROUP_MAX_TEMPDB_DATA_MB = value ]
[ [ , ] GROUP_MAX_TEMPDB_DATA_PERCENT = value ] )
]
[ USING {
[ pool_name | [default] ]
[ [ , ] EXTERNAL external_pool_name | [ default ] ]
} ]
[ ; ]
Argumen
group_name
Nama yang ditentukan pengguna untuk grup beban kerja. group_name bersifat alfanumerik, dapat mencapai 128 karakter, harus unik dalam instans Mesin Database, dan harus mematuhi aturan untuk pengidentifikasi Database .
KEPENTINGAN = { RENDAH | SEDANG | TINGGI }
Menentukan kepentingan relatif permintaan dalam grup beban kerja. Nilai defaultnya adalah MEDIUM.
IMPORTANCE bersifat lokal untuk kumpulan sumber daya yang berisi grup beban kerja. Grup beban kerja dengan kepentingan yang berbeda di dalam kumpulan sumber daya yang sama saling memengaruhi, tetapi tidak memengaruhi grup beban kerja di kumpulan sumber daya lain.
REQUEST_MAX_MEMORY_GRANT_PERCENT = nilai
Menentukan jumlah maksimum memori ruang kerja kueri yang dapat diambil satu permintaan dari kumpulan.
nilai adalah persentase ukuran kumpulan sumber daya yang ditentukan oleh MAX_MEMORY_PERCENT. Nilai default adalah 25.
Di SQL Server 2017 (14.x) dan yang lebih lama, nilai adalah bilangan bulat dan rentang yang diizinkan adalah dari 1 hingga 100.
Dimulai dengan SQL Server 2019 (15.x), nilainya bisa pecahan menggunakan jenis data float. Rentang yang diizinkan adalah dari 0 hingga 100.
Penting
Jumlah yang ditentukan hanya mengacu pada memori ruang kerja kueri yang diperoleh melalui pemberian memori kueri.
Tidak disarankan untuk mengatur nilai terlalu besar (misalnya, lebih besar dari 70) karena server mungkin tidak dapat menyisihkan memori bebas yang cukup untuk kueri bersamaan lainnya. Ini dapat menyebabkan waktu pemberian memori habis kesalahan 8645.
Mengatur nilai ke 0 atau nilai kecil mungkin mencegah kueri dengan operator yang memerlukan memori ruang kerja, seperti sort dan hash, agar tidak berjalan dalam grup beban kerja yang ditentukan pengguna. Jika persyaratan memori kueri melebihi batas yang ditentukan oleh parameter ini, perilaku berikut terjadi:
- Untuk grup beban kerja yang ditentukan pengguna, server mencoba mengurangi tingkat paralelisme (DOP) permintaan (kueri) hingga persyaratan memori berada di bawah batas, atau sampai DOP sama dengan 1. Jika persyaratan memori kueri masih lebih besar dari batas, kesalahan 8657 terjadi dan kueri gagal.
- Untuk grup beban kerja
internaldandefault, server mengizinkan kueri untuk mendapatkan memori yang diperlukan.
Dalam kedua kasus, kesalahan 8645 mungkin terjadi jika server memiliki memori fisik yang tidak mencukup.
REQUEST_MAX_CPU_TIME_SEC = nilai
Menentukan jumlah maksimum waktu CPU, dalam detik, yang dapat digunakan permintaan batch. nilai harus 0 atau bilangan bulat positif. Pengaturan default untuk nilai adalah 0, yang berarti tidak terbatas.
Ketika waktu CPU maksimum terlampaui, peristiwa cpu_threshold_exceeded diperluas dan peristiwa pelacakan dihasilkan. Untuk informasi selengkapnya, lihat Ambang batas CPU melebihi kelas peristiwa.
Di Azure SQL Managed Instance, ketika waktu CPU maksimum terlampaui, gubernur sumber daya membatalkan permintaan dengan kesalahan 10961.
Di SQL Server, gubernur sumber daya tidak membatalkan permintaan secara default. Namun, dimulai dengan SQL Server 2016 (13.x) SP2 dan SQL Server 2017 (14.x) CU3, gubernur sumber daya membatalkan permintaan dengan kesalahan 10961 ketika bendera pelacakan 2422 diaktifkan dan waktu CPU maksimum terlampaui.
Catatan
Interval deteksi untuk penggunaan waktu CPU adalah lima detik. Peristiwa dihasilkan jika kueri melebihi batas yang ditentukan setidaknya lima detik. Namun, jika kueri melebihi ambang yang ditentukan kurang dari lima detik, deteksinya mungkin terlewatkan tergantung pada waktu kueri dan waktu pembersihan deteksi terakhir.
REQUEST_MEMORY_GRANT_TIMEOUT_SEC = nilai
Menentukan waktu maksimum, dalam detik, bahwa kueri dapat menunggu peruntukan memori dari memori ruang kerja kueri tersedia. nilai harus 0 atau bilangan bulat positif. Pengaturan default untuk nilai, 0, menggunakan perhitungan internal berdasarkan biaya kueri untuk menentukan waktu maksimum.
Kueri tidak selalu gagal saat waktu pemberian memori habis tercapai. Kueri hanya gagal jika ada terlalu banyak kueri bersamaan yang berjalan. Jika tidak, kueri mungkin hanya mendapatkan peruntukan memori minimum, yang mengakibatkan berkurangnya performa kueri.
MAX_DOP = nilai
Menentukan tingkat paralelisme maksimum (MAXDOP) untuk eksekusi kueri paralel. Rentang yang diizinkan untuk nilai adalah dari 0 hingga 64. Pengaturan default untuk nilai, 0, menggunakan pengaturan global.
Untuk informasi selengkapnya, lihat MAXDOP.
GROUP_MAX_REQUESTS = nilai
Menentukan jumlah maksimum permintaan simultan yang diizinkan untuk dijalankan dalam grup beban kerja. nilai harus 0 atau bilangan bulat positif. Pengaturan default untuk nilai adalah 0, dan memungkinkan permintaan tanpa batas. Ketika permintaan bersamaan maksimum tercapai, sesi dalam grup tersebut dapat dibuat, tetapi ditempatkan dalam status tunggu hingga jumlah permintaan bersamaan turun di bawah nilai yang ditentukan.
GROUP_MAX_TEMPDB_DATA_MB = nilai
Menentukan jumlah maksimum ruang yang dapat dikonsumsi grup beban kerja dalam tempdb file data, dalam megabyte.
nilai harus 0, bilangan positif, atau NULL. Nilai pecahan diperbolehkan.
Ketika nilainya adalah 0, tempdb alokasi ruang menurut sesi dalam grup beban kerja tidak diizinkan. Saat nilai tidak ditetapkan, gubernur sumber daya tidak membatasi tempdb konsumsi ruang oleh grup beban kerja.
Batasnya adalah untuk total ruang yang digunakan tempdb oleh semua sesi dalam grup beban kerja.
Ketika permintaan yang berjalan dalam grup beban kerja mencoba meningkatkan tempdb konsumsi ruang data oleh grup beban kerja di atas batas yang ditetapkan oleh GROUP_MAX_TEMPDB_DATA_MB, gubernur sumber daya membatalkan permintaan dengan kesalahan 1138. Untuk informasi selengkapnya, lihat Tata kelola sumber daya ruang Tempdb.
GROUP_MAX_TEMPDB_DATA_PERCENT = nilai
Menentukan jumlah maksimum ruang yang dapat dikonsumsi grup beban kerja dalam tempdb file data, dalam persentase ukuran maksimum tempdb . Untuk definisi ukuran maksimum tempdb , lihat Konfigurasi batas persen.
harus berada dalam kisaran dari 0 hingga 100, atau NULL. Nilai pecahan diperbolehkan.
Ketika nilainya adalah 0, tempdb alokasi ruang menurut sesi dalam grup beban kerja tidak diizinkan. Saat nilai tidak ditetapkan, gubernur sumber daya tidak membatasi tempdb konsumsi ruang oleh grup beban kerja. Ketika GROUP_MAX_TEMPDB_DATA_MB diatur, atau ketika tempdb ukuran maksimum tidak ditentukan, GROUP_MAX_TEMPDB_DATA_PERCENT tidak berpengaruh.
Batasnya adalah untuk total ruang yang digunakan tempdb oleh semua sesi dalam grup beban kerja.
Ketika permintaan yang berjalan dalam grup beban kerja mencoba meningkatkan tempdb konsumsi ruang data oleh grup beban kerja di atas batas yang ditetapkan oleh GROUP_MAX_TEMPDB_DATA_PERCENT, gubernur sumber daya membatalkan permintaan dengan kesalahan 1138. Untuk informasi selengkapnya, lihat Tata kelola sumber daya ruang Tempdb.
MENGGUNAKAN { pool_name | [default] }
Mengaitkan grup beban kerja dengan kumpulan sumber daya yang ditentukan pengguna yang diidentifikasi oleh pool_name, atau dengan kumpulan sumber daya default. Jika pool_name tidak disediakan, atau jika argumen USING tidak ditentukan, grup beban kerja dikaitkan dengan kumpulan default bawaan.
default adalah kata yang dipesan dan ketika ditentukan dalam USING, harus diapit dalam tanda kurung ([]) atau tanda kutip ("").
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.
external_pool_name EKSTERNAL | [ default ]
Berlaku untuk: SQL Server 2016 (13.x) dan yang lebih baru.
Grup beban kerja dapat menentukan kumpulan sumber daya eksternal. Anda dapat menentukan grup beban kerja dan mengaitkannya dengan dua kumpulan:
- Kumpulan sumber daya untuk beban kerja Mesin Database.
- Kumpulan sumber daya eksternal untuk proses eksternal. Untuk informasi selengkapnya, lihat sp_execute_external_script.
Keterangan
Untuk informasi selengkapnya, lihat gubernur sumber daya
MAXDOP
Untuk kueri tertentu, MAXDOP efektif ditentukan sebagai berikut:
-
MAXDOPsebagai petunjuk kueri dihormati selama tidak melebihi pengaturanMAX_DOPgrup beban kerja. -
MAXDOPsebagai petunjuk kueri selalu mengambil alih konfigurasi servermax degree of parallelism. Untuk informasi selengkapnya, lihat konfigurasi server : tingkat paralelisme maksimum. - Grup beban kerja
MAX_DOPmengambil alih konfigurasi servermax degree of parallelismdan konfigurasi terlingkup databaseMAXDOP.
Batas MAXDOP diatur per tugas. Ini bukan batas per permintaan atau per kueri. Selama eksekusi kueri paralel, satu permintaan dapat menghasilkan beberapa tugas yang ditetapkan ke penjadwal . Untuk informasi selengkapnya, lihat panduan Alur dan arsitektur tugas.
Saat kueri ditandai sebagai serial pada waktu kompilasi (MAXDOP = 1), kueri tidak dapat dijalankan dengan paralelisme pada waktu proses terlepas dari grup beban kerja atau pengaturan konfigurasi server. Setelah MAXDOP ditentukan untuk kueri, kueri hanya dapat diturunkan karena tekanan memori. Konfigurasi ulang grup beban kerja tidak memengaruhi kueri yang menunggu dalam antrean peruntukan memori.
Pembuatan indeks
Untuk alasan performa, pembuatan indeks diizinkan untuk menggunakan lebih banyak ruang kerja memori daripada yang awalnya diberikan. Gubernur sumber daya mendukung penanganan khusus ini. Namun, pemberian awal dan pemberian memori tambahan dibatasi oleh grup beban kerja dan pengaturan kumpulan sumber daya.
Memori yang digunakan untuk membuat indeks nonaligned pada tabel yang dipartisi sebanding dengan jumlah partisi yang terlibat. Jika total memori yang diperlukan melebihi batas per kueri yang diberlakukan oleh pengaturan grup beban kerja REQUEST_MAX_MEMORY_GRANT_PERCENT, pembuatan indeks mungkin gagal. Karena grup beban kerja default memungkinkan kueri melebihi batas per kueri dengan memori minimum yang diperlukan untuk memulai kompatibilitas mundur, Anda mungkin dapat membuat indeks yang sama menggunakan grup beban kerja default jika kumpulan sumber daya default memiliki memori total yang cukup.
Izin
Memerlukan izin CONTROL SERVER.
Contoh
Membuat grup beban kerja bernama newReports di kumpulan sumber daya default, dan membatasi pemberian memori maksimum, waktu CPU maksimum untuk permintaan, dan MAXDOP.
CREATE WORKLOAD GROUP newReports
WITH (
REQUEST_MAX_MEMORY_GRANT_PERCENT = 2.5,
REQUEST_MAX_CPU_TIME_SEC = 100,
MAX_DOP = 4
)
USING [default];
Konten terkait
- tutorial : Contoh konfigurasi gubernur sumber daya dan praktik terbaik
- Gubernur sumber daya
- grup beban kerja gubernur sumber daya
- Membuat grup beban kerja
- UBAH GRUP BEBAN KERJA (Transact-SQL)
- DROP WORKLOAD GROUP (Transact-SQL)
- BUAT KUMPULAN SUMBER DAYA (Transact-SQL)
- UBAH KUMPULAN SUMBER DAYA (Transact-SQL)
- DROP RESOURCE POOL (Transact-SQL)
- UBAH PENGELOLA SUMBER DAYA (Transact-SQL)
- grup beban kerja sys.resource governor
- sys.dm_resource_governor_workload_groups
* Azure Synapse
Analytics*
Azure Synapse Analytics
Membuat grup beban kerja. Grup beban kerja adalah kontainer untuk serangkaian permintaan dan merupakan dasar untuk bagaimana manajemen beban kerja dikonfigurasi pada sistem. Grup beban kerja menyediakan kemampuan untuk memesan sumber daya untuk isolasi beban kerja, berisi sumber daya, menentukan sumber daya per permintaan, dan mematuhi aturan eksekusi. Setelah pernyataan selesai, pengaturan berlaku.
CREATE WORKLOAD GROUP group_name
WITH
( MIN_PERCENTAGE_RESOURCE = value
, CAP_PERCENTAGE_RESOURCE = value
, REQUEST_MIN_RESOURCE_GRANT_PERCENT = value
[ [ , ] REQUEST_MAX_RESOURCE_GRANT_PERCENT = value ]
[ [ , ] IMPORTANCE = { LOW | BELOW_NORMAL | NORMAL | ABOVE_NORMAL | HIGH } ]
[ [ , ] QUERY_EXECUTION_TIMEOUT_SEC = value ] )
[ ; ]
group_name Menentukan nama tempat grup beban kerja diidentifikasi.
group_name adalah sysname. Panjangnya bisa hingga 128 karakter dan harus unik dalam instans.
MIN_PERCENTAGE_RESOURCE = nilai
Menentukan alokasi sumber daya minimum terjamin untuk grup beban kerja ini yang tidak dibagikan dengan grup beban kerja lainnya. Memori adalah satu-satunya sumber daya yang diatur oleh parameter ini.
nilai adalah rentang bilangan bulat dari 0 hingga 100. Jumlah min_percentage_resource di semua grup beban kerja tidak boleh melebihi 100. Nilai untuk min_percentage_resource tidak boleh lebih besar dari cap_percentage_resource. Ada nilai efektif minimum yang diizinkan per tingkat layanan. Lihat Nilai Efektif untuk detail selengkapnya.
CAP_PERCENTAGE_RESOURCE = nilai
Menentukan pemanfaatan sumber daya maksimum untuk semua permintaan dalam grup beban kerja. Sumber daya CPU dan memori dibatasi oleh parameter ini. Rentang bilangan bulat yang diizinkan untuk nilai adalah 1 hingga 100. Nilai untuk cap_percentage_resource harus lebih besar dari min_percentage_resource. Nilai efektif untuk cap_percentage_resource dapat dikurangi jika min_percentage_resource dikonfigurasi lebih besar dari nol di grup beban kerja lainnya.
REQUEST_MIN_RESOURCE_GRANT_PERCENT = nilai
Mengatur jumlah minimum sumber daya yang dialokasikan per permintaan. Memori adalah satu-satunya sumber daya yang diatur oleh parameter ini.
nilai adalah parameter yang diperlukan dengan rentang desimal antara 0,75 hingga 100,00. Nilai untuk request_min_resource_grant_percent harus kelipatan 0,25, harus merupakan faktor min_percentage_resource, dan kurang dari cap_percentage_resource. Ada nilai efektif minimum yang diizinkan per tingkat layanan. Lihat Nilai Efektif untuk detail selengkapnya.
Contohnya:
CREATE WORKLOAD GROUP wgSample
WITH
( MIN_PERCENTAGE_RESOURCE = 26 -- integer value
, REQUEST_MIN_RESOURCE_GRANT_PERCENT = 3.25 -- factor of 26 (guaranteed a minimum of 8 concurrency)
, CAP_PERCENTAGE_RESOURCE = 100 )
Pertimbangkan nilai yang digunakan untuk kelas sumber daya sebagai pedoman untuk request_min_resource_grant_percent. Tabel di bawah ini berisi alokasi sumber daya untuk Gen2.
| Kelas Sumber Daya | Persentase Sumber Daya |
|---|---|
| Busur kecil | %3 |
| Mediumrc | 10% |
| Busur besar | 22% |
| Xlargerc | 70% |
REQUEST_MAX_RESOURCE_GRANT_PERCENT = nilai
Mengatur jumlah maksimum sumber daya yang dialokasikan per permintaan. Memori adalah satu-satunya sumber daya yang diatur oleh parameter ini.
nilai adalah parameter desimal opsional dengan nilai default yang sama dengan request_min_resource_grant_percent.
nilai harus lebih besar dari atau sama dengan request_min_resource_grant_percent. Ketika nilai request_max_resource_grant_percent lebih besar dari request_min_resource_grant_percent dan sumber daya sistem tersedia, sumber daya tambahan dialokasikan untuk permintaan.
KEPENTINGAN = { RENDAH | BELOW_NORMAL | NORMAL | ABOVE_NORMAL | TINGGI }
Menentukan kepentingan default permintaan untuk grup beban kerja. Kepentingan adalah salah satu hal berikut, dengan NORMAL menjadi default:
- Rendah
- BELOW_NORMAL
- NORMAL (default)
- ABOVE_NORMAL
- TINGGI
Kepentingan yang ditetapkan pada grup beban kerja adalah kepentingan default untuk semua permintaan dalam grup beban kerja. Pengguna juga dapat mengatur kepentingan di tingkat pengklasifikasi, yang dapat mengambil alih pengaturan kepentingan grup beban kerja. Hal ini memungkinkan diferensiasi pentingnya permintaan dalam grup beban kerja untuk mendapatkan akses ke sumber daya yang tidak dipesan lebih cepat. Ketika jumlah min_percentage_resource di seluruh grup beban kerja kurang dari 100, ada sumber daya yang tidak dipesan yang ditetapkan berdasarkan kepentingan.
QUERY_EXECUTION_TIMEOUT_SEC = nilai
Menentukan waktu maksimum, dalam detik, bahwa kueri dapat dijalankan sebelum dibatalkan.
nilai harus 0 atau bilangan bulat positif. Pengaturan default untuk nilai adalah 0, yang tidak pernah kehabisan waktu kueri. QUERY_EXECUTION_TIMEOUT_SEC dihitung setelah kueri dalam status berjalan, bukan saat kueri diantrekan.
Keterangan
Grup beban kerja yang sesuai dengan kelas sumber daya dibuat secara otomatis untuk kompatibilitas mundur. Grup beban kerja yang ditentukan sistem ini tidak dapat dihilangkan. 8 grup beban kerja tambahan yang ditentukan pengguna dapat dibuat.
Jika grup beban kerja dibuat dengan min_percentage_resource lebih dari nol, CREATE WORKLOAD GROUP pernyataan akan mengantre hingga ada cukup sumber daya untuk membuat grup beban kerja.
Nilai Efektif
Parameter min_percentage_resource, cap_percentage_resource, request_min_resource_grant_percent dan request_max_resource_grant_percent memiliki nilai efektif yang disesuaikan dalam konteks tingkat layanan saat ini dan konfigurasi grup beban kerja lainnya.
Parameter request_min_resource_grant_percent memiliki nilai yang efektif karena ada sumber daya minimum yang diperlukan per kueri tergantung pada tingkat layanan. Misalnya, pada tingkat layanan terendah, DW100c, sumber daya minimum 25% per permintaan diperlukan. Jika grup beban kerja dikonfigurasi dengan 3% request_min_resource_grant_percent dan request_max_resource_grant_percent, nilai efektif untuk kedua parameter disesuaikan menjadi 25% saat instans dimulai. Jika instans diskalakan hingga DW1000c, nilai yang dikonfigurasi dan efektif untuk kedua parameter adalah 3% karena 3% adalah nilai minimum yang didukung pada tingkat layanan tersebut. Jika instans diskalakan lebih tinggi dari DW1000c, nilai yang dikonfigurasi dan efektif untuk kedua parameter akan tetap berada di 3%. Lihat tabel di bawah ini untuk detail lebih lanjut tentang nilai efektif di tingkat layanan yang berbeda.
| Tingkat Layanan | Nilai efektif terendah untuk REQUEST_MIN_RESOURCE_GRANT_PERCENT | Kueri serentak maksimum |
|---|---|---|
| DW100c | 25% | 4 |
| DW200c | 12,5% | 8 |
| DW300c | 8% | 12 |
| DW400c | 6,25% | 16 |
| DW500c | 5% | 20 |
| DW1000c | %3 | 32 |
| DW1500c | %3 | 32 |
| DW2000c | %2 | 48 |
| DW2500c | %2 | 48 |
| DW3000c | 1,5% | 64 |
| DW5000c | 1,5% | 64 |
| DW6000c | 0,75% | 128 |
| DW7500c | 0,75% | 128 |
| DW10000c | 0,75% | 128 |
| DW15000c | 0,75% | 128 |
| DW30000c | 0,75% | 128 |
Parameter min_percentage_resource harus lebih besar dari atau sama dengan yang efektif request_min_resource_grant_percent. Grup beban kerja dengan min_percentage_resource dikonfigurasi kurang dari efektif min_percentage_resource memiliki nilai yang disesuaikan menjadi nol pada waktu proses. Ketika ini terjadi, sumber daya yang dikonfigurasi untuk min_percentage_resource dapat dibagikan di semua grup beban kerja. Misalnya, grup wgAdHoc beban kerja dengan min_percentage_resource 10% berjalan di DW1000c akan memiliki efektivitas min_percentage_resource 10% (3% adalah nilai minimum yang didukung di DW1000c).
wgAdhoc di DW100c akan memiliki min_percentage_resource efektif 0%. 10% yang dikonfigurasi untuk wgAdhoc akan dibagikan di semua grup beban kerja.
Parameter cap_percentage_resource juga memiliki nilai yang efektif. Jika grup wgAdhoc beban kerja dikonfigurasi dengan cap_percentage_resource 100% dan grup wgDashboards beban kerja lain dibuat dengan 25% min_percentage_resource, efektif cap_percentage_resource untuk wgAdhoc menjadi 75%.
Cara term mudah untuk memahami nilai run-time untuk grup beban kerja Anda adalah dengan mengkueri tampilan sistem sys.dm_workload_management_workload_groups_stats.
Izin
Memerlukan CONTROL DATABASE izin