2010-09-30 22 views
6

Birçok SELECT komut içeren bir saklı yordam var.Can MAXDOP yalnızca kayıtlı bir prosedür için ayarlanabilir mi?

Her seçim komutunun sonunda OPTION (MAXDOP 8)'u yazmak yerine, saklı yordamın başlangıcında ayarlayabildiğim bir yöntem var mıdır ve onu sunucuda ayarlamadan sonuna kadar kaldırabilir miyim?

ex.

sp_configure 'max degree of parallelism', 4 
go 
reconfigure with override 
+1

Neden "MAXDOP 8?" Sunucu düzeyinde maksimum "1" paralellik dereceniz var mı? Sorgulama seçenekleri eklemeniz gerektiğini düşündüğünüz saklı yordamın nesi var? – LittleBobbyTables

+0

Bu ayarı kullanarak hangi sorunları düzeltmeye çalışıyorsunuz? Daha fazla detay (kod dahil) gönderebiliyorsanız daha iyi bir yol olabileceğinden şüpheleniyorum. –

cevap

4

Ne yazık ki, hayır.

Seçenekleriniz sp_configure 'max degree of parallelism' kullanarak sunucu düzeyinde ayarlanmış ya da OPTION (MAXDOP 8) kullanmak için saklı yordamınızdaki her SELECT deyimini günceller.

Bu, sorgu seçenekleri son çare olmalı ve sorgularınız kötü performans gösteriyorsa, altta yatan bir sorun olabilir.

2

Neyse ki hayır. Böyle şeyler yapmanın önerilen yolu, onları hiç yapmamaktır. Üzerine yazma sorgu, SQL Server gerçekten değil, kötü bir plan alır, yalnızca nadir özel durum olmalıdır.

anlaşılması gereken en önemli şey sorgu ipuçları tasarım olmasıdır: Bir sorgu planı yürürlüğe girecek zaman da, uygun eylem sorgu planı kılavuzları kullanmaktır zaman seçenekleri (kodunda kodunun değiştirilmesi gerekir) ve uygulamanın kötüye kullanılmasını büyük ölçüde azaltır (donanım değiştiğinde veya farklı dağıtım sitelerinde, ipucu yanlış). Buna karşılık sorgu planı kılavuzları dağıtım zaman seçenekleridir, kod değişiklikleri gerektirmezler ve site içindeki donanım kapasitesine ve iş yüküne göre dağıtılan her sitede özelleştirilebilirler.

+0

Herhangi bir ipucunun kullanımı nadiren tavsiye edilir, ama yine de onları bir sebepten ötürü kullanabiliriz ve nedenini düşünmek isteyebilirsiniz;) Üzgünüm, ama bu cevap bir işe yaramıyor. Bu seçeneğin faydalı olduğu belirli kenar durumlarını tanımak için –

11

Keşke kapsamı için MAXDOP ayarı yapmanın bir yolu olsaydı, ancak bunu yapmanın bir yolu olmadığına katılıyorum.

Yukarıdaki tavsiyelerin bazılarına karşı koymak için, MAXDOP ipucunun kullanılması, saatlerce dizin oluşturma, güncelleme veya veri işlemlerinin çok işlemcili bir ortamda yapılması, ancak MAXDOP'un işlemci sayısından daha düşük olarak ayarlanması gibi sebepler vardır. Normal iş saatleri gibi yoğun "en yoğun" saatlerde etkinliği dengelemeye yardımcı olur. Dizin ipuçları gibi bazı ipuçlarından farklı olarak, bu işlemlerinizi daha fazla iş parçacığı kullanmaya zorlamaz, ancak planın seçmesi durumunda bunu yapmasını sağlar.

Bazı dizin yapıları, iş parçacığını iki katına çıkarırsanız yaklaşık iki kat daha hızlı yürütür, böylece gerçek bir yarar vardır.

+0

[Artı 1]. – l46kok

İlgili konular