@SolomonRutzky haklı.
SQL Profiler Trace ( Sproc'u düzenlemeden ) tek yoldur .
Sproc Düzenleyin:
Ancak , bir sonraki en iyi şey söz konusu Sproc'u hafifçe düzenlemektir.
Geçerli Saat ile başlangıçta bir DateTime değişkeni bildirin.
Sproc Sonunda, Sproc_StartTime, Sproc_EndTime ve Parametre Değerlerini Tabloya Kaydedin.
DateDiff () işlevini kullanmak için, yalnızca Sproc'un işlenmesinde uzun bir süre kullanıldığında günlüğe kaydetmek için bazı koşullu mantık bile ekleyebilirsiniz.
Bu, Sproc'unuzu hızlandırabilir ve Sproc'un uç üstü çalıştığı zamanlar için Günlük Tablonuzun Alan Tüketimini azaltabilir.
Ardından, aylar içinde sorgulayabileceğiniz ve analiz edebileceğiniz bir Günlük Dosyanız var (Prod'da çalışan bir İzleme olmadan).
Sproc'unuzu ayarlamayı tamamladığınızda, eklediğiniz birkaç Timer ve Logger mantığını silin.
Önbellekli Plan Parametre Değerleri:
Günlük Önbelleğinize Geçerli Önbelleğe Alınmış Plan Parametre Değerlerini eklemenin , performans sorununu birleştirip birleştirmediklerini belirlemenize yardımcı olabileceğini belirtmeliyim . Verileri dilimlemek ve küp şeklinde kesmek için kullanılacağını bildiğimde Sproc'umdaki Parametrelerin nasıl ele alınacağını ayarlamak için
kullanıyorum OPTIMIZE FOR
. İsteğe Bağlı Filtreler ile aynı Sproc parametrelerini kullanırken tutarlı ve hızlı sonuçlar elde edilmesini
buluyorum .
Onlarla nasıl başa çıkacağınızı belirtmeniz kesinlikle daha az değişkendir.OPTIMIZE FOR
Aşağıda, Seçim İfadenizin altına ekleyebileceğiniz öğelerin bir örneği verilmiştir:
OPTION(OPTIMIZE FOR (@SiteID = 'ABC',
@LocationID = NULL, @DepartmentID = NULL,
@EmployeeID = NULL, @CustomerID = NULL,
@ProductID = NULL, @OrderID = NULL, @OrderStatusID = NULL,
@IncludedCancelledOrders = 1,
@StartDate UNKNOWN, @EndDate UNKNOWN))