Seperti yang disebutkan Kaboing, MAXDOP(n)
sebenarnya mengontrol jumlah inti CPU yang digunakan dalam prosesor kueri.
Pada sistem yang benar-benar tidak aktif, SQL Server akan mencoba menarik tabel ke memori secepat mungkin dan menggabungkannya di memori. Bisa jadi, dalam kasus Anda, yang terbaik adalah melakukan ini dengan satu CPU. Ini mungkin memiliki efek yang sama seperti menggunakan OPTION (FORCE ORDER)
yang memaksa pengoptimal kueri untuk menggunakan urutan gabungan yang telah Anda tentukan. DALAM beberapa kasus, saya telah melihat OPTION (FORCE PLAN)
kurangi kueri dari 26 detik menjadi 1 detik waktu eksekusi.
Books Online selanjutnya mengatakan bahwa kemungkinan nilai untuk MAXDOP
adalah:
0 - Menggunakan jumlah aktual CPU yang tersedia tergantung pada beban kerja sistem saat ini. Ini adalah nilai default dan pengaturan yang disarankan.
1 - Menekan pembuatan rencana paralel. Operasi akan dijalankan secara serial.
2-64 - Membatasi jumlah prosesor ke nilai yang ditentukan. Lebih sedikit prosesor dapat digunakan tergantung pada beban kerja saat ini. Jika nilai yang lebih besar dari jumlah CPU yang tersedia ditentukan, jumlah sebenarnya dari CPU yang tersedia akan digunakan.
Saya tidak yakin apa penggunaan terbaik MAXDOP
adalah, namun saya akan menebak dan mengatakan bahwa jika Anda memiliki tabel dengan 8 partisi di atasnya, Anda ingin menentukan MAXDOP(8)
karena keterbatasan I/O, tapi saya bisa saja salah.
Berikut adalah beberapa tautan cepat yang saya temukan tentang MAXDOP
:
Buku Online:Derajat Paralelisme
Pedoman umum yang digunakan untuk mengonfigurasi opsi MAXDOP