READPASTUygulamamı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 READPASTipucu 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 READPASTbenzer ş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
NOEXPANDYanı 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 .



