Konfigurasi server: tingkat paralelisme maks
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
, 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.
SQL Server 2019 (15.x) memperkenalkan rekomendasi otomatis untuk mengatur max degree of parallelism
opsi konfigurasi server 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, MAXDOP
konfigurasi cakupan database diatur ke 8
. Di Azure SQL Managed Instance, max degree of parallelism
opsi konfigurasi server diatur ke 8
.
Untuk informasi selengkapnya tentang MAXDOP di Azure SQL Database, lihat Mengonfigurasi tingkat paralelisme maksimum (MAXDOP) di Azure SQL Database.
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).
Pengaturan max degree of parallelism
untuk 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 maksimum, 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 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
MAXDOP
petunjuk kueri atau petunjuk Penyimpanan Kueri. - Pada tingkat database, menggunakan
MAXDOP
konfigurasi cakupan database. - Pada tingkat beban kerja, menggunakan
MAX_DOP
CREATE WORKLOAD GROUP.
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 2528.
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
Di SQL Server 2016 (13.x) dan versi yang lebih baru, selama startup layanan jika Mesin Database mendeteksi lebih dari delapan inti fisik per simpul atau soket NUMA saat startup, node NUMA lunak 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 berikut ditujukan untuk menjaga semua utas pekerja dari kueri paralel dalam node numa lunak yang sama. Ini meningkatkan performa kueri dan distribusi utas pekerja di seluruh simpul NUMA untuk beban kerja. Untuk informasi selengkapnya, lihat Soft-NUMA (SQL Server).
Di SQL Server 2016 (13.x) dan versi yang lebih baru, 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 | Pertahankan MAXDOP di atau di bawah # 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 | Pertahankan MAXDOP di atau di bawah # prosesor logis per node 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 |
Simpul NUMA dalam tabel sebelumnya 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 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.
SQL Server 2014 dan versi yang lebih lama
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 | Pertahankan MAXDOP di atau di bawah # 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 | Pertahankan MAXDOP di atau di bawah # prosesor logis per node NUMA |
Server dengan beberapa simpul NUMA | Lebih besar dari delapan prosesor logis per simpul NUMA | Pertahankan MAXDOP di 8 |
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 untuk menjalankan RECONFIGURE
pernyataan, pengguna harus diberikan ALTER SETTINGS
izin tingkat server. Izin ALTER SETTINGS
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 berikut.
Opsi ini mengubah MAXDOP
untuk instans.
Di Object Explorer, klik kanan instans yang diinginkan dan pilih Properti.
Pilih simpul Tingkat Lanjut .
Dalam kotak Tingkat Paralelisme Maksimum, pilih jumlah maksimum prosesor yang akan digunakan dalam eksekusi rencana paralel.
Menggunakan Transact-SQL
Sambungkan ke Mesin Database dengan SQL Server Management Studio atau Azure Data Studio.
Dari bilah Standar, pilih Kueri Baru.
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 ke16
.USE master; GO EXECUTE sp_configure 'show advanced options', 1; GO RECONFIGURE WITH OVERRIDE; GO EXECUTE sp_configure 'max degree of parallelism', 16; GO RECONFIGURE WITH OVERRIDE; GO EXECUTE sp_configure 'show advanced options', 0; GO RECONFIGURE; GO
Untuk informasi selengkapnya, lihat Opsi konfigurasi server.
Tindak lanjut: Setelah Anda mengonfigurasi tingkat maksimum opsi paralelisme
Pengaturan berlaku segera tanpa memulai ulang server.
Konten terkait
- Pemrosesan kueri cerdas dalam database SQL
- Panduan arsitektur pemrosesan kueri
- DBCC TRACEON - Bendera Pelacakan (Transact-SQL)
- Petunjuk penyimpanan kueri
- Petunjuk kueri (Transact-SQL)
- GUNAKAN petunjuk kueri HINT
- ALTER DATABASE SCOPED CONFIGURATION (T-SQL)
- Opsi Konfigurasi Server mask afinitas
- Opsi konfigurasi server
- Panduan Arsitektur Pemrosesan Kueri
- Panduan arsitektur alur dan tugas
- sp_configure (T-SQL)
- Atur Opsi Indeks
- Tingkat paralelisme (DOP) umpan balik
- KONFIGURASI ULANG (Transact-SQL)
- Monitor dan Selaraskan Kinerja
- Mengonfigurasi Operasi Indeks Paralel