Bagikan melalui


BUAT GRUP BEBAN KERJA (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 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 internal dan default, 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 dan grup beban kerja gubernur sumber daya .

MAXDOP

Untuk kueri tertentu, MAXDOP efektif ditentukan sebagai berikut:

  • MAXDOP sebagai petunjuk kueri dihormati selama tidak melebihi pengaturan MAX_DOP grup beban kerja.
  • MAXDOP sebagai petunjuk kueri selalu mengambil alih konfigurasi server max degree of parallelism. Untuk informasi selengkapnya, lihat konfigurasi server : tingkat paralelisme maksimum.
  • Grup beban kerja MAX_DOP mengambil alih konfigurasi server max degree of parallelism dan konfigurasi terlingkup database MAXDOP.

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];

* Instans Terkelola SQL *  

 

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 internal dan default, 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 dan grup beban kerja gubernur sumber daya .

MAXDOP

Untuk kueri tertentu, MAXDOP efektif ditentukan sebagai berikut:

  • MAXDOP sebagai petunjuk kueri dihormati selama tidak melebihi pengaturan MAX_DOP grup beban kerja.
  • MAXDOP sebagai petunjuk kueri selalu mengambil alih konfigurasi server max degree of parallelism. Untuk informasi selengkapnya, lihat konfigurasi server : tingkat paralelisme maksimum.
  • Grup beban kerja MAX_DOP mengambil alih konfigurasi server max degree of parallelism dan konfigurasi terlingkup database MAXDOP.

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];

* 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.

Konvensi sintaks transact-SQL

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

Lihat juga