CREATE WORKLOAD GROUP (Transact-SQL)
Pilih produk
Di baris berikut, pilih nama produk yang Anda minati, dan hanya informasi produk yang ditampilkan.
* SQL Server *
SQL Server dan SQL Managed Instance
Membuat grup beban kerja Resource Governor dan mengaitkan grup beban kerja dengan kumpulan sumber daya Resource Governor. Resource Governor 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.
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 ] )
]
[ USING {
[ pool_name | "default" ]
[ [ , ] EXTERNAL external_pool_name | "default" ] ]
} ]
[ ; ]
Argumen
group_name
Nama yang ditentukan pengguna untuk grup beban kerja. group_name alfanumerik, dapat mencapai 128 karakter, harus unik dalam instans SQL Server, dan harus mematuhi aturan untuk Pengidentifikasi Database.
KEPENTINGAN = { RENDAH | SEDANG | TINGGI }
Menentukan kepentingan relatif permintaan dalam grup beban kerja. Kepentingan adalah salah satu hal berikut, dengan MEDIUM menjadi default:
- Rendah
- SEDANG (default)
- TINGGI
Catatan
Secara internal, setiap pengaturan kepentingan disimpan sebagai angka yang digunakan untuk perhitungan.
KEPENTINGAN bersifat lokal untuk kumpulan sumber daya. 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 yang dapat diambil satu permintaan dari kumpulan. nilai adalah persentase relatif terhadap ukuran kumpulan sumber daya yang ditentukan oleh MAX_MEMORY_PERCENT. Nilai default adalah 25.
nilai adalah bilangan bulat hingga SQL Server 2017 (14.x) dan rentang yang diizinkan adalah dari 1 hingga 100. Dimulai dengan SQL Server 2019 (15.x), nilainya adalah float
jenis data dan rentang yang diizinkan adalah dari 0 hingga 100.
Penting
Jumlah yang ditentukan hanya mengacu pada memori pemberian eksekusi kueri.
Mengatur nilai ke 0 mencegah kueri dengan operasi SORT dan HASH JOIN dalam grup beban kerja yang ditentukan pengguna agar tidak berjalan.
Tidak disarankan untuk menetapkan nilai yang lebih besar dari 70 karena server mungkin tidak dapat menyisihkan memori bebas yang cukup jika kueri bersamaan lainnya berjalan. Ini akhirnya dapat menyebabkan kesalahan waktu habis kueri 8645.
Jika persyaratan memori kueri melebihi batas yang ditentukan oleh parameter ini, server melakukan hal berikut:
Untuk grup beban kerja yang ditentukan pengguna, server mencoba mengurangi tingkat kueri paralelisme sampai persyaratan memori berada di bawah batas, atau sampai tingkat paralelisme sama dengan 1. Jika persyaratan memori kueri masih lebih besar dari batas, kesalahan 8657 terjadi.
Untuk grup beban kerja internal dan default, server mengizinkan kueri untuk mendapatkan memori yang diperlukan.
Ketahuilah bahwa kedua kasus tunduk pada kesalahan waktu habis 8645 jika server memiliki memori fisik yang tidak memadai.
REQUEST_MAX_CPU_TIME_SEC = nilai
Menentukan jumlah maksimum waktu CPU, dalam detik, yang dapat digunakan permintaan. nilai harus 0 atau bilangan bulat positif. Pengaturan default untuk nilai adalah 0, yang berarti tidak terbatas.
Catatan
Secara default, Resource Governor tidak akan mencegah permintaan untuk melanjutkan jika waktu maksimum terlampaui. Namun, peristiwa akan dihasilkan. Untuk informasi selengkapnya, lihat Kelas Peristiwa Terlampaui Ambang Batas CPU.
Penting
Dimulai dengan SQL Server 2016 (13.x) SP2 dan SQL Server 2017 (14.x) CU3, dan menggunakan bendera pelacakan 2422, Resource Governor akan membatalkan permintaan ketika waktu maksimum terlampaui.
REQUEST_MEMORY_GRANT_TIMEOUT_SEC = nilai
Menentukan waktu maksimum, dalam detik, bahwa kueri dapat menunggu peruntukan memori (memori buffer kerja) tersedia. nilai harus 0 atau bilangan bulat positif. Pengaturan default untuk nilai, 0, menggunakan perhitungan internal berdasarkan biaya kueri untuk menentukan waktu maksimum.
Catatan
Kueri tidak selalu gagal ketika waktu habis peruntukan memori tercapai. Kueri hanya akan 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. nilai harus 0 atau bilangan bulat positif. Rentang yang diizinkan untuk nilai adalah dari 0 hingga 64. Pengaturan default untuk nilai, 0, menggunakan pengaturan global.
MAX_DOP ditangani sebagai berikut:
MAX_DOP sebagai petunjuk kueri dihormati selama tidak melebihi MAX_DOP grup beban kerja.
MAX_DOP sebagai petunjuk kueri selalu mengambil alih sp_configure 'tingkat paralelisme maks'.
Grup beban kerja MAX_DOP mengambil alih sp_configure 'tingkat paralelisme maks'.
Jika kueri ditandai sebagai serial
(MAX_DOP = 1)
pada waktu kompilasi, kueri tidak dapat diubah kembali menjadi paralel pada waktu proses terlepas dari grup beban kerja atau pengaturan sp_configure.
Setelah DOP dikonfigurasi, DOP hanya dapat diturunkan pada tekanan memori pemberian. Konfigurasi ulang grup beban kerja tidak terlihat saat menunggu dalam antrean memori pemberian.
Catatan
Grup beban kerja MAX_DOP mengambil alih konfigurasi server untuk tingkat paralelisme maksimum dan MAXDOP
konfigurasi cakupan database.
Tip
Untuk mencapai ini di tingkat kueri, gunakan MAXDOP
petunjuk kueri. Mengatur tingkat paralelisme maksimum karena petunjuk kueri efektif selama tidak melebihi grup beban kerja MAX_DOP. Jika nilai petunjuk kueri MAXDOP melebihi nilai yang dikonfigurasi dengan menggunakan Resource Governor, Mesin Database SQL Server menggunakan nilai Resource Governor MAX_DOP
. Petunjuk kueri MAXDOP selalu mengambil alih konfigurasi server untuk tingkat paralelisme maksimum.
Untuk mencapai ini di tingkat database, gunakan MAXDOP
konfigurasi cakupan database.
Untuk mencapai hal ini di tingkat server, gunakan opsi konfigurasi server tingkat paralelisme maksimum (MAXDOP).
GROUP_MAX_REQUESTS = nilai
Menentukan jumlah maksimum permintaan simultan yang diizinkan untuk dijalankan dalam grup beban kerja. nilai harus berupa bilangan bulat 0 atau positif. Pengaturan default untuk nilai adalah 0, dan memungkinkan permintaan tanpa batas. Ketika permintaan bersamaan maksimum tercapai, pengguna dalam grup tersebut dapat masuk, tetapi ditempatkan dalam status tunggu hingga permintaan bersamaan dijatuhkan di bawah nilai yang ditentukan.
MENGGUNAKAN { pool_name | "default" }
Mengaitkan grup beban kerja dengan kumpulan sumber daya yang ditentukan pengguna yang diidentifikasi oleh pool_name. Ini berlaku menempatkan grup beban kerja di kumpulan sumber daya. Jika pool_name tidak disediakan, atau jika argumen USING tidak digunakan, grup beban kerja dimasukkan ke dalam kumpulan default Resource Governor yang telah ditentukan sebelumnya.
"default"
adalah kata yang dipesan dan ketika digunakan dengan USING, harus diapit oleh tanda kutip (""
) atau tanda kurung ([]
).
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.
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 mengaitkan dengan dua kumpulan:
- Kumpulan sumber daya untuk beban kerja dan kueri SQL Server
- Kumpulan sumber daya eksternal untuk proses eksternal. Untuk informasi selengkapnya, lihat sp_execute_external_script (Transact-SQL).
Keterangan
Ketika REQUEST_MEMORY_GRANT_PERCENT
digunakan, pembuatan indeks diizinkan untuk menggunakan lebih banyak memori ruang kerja daripada apa yang awalnya diberikan untuk peningkatan performa. Penanganan khusus ini didukung oleh Resource Governor di SQL Server. Namun, pemberian awal dan pemberian memori tambahan dibatasi oleh kumpulan sumber daya dan pengaturan grup beban kerja.
Batas MAX_DOP
diatur per tugas. Ini bukan batas per permintaan atau per kueri. Ini berarti bahwa selama eksekusi kueri paralel, satu permintaan dapat menelurkan beberapa tugas yang ditetapkan ke penjadwal. Untuk informasi selengkapnya, lihat Panduan Arsitektur Utas dan Tugas.
Saat MAX_DOP
digunakan dan kueri ditandai sebagai serial pada waktu kompilasi, kueri tidak dapat diubah kembali menjadi paralel pada waktu proses terlepas dari grup beban kerja atau pengaturan konfigurasi server. Setelah MAX_DOP
dikonfigurasi, itu hanya dapat diturunkan karena tekanan memori. Konfigurasi ulang grup beban kerja tidak terlihat saat menunggu dalam antrean memori pemberian.
Pembuatan indeks pada tabel yang dipartisi
Memori yang digunakan oleh pembuatan indeks pada tabel partisi yang tidak selaras sebanding dengan jumlah partisi yang terlibat. Jika total memori yang diperlukan melebihi batas REQUEST_MAX_MEMORY_GRANT_PERCENT
per kueri yang diberlakukan oleh pengaturan grup beban kerja Resource Governor, pembuatan indeks ini mungkin gagal dijalankan. "default"
Karena grup beban kerja memungkinkan kueri melebihi batas per kueri dengan memori minimum yang diperlukan, pengguna mungkin dapat menjalankan pembuatan indeks yang sama dalam "default"
grup beban kerja, jika kumpulan sumber daya memiliki cukup memori total yang dikonfigurasi untuk menjalankan kueri tersebut"default"
.
Izin
Memerlukan CONTROL SERVER
izin.
Contoh
Buat grup beban kerja bernama newReports
yang menggunakan pengaturan default Resource Governor, dan berada di kumpulan default Resource Governor. Contoh menentukan kumpulan default
, tetapi ini tidak diperlukan.
CREATE WORKLOAD GROUP newReports
WITH
(REQUEST_MAX_MEMORY_GRANT_PERCENT = 2.5
, REQUEST_MAX_CPU_TIME_SEC = 100
, MAX_DOP = 4)
USING "default" ;
GO
Lihat juga
* SQL Managed Instance *
SQL Server dan SQL Managed Instance
Membuat grup beban kerja Resource Governor dan mengaitkan grup beban kerja dengan kumpulan sumber daya Resource Governor. Resource Governor 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.
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 ] )
]
[ USING {
[ pool_name | "default" ]
[ [ , ] EXTERNAL external_pool_name | "default" ] ]
} ]
[ ; ]
Argumen
group_name
Nama yang ditentukan pengguna untuk grup beban kerja. group_name alfanumerik, dapat mencapai 128 karakter, harus unik dalam instans SQL Server, dan harus mematuhi aturan untuk Pengidentifikasi Database.
KEPENTINGAN = { RENDAH | SEDANG | TINGGI }
Menentukan kepentingan relatif permintaan dalam grup beban kerja. Kepentingan adalah salah satu hal berikut, dengan MEDIUM menjadi default:
- Rendah
- SEDANG (default)
- TINGGI
Catatan
Secara internal, setiap pengaturan kepentingan disimpan sebagai angka yang digunakan untuk perhitungan.
KEPENTINGAN bersifat lokal untuk kumpulan sumber daya. 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 yang dapat diambil satu permintaan dari kumpulan. nilai adalah persentase relatif terhadap ukuran kumpulan sumber daya yang ditentukan oleh MAX_MEMORY_PERCENT. Nilai default adalah 25.
nilai adalah bilangan bulat hingga SQL Server 2017 (14.x) dan rentang yang diizinkan adalah dari 1 hingga 100. Dimulai dengan SQL Server 2019 (15.x), nilainya adalah float
jenis data dan rentang yang diizinkan adalah dari 0 hingga 100.
Penting
Jumlah yang ditentukan hanya mengacu pada memori pemberian eksekusi kueri.
Mengatur nilai ke 0 mencegah kueri dengan operasi SORT dan HASH JOIN dalam grup beban kerja yang ditentukan pengguna agar tidak berjalan.
Tidak disarankan untuk menetapkan nilai yang lebih besar dari 70 karena server mungkin tidak dapat menyisihkan memori bebas yang cukup jika kueri bersamaan lainnya berjalan. Ini akhirnya dapat menyebabkan kesalahan waktu habis kueri 8645.
Jika persyaratan memori kueri melebihi batas yang ditentukan oleh parameter ini, server melakukan hal berikut:
Untuk grup beban kerja yang ditentukan pengguna, server mencoba mengurangi tingkat kueri paralelisme sampai persyaratan memori berada di bawah batas, atau sampai tingkat paralelisme sama dengan 1. Jika persyaratan memori kueri masih lebih besar dari batas, kesalahan 8657 terjadi.
Untuk grup beban kerja internal dan default, server mengizinkan kueri untuk mendapatkan memori yang diperlukan.
Ketahuilah bahwa kedua kasus tunduk pada kesalahan waktu habis 8645 jika server memiliki memori fisik yang tidak memadai.
REQUEST_MAX_CPU_TIME_SEC = nilai
Menentukan jumlah maksimum waktu CPU, dalam detik, yang dapat digunakan permintaan. nilai harus 0 atau bilangan bulat positif. Pengaturan default untuk nilai adalah 0, yang berarti tidak terbatas.
Catatan
Secara default, Resource Governor tidak akan mencegah permintaan untuk melanjutkan jika waktu maksimum terlampaui. Namun, peristiwa akan dihasilkan. Untuk informasi selengkapnya, lihat Kelas Peristiwa Terlampaui Ambang Batas CPU.
Penting
Dimulai dengan SQL Server 2016 (13.x) SP2 dan SQL Server 2017 (14.x) CU3, dan menggunakan bendera pelacakan 2422, Resource Governor akan membatalkan permintaan ketika waktu maksimum terlampaui.
REQUEST_MEMORY_GRANT_TIMEOUT_SEC = nilai
Menentukan waktu maksimum, dalam detik, bahwa kueri dapat menunggu peruntukan memori (memori buffer kerja) tersedia. nilai harus 0 atau bilangan bulat positif. Pengaturan default untuk nilai, 0, menggunakan perhitungan internal berdasarkan biaya kueri untuk menentukan waktu maksimum.
Catatan
Kueri tidak selalu gagal ketika waktu habis peruntukan memori tercapai. Kueri hanya akan 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. nilai harus 0 atau bilangan bulat positif. Rentang yang diizinkan untuk nilai adalah dari 0 hingga 64. Pengaturan default untuk nilai, 0, menggunakan pengaturan global.
MAX_DOP ditangani sebagai berikut:
MAX_DOP sebagai petunjuk kueri dihormati selama tidak melebihi MAX_DOP grup beban kerja.
MAX_DOP sebagai petunjuk kueri selalu mengambil alih sp_configure 'tingkat paralelisme maks'.
Grup beban kerja MAX_DOP mengambil alih sp_configure 'tingkat paralelisme maks'.
Jika kueri ditandai sebagai serial
(MAX_DOP = 1)
pada waktu kompilasi, kueri tidak dapat diubah kembali menjadi paralel pada waktu proses terlepas dari grup beban kerja atau pengaturan sp_configure.
Setelah DOP dikonfigurasi, DOP hanya dapat diturunkan pada tekanan memori pemberian. Konfigurasi ulang grup beban kerja tidak terlihat saat menunggu dalam antrean memori pemberian.
Catatan
Grup beban kerja MAX_DOP mengambil alih konfigurasi server untuk tingkat paralelisme maksimum dan MAXDOP
konfigurasi cakupan database.
Tip
Untuk mencapai ini di tingkat kueri, gunakan MAXDOP
petunjuk kueri. Mengatur tingkat paralelisme maksimum karena petunjuk kueri efektif selama tidak melebihi grup beban kerja MAX_DOP. Jika nilai petunjuk kueri MAXDOP melebihi nilai yang dikonfigurasi dengan menggunakan Resource Governor, Mesin Database SQL Server menggunakan nilai Resource Governor MAX_DOP
. Petunjuk kueri MAXDOP selalu mengambil alih konfigurasi server untuk tingkat paralelisme maksimum.
Untuk mencapai ini di tingkat database, gunakan MAXDOP
konfigurasi cakupan database.
Untuk mencapai hal ini di tingkat server, gunakan opsi konfigurasi server tingkat paralelisme maksimum (MAXDOP).
GROUP_MAX_REQUESTS = nilai
Menentukan jumlah maksimum permintaan simultan yang diizinkan untuk dijalankan dalam grup beban kerja. nilai harus berupa bilangan bulat 0 atau positif. Pengaturan default untuk nilai adalah 0, dan memungkinkan permintaan tanpa batas. Ketika permintaan bersamaan maksimum tercapai, pengguna dalam grup tersebut dapat masuk, tetapi ditempatkan dalam status tunggu hingga permintaan bersamaan dijatuhkan di bawah nilai yang ditentukan.
MENGGUNAKAN { pool_name | "default" }
Mengaitkan grup beban kerja dengan kumpulan sumber daya yang ditentukan pengguna yang diidentifikasi oleh pool_name. Ini berlaku menempatkan grup beban kerja di kumpulan sumber daya. Jika pool_name tidak disediakan, atau jika argumen USING tidak digunakan, grup beban kerja dimasukkan ke dalam kumpulan default Resource Governor yang telah ditentukan sebelumnya.
"default"
adalah kata yang dipesan dan ketika digunakan dengan USING, harus diapit oleh tanda kutip (""
) atau tanda kurung ([]
).
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.
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 mengaitkan dengan dua kumpulan:
- Kumpulan sumber daya untuk beban kerja dan kueri SQL Server
- Kumpulan sumber daya eksternal untuk proses eksternal. Untuk informasi selengkapnya, lihat sp_execute_external_script (Transact-SQL).
Keterangan
Ketika REQUEST_MEMORY_GRANT_PERCENT
digunakan, pembuatan indeks diizinkan untuk menggunakan lebih banyak memori ruang kerja daripada apa yang awalnya diberikan untuk peningkatan performa. Penanganan khusus ini didukung oleh Resource Governor di SQL Server. Namun, pemberian awal dan pemberian memori tambahan dibatasi oleh kumpulan sumber daya dan pengaturan grup beban kerja.
Batas MAX_DOP
diatur per tugas. Ini bukan batas per permintaan atau per kueri. Ini berarti bahwa selama eksekusi kueri paralel, satu permintaan dapat menelurkan beberapa tugas yang ditetapkan ke penjadwal. Untuk informasi selengkapnya, lihat Panduan Arsitektur Utas dan Tugas.
Saat MAX_DOP
digunakan dan kueri ditandai sebagai serial pada waktu kompilasi, kueri tidak dapat diubah kembali menjadi paralel pada waktu proses terlepas dari grup beban kerja atau pengaturan konfigurasi server. Setelah MAX_DOP
dikonfigurasi, itu hanya dapat diturunkan karena tekanan memori. Konfigurasi ulang grup beban kerja tidak terlihat saat menunggu dalam antrean memori pemberian.
Pembuatan indeks pada tabel yang dipartisi
Memori yang digunakan oleh pembuatan indeks pada tabel partisi yang tidak selaras sebanding dengan jumlah partisi yang terlibat. Jika total memori yang diperlukan melebihi batas REQUEST_MAX_MEMORY_GRANT_PERCENT
per kueri yang diberlakukan oleh pengaturan grup beban kerja Resource Governor, pembuatan indeks ini mungkin gagal dijalankan. "default"
Karena grup beban kerja memungkinkan kueri melebihi batas per kueri dengan memori minimum yang diperlukan, pengguna mungkin dapat menjalankan pembuatan indeks yang sama dalam "default"
grup beban kerja, jika kumpulan sumber daya memiliki cukup memori total yang dikonfigurasi untuk menjalankan kueri tersebut"default"
.
Izin
Memerlukan CONTROL SERVER
izin.
Contoh
Buat grup beban kerja bernama newReports
yang menggunakan pengaturan default Resource Governor, dan berada di kumpulan default Resource Governor. Contoh menentukan kumpulan default
, tetapi ini tidak diperlukan.
CREATE WORKLOAD GROUP newReports
WITH
(REQUEST_MAX_MEMORY_GRANT_PERCENT = 2.5
, REQUEST_MAX_CPU_TIME_SEC = 100
, MAX_DOP = 4)
USING "default" ;
GO
Lihat juga
* 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