Kapan harus membuat perubahan pada ambang biaya untuk paralelisme

10

Saat memeriksa masalah kinerja, saya telah melihat arus masuk pada CXPACKETS yang menyarankan saya mungkin perlu melihat ambang biaya untuk paralelisme dan mungkin MAXDOP.

Sebelum membuat perubahan drastis ke MAXDOP, saya telah mengikuti saran dari banyak orang lain termasuk @rdenny dalam jawaban untuk nada kinerja CXPACKET untuk SQL Server 2008 dan jawaban @ aron-Bertrand dari Berurusan dengan menunggu CXPACKET - menetapkan ambang biaya untuk paralelisme . Saya telah menambahkan pemeliharaan untuk memperbarui statistik sepenuhnya setiap malam. Ini terasa seperti langkah yang masuk akal.

Namun, membuat modifikasi pada ambang biaya masih merupakan sesuatu yang mengganggu saya.

Pada titik mana seharusnya ambang biaya untuk paralelisme diubah? Apakah ada yang punya contoh di mana (setelah memeriksa biaya pertanyaan dan beban kerja) mereka membuat perubahan pada biaya ini?

Mohon maaf jika ini adalah sesuatu yang telah dijawab dalam pertanyaan sebelumnya.

Terima kasih!

the_good_pony
sumber

Jawaban:

3

Menggunakan MAXDOP = 1 bisa membantu, tapi itu senjata besar. Bisa jadi masalah sebenarnya adalah kegunaan indeks. Mungkin indeks baru atau berbeda akan menyelesaikan masalah.

Mengikuti komentar Mr Denny dan Aaron Bertrand, apakah Anda menemukan menunggu apa lagi dalam hubungan itu yang kemungkinan menjadi penyebab menunggu CXPACKET?

Jonathan Kehayias menyarankan pertanyaan yang mungkin membantu Anda menilai pengalaman paralelisme Anda dan membuat keputusan yang lebih bijaksana. Tetapi Anda juga harus membaca percakapan antara Jonathan dan Paul White.

https://www.sqlskills.com/blogs/jonathan/tuning-cost-threshold-for-parallelism-from-the-plan-cache/

RLF
sumber
1

Saya akan menyarankan Anda untuk terlebih dahulu melihat ke dalam pengaturan MAXDOP karena pengaturan default 0 (gunakan semua utas yang tersedia) mungkin berbahaya karena kueri pelarian yang memakan semua utas yang tersedia akan menyebabkan kelaparan utas.

Lihat jawaban saya di sini untuk cara menghitung pengaturan MAXDOP untuk instance server Anda.

Ambang biaya paralelisme mengacu pada apa yang harus menjadi biaya permintaan minimum sebelum Paralelisme dipertimbangkan oleh pengoptimal.

Remenber yang ditunggu-tunggu CXPACKET hanyalah gejala karena ada sesuatu yang salah terkait dengan kueri - statistik usang atau indeks yang hilang menghasilkan rencana yang buruk atau berbeda.

Anda dapat menggunakan sys.dm_exec_cached_plansdan sys.dm_exec_query_planDMV untuk menambang informasi dari cache paket seperti yang dijelaskan dalam Tuning 'ambang biaya untuk paralelisme' dari Cache Paket oleh Jonathan dan Batasan Biaya untuk Paralelisme .

Saya akan menyarankan untuk tetap cost threshold for parallelismsebagai default kecuali jika Anda memiliki pertanyaan pencarian sumber daya yang terkuras, melakukan pemeliharaan Indeks dan statistik serta memeriksa jika Anda tidak memiliki indeks yang hilang sehingga permintaan Anda mungkin mendapatkan manfaat.

Catatan: Pengaturan Maxdop juga dapat diterapkan pada tingkat permintaan menggunakan OPTION (MAXDOP n)yang akan mengesampingkan pengaturan lebar server.

Kin Shah
sumber