READPAST
Uygulamamızın finansal alt sistemindeki kaynak kilitlenmesini azaltmak için ipucunu kullanarak araştırıyorum .
Finansal işlem kayıtları yalnızca eklendiği, hiç güncellenmediği veya silinmediği için iyi bir yol gibi görünüyordu. Atlanacak tek satır, bir işlemin içine eklenen yeni satırlardır; işlem yapılıncaya kadar dış dünyaya etkin bir şekilde var olmazlar.
Ancak, ben READPAST
ipucu koymak dizinlenmiş görünümler kullanan sorgularda kötü performans fark ettim . Sorgu planlarını karşılaştırarak ipucuna benziyor, sorgu optimize edici dizinlenmiş görünümü kullanmamayı seçiyor ve bunun yerine normal bir görünüm gibi davranmaya geri dönüyor.
Bunun neden olacağından emin değilim; Dizinlenmiş görünümleri işlemleri sırasında kilitlenebilir ve ekleme READPAST
benzer şekilde çalışacak diğer dizin gibi olması hayal .
SELECT TOP 1 isa.InvoiceId
FROM Financial_InvoiceSummaryAmounts isa WITH (READPAST)
WHERE isa.TotalOwedAmount = 0.0
SELECT TOP 1 isa.InvoiceId
FROM Financial_InvoiceSummaryAmounts isa
WHERE isa.TotalOwedAmount = 0.0
NOEXPAND
Yanı sıra bir ipucu eklemek işe yarıyor gibi görünüyor, ama muhtemelen neden READPAST
(tam bir cevabın bir parçası olarak) ilk etapta bu seçeneği yapmak için sorgu optimizer neden neden hakkında daha fazla bilgi edinmek istiyorum .