Mengonfigurasi tingkat maksimum Opsi Konfigurasi Server paralelisme

Berlaku untuk:yes SQL Server (semua versi yang didukung)

Topik ini menjelaskan cara mengonfigurasi opsi konfigurasi server tingkat paralelisme maksimum (MAXDOP) di SQL Server dengan menggunakan SQL Server Management Studio atau Transact-SQL. Ketika instans SQL Server berjalan di komputer yang memiliki lebih dari satu microprocessor atau CPU, Mesin Database mendeteksi apakah paralelisme dapat digunakan. Tingkat paralelisme menetapkan jumlah prosesor yang digunakan untuk menjalankan satu pernyataan, untuk setiap eksekusi rencana paralel. Anda dapat menggunakan opsi tingkat paralelisme maksimum untuk membatasi jumlah prosesor yang akan digunakan dalam eksekusi rencana paralel. Untuk detail selengkapnya tentang batas yang ditetapkan oleh tingkat paralelisme maksimum (MAXDOP), lihat bagian Pertimbangan di halaman ini. SQL Server mempertimbangkan rencana eksekusi paralel untuk kueri, operasi bahasa definisi data indeks (DDL), sisipan paralel, kolom ubah online, pengumpulan statistik paralel, dan populasi kursor statis dan berbasis keyset.

Catatan

SQL Server 2019 (15.x) memperkenalkan rekomendasi otomatis untuk mengatur opsi konfigurasi server MAXDOP selama proses penginstalan berdasarkan jumlah prosesor yang tersedia. Antarmuka pengguna penyiapan memungkinkan Anda menerima pengaturan yang disarankan atau memasukkan nilai Anda sendiri. Untuk informasi selengkapnya, lihat Halaman Konfigurasi Mesin Database - MaxDOP.

Di Azure SQL Database dan Azure SQL Managed Instance, pengaturan MAXDOP default untuk setiap database tunggal baru , database kumpulan elastis, dan instans terkelola adalah 8. Di Azure SQL Database, konfigurasi cakupan database MAXDOP diatur ke 8. Di Azure SQL Managed Instance, opsi konfigurasi server tingkat paralelisme maksimum (MAXDOP) diatur ke 8.

Untuk informasi selengkapnya tentang MAXDOP di Azure SQL Database, lihat Mengonfigurasi tingkat paralelisme maksimum (MAXDOP) di Azure SQL Database.

Sebelum Anda mulai

Pertimbangan

  • Opsi ini adalah opsi lanjutan dan harus diubah hanya oleh administrator database berpengalaman atau profesional SQL Server bersertifikat.

  • Jika opsi masker afinitas tidak diatur ke default, opsi ini dapat membatasi jumlah prosesor yang tersedia untuk SQL Server pada sistem multiproses simetris (SMP).

  • Mengatur tingkat paralelisme maksimum (MAXDOP) ke 0 memungkinkan SQL Server untuk menggunakan semua prosesor yang tersedia hingga 64 prosesor. Namun, ini bukan nilai yang direkomendasikan untuk sebagian besar kasus. Untuk informasi selengkapnya tentang nilai yang direkomendasikan untuk tingkat paralelisme maksimum, lihat bagian Rekomendasi di halaman ini.

  • Untuk menekan pembuatan rencana paralel, atur tingkat paralelisme maksimum ke 1. Atur nilai ke angka dari 1 hingga 32.767 untuk menentukan jumlah maksimum inti prosesor yang dapat digunakan selama eksekusi kueri tunggal. Jika nilai yang lebih besar dari jumlah prosesor yang tersedia ditentukan, jumlah aktual prosesor yang tersedia akan digunakan. Jika komputer hanya memiliki satu prosesor, tingkat maksimum nilai paralelisme diabaikan.

  • Tingkat maksimum batas paralelisme ditetapkan per tugas. Ini bukan batas per permintaan atau per kueri. Ini berarti bahwa selama eksekusi kueri paralel, satu permintaan dapat menghasilkan beberapa tugas hingga batas MAXDOP, dan setiap tugas akan menggunakan satu pekerja dan satu penjadwal. Untuk informasi selengkapnya, lihat bagian Menjadwalkan tugas paralel di Panduan Arsitektur Utas dan Tugas.

  • Anda dapat mengambil alih tingkat maksimum nilai konfigurasi server paralelisme:

  • Operasi indeks untuk membuat atau membangun ulang indeks, atau membuang indeks berkluster, dapat memerlukan sumber daya intensif. Anda dapat mengambil alih tingkat maksimum nilai paralelisme untuk operasi indeks dengan menentukan opsi indeks MAXDOP dalam pernyataan indeks. Nilai MAXDOP diterapkan ke pernyataan pada waktu eksekusi dan tidak disimpan dalam metadata indeks. Untuk informasi selengkapnya, lihat Mengonfigurasi Operasi Indeks Paralel.

  • Selain kueri dan operasi indeks, opsi ini juga mengontrol paralelisme DBCC CHECKTABLE, DBCC CHECKDB, dan DBCC CHECKFILEGROUP. Anda dapat menonaktifkan rencana eksekusi paralel untuk pernyataan ini dengan menggunakan bendera pelacakan 2528. Untuk informasi selengkapnya, lihat Bendera Pelacakan (Transact-SQL).

Rekomendasi

