Mengonfigurasi tingkat paralelisme maksimum (opsi konfigurasi server)

Berlaku untuk:SQL Server

Artikel ini menjelaskan cara mengonfigurasi max degree of parallelism opsi konfigurasi server (MAXDOP) di SQL Server dengan menggunakan SQL Server Management Studio, Azure Data 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 max degree of parallelism opsi untuk membatasi jumlah prosesor yang akan digunakan dalam eksekusi rencana paralel. Untuk detail selengkapnya tentang batas yang ditetapkan oleh max degree of parallelism (MAXDOP), lihat bagian Pertimbangan di halaman ini. SQL Server mempertimbangkan rencana eksekusi paralel untuk kueri, operasi bahasa definisi data indeks (DDL), sisipan paralel, kolom alter 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 berdasarkan jumlah prosesor yang tersedia selama proses penginstalan. Antarmuka pengguna penyiapan memungkinkan Anda menerima pengaturan yang direkomendasikan 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, max degree of parallelism opsi konfigurasi server (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 mungkin membatasi jumlah prosesor yang tersedia untuk SQL Server pada sistem multiproses simetris (SMP).

  • Mengatur tingkat paralelisme maksimum (MAXDOP) ke 0 memungkinkan SQL Server 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 maks, lihat bagian Rekomendasi di halaman ini.

  • Untuk menekan pembuatan rencana paralel, atur max degree of parallelism 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 digunakan. Jika komputer hanya memiliki satu prosesor, max degree of parallelism nilai 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 Alur dan Tugas.

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

    • Pada tingkat kueri, menggunakan petunjuk kueri MAXDOPatau petunjuk Penyimpanan Kueri.
    • Pada tingkat database, menggunakan konfigurasi cakupan databaseMAXDOP.
    • Pada tingkat beban kerja, menggunakan opsi konfigurasi grup beban kerja Resource Governor MAX_DOP.
  • 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).

  • SQL Server 2022 (16.x) memperkenalkan Degree of Parallelism (DOP) Feedback, fitur baru untuk meningkatkan performa kueri dengan mengidentifikasi inefisiensi paralelisme untuk kueri berulang, berdasarkan waktu dan waktu tunggu yang berlalu. Umpan balik DOP adalah bagian dari keluarga fitur pemrosesan kueri cerdas, dan mengatasi penggunaan paralelisme suboptimal untuk kueri berulang. Untuk informasi tentang umpan balik DOP, kunjungi Tingkat paralelisme (DOP) umpan balik.

Rekomendasi

Dimulai dengan SQL Server 2016 (13.x), selama startup layanan jika Mesin Database mendeteksi lebih dari delapan inti fisik per node NUMA atau soket saat startup, node soft-NUMA dibuat secara otomatis secara default. Mesin Database menempatkan prosesor logis dari inti fisik yang sama ke dalam node NUMA lunak yang berbeda. Rekomendasi dalam tabel di bawah ini bertujuan untuk menjaga semua utas pekerja dari kueri paralel dalam node numa lunak 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 max degree of parallelism nilai konfigurasi server:

Konfigurasi server Jumlah prosesor Panduan
Server dengan simpul NUMA tunggal Kurang dari atau sama dengan delapan prosesor logis Simpan MAXDOP di atau di bawah # dari prosesor logis
Server dengan simpul NUMA tunggal Lebih besar dari delapan 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 # dari prosesor logis per simpul NUMA
Server dengan beberapa simpul NUMA Lebih besar dari 16 prosesor logis per simpul NUMA Pertahankan MAXDOP pada setengah jumlah prosesor logis per simpul NUMA dengan nilai MAX 16

Catatan

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

Dari SQL Server 2008 (10.0.x) hingga SQL Server 2014 (12.x), gunakan panduan berikut saat Anda mengonfigurasi max degree of parallelism nilai konfigurasi server:

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

Keamanan

Izin

Jalankan izin tanpa sp_configure 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 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 atau Azure Data Studio

Di Azure Data Studio, instal Database Admin Tool Extensions for Windows ekstensi, atau gunakan metode T-SQL di bawah ini.

Mengonfigurasi tingkat maksimum opsi paralelisme

Opsi ini mengubah MAXDOP untuk instans.

  1. Di Object Explorer, klik kanan instans yang diinginkan dan pilih Properti.

  2. Pilih simpul Tingkat Lanjut .

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

Menggunakan Transact-SQL

Mengonfigurasi tingkat maksimum opsi paralelisme dengan T-SQL

  1. Koneksi ke Mesin Database dengan SQL Server Management Studio atau Azure Data Studio.

  2. Dari bilah Standar, pilih Kueri Baru.

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

USE AdventureWorks2022;  
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 berlaku segera tanpa memulai ulang server.