READPAST
응용 프로그램의 재무 하위 시스템에서 리소스 잠금을 줄이기 위해 힌트를 사용하여 조사하고 있습니다.
금융 거래 기록은 항상 추가되거나 업데이트되거나 삭제되지 않으므로 좋은 방법으로 보입니다. 건너 뛸 수있는 유일한 행은 트랜잭션 내부에 삽입 된 새 행입니다. 그들은 거래가 이루어질 때까지 효과적으로 외부 세계에 존재하지 않습니다.
그러나 READPAST
힌트를 넣은 인덱싱 된 뷰를 사용하는 쿼리의 성능이 떨어졌습니다 . 쿼리 계획을 비교하면 힌트와 비슷합니다. 쿼리 최적화 프로그램은 인덱싱 된 뷰를 사용하지 않고 대신 일반 뷰처럼 취급합니다.
왜 그런지 잘 모르겠습니다. 조작 중에 키를 잠글 수 있고 추가 READPAST
가 비슷하게 작동한다는 점에서 인덱싱 된 뷰가 다른 인덱스와 같다고 생각합니다.
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
힌트를 추가 해도 효과가있는 것 같지만 READPAST
쿼리 최적화 프로그램 이 왜 (전체 답변의 일부로) 선택 했는지 에 대해 더 배우고 싶습니다 .