Dimulai dengan SQL Server 2016 (13.x), selama startup layanan jika Mesin Database mendeteksi lebih dari delapan core fisik per simpul atau soket NUMA saat startup, node soft-NUMA dibuat secara otomatis secara default. Mesin Database menempatkan prosesor logis dari inti fisik yang sama ke simpul soft-NUMA yang berbeda. Rekomendasi dalam tabel di bawah ini ditujukan untuk menjaga semua utas pekerja dari kueri paralel dalam node soft-NUMA yang sama. Ini akan meningkatkan performa kueri dan distribusi utas pekerja di seluruh simpul NUMA untuk beban kerja. Untuk informasi selengkapnya, lihat Soft-NUMA.

Dimulai dengan SQL Server 2016 (13.x), gunakan panduan berikut saat Anda mengonfigurasi tingkat maksimum nilai konfigurasi server paralelisme :

Konfigurasi server Jumlah prosesor Panduan
Server dengan simpul NUMA tunggal Kurang dari atau sama dengan 8 prosesor logis Simpan MAXDOP di atau di bawah # dari prosesor logis
Server dengan simpul NUMA tunggal Lebih besar dari 8 prosesor logis Pertahankan MAXDOP di 8
Server dengan beberapa simpul NUMA Kurang dari atau sama dengan 16 prosesor logis per simpul NUMA Simpan MAXDOP di atau di bawah # prosesor logis per simpul NUMA
Server dengan beberapa simpul NUMA Lebih dari 16 prosesor logis per simpul NUMA Jaga MAXDOP di setengah jumlah prosesor logis per simpul NUMA dengan nilai MAX 16

Catatan

Simpul NUMA dalam tabel di atas mengacu pada node soft-NUMA yang secara otomatis dibuat oleh SQL Server 2016 (13.x) dan versi yang lebih tinggi, atau node NUMA berbasis perangkat keras jika soft-NUMA telah dinonaktifkan.
Gunakan panduan yang sama ini saat Anda menetapkan opsi tingkat paralelisme maksimum untuk grup beban kerja Resource Governor. Untuk informasi selengkapnya, lihat MEMBUAT GRUP BEBAN KERJA (Transact-SQL).

Dari SQL Server 2008 hingga SQL Server 2014 (12.x), gunakan panduan berikut saat Anda mengonfigurasi tingkat maksimum nilai konfigurasi server paralelisme :

Konfigurasi server Jumlah prosesor Panduan
Server dengan simpul NUMA tunggal Kurang dari atau sama dengan 8 prosesor logis Simpan MAXDOP di atau di bawah # dari prosesor logis
Server dengan simpul NUMA tunggal Lebih besar dari 8 prosesor logis Pertahankan MAXDOP di 8
Server dengan beberapa simpul NUMA Kurang dari atau sama dengan 8 prosesor logis per simpul NUMA Simpan MAXDOP di atau di bawah # prosesor logis per simpul NUMA
Server dengan beberapa simpul NUMA Lebih besar dari 8 prosesor logis per simpul NUMA Pertahankan MAXDOP di 8

Keamanan

Izin

Jalankan izin pada sp_configure tanpa parameter atau hanya dengan parameter pertama yang diberikan kepada semua pengguna secara default. Untuk menjalankan sp_configure dengan kedua parameter untuk mengubah opsi konfigurasi atau untuk menjalankan pernyataan KONFIGURASI ULANG, pengguna harus diberikan izin tingkat server ALTER SETTINGS. Izin UBAH PENGATURAN secara implisit dipegang oleh peran server tetap sysadmin dan serveradmin .

Menggunakan SQL Server Management Studio

Untuk mengonfigurasi tingkat maksimum opsi paralelisme

  1. Di Object Explorer, klik kanan server dan pilih Properti.

  2. Klik simpul Tingkat Lanjut .

  3. Dalam kotak Tingkat Paralelisme Maksimum , pilih jumlah maksimum prosesor yang akan digunakan dalam eksekusi rencana paralel.

Menggunakan T-SQL

Untuk mengonfigurasi tingkat maksimum opsi paralelisme

  1. Sambungkan ke Mesin Database.

  2. Dari bilah Standar, klik Kueri Baru.

  3. Salin dan tempel contoh berikut ke dalam jendela kueri dan klik Jalankan. Contoh ini menunjukkan cara menggunakan sp_configure untuk mengonfigurasi max degree of parallelism opsi ke 16.

USE AdventureWorks2012 ;  
GO   
EXEC sp_configure 'show advanced options', 1;  
GO  
RECONFIGURE WITH OVERRIDE;  
GO  
EXEC sp_configure 'max degree of parallelism', 16;  
GO  
RECONFIGURE WITH OVERRIDE;  
GO  

Untuk informasi selengkapnya, lihat Opsi Konfigurasi Server (SQL Server).

Tindak Lanjut: Setelah Anda mengonfigurasi tingkat maksimum opsi paralelisme

Pengaturan segera berlaku tanpa memulai ulang server.

Lihat juga

ALTER DATABASE SCOPED CONFIGURATION (T-SQL)
Opsi Konfigurasi Server mask afinitas
Opsi Konfigurasi Server (SQL Server)
sp_configure (Transact-SQL)
Panduan Arsitektur Pemrosesan Kueri
Panduan Arsitektur Utas dan Tugas
Mengonfigurasi Operasi Indeks Paralel
Petunjuk Kueri (T-SQL)
Atur Opsi Indeks

Langkah berikutnya

KONFIGURASI ULANG (Transact-SQL)Pantau dan Sesuaikan Performa