문제

나는 어떤 색인 된 견해가 어떤지의 여지가 있지만 밑줄이있는 테이블의 데이터가 변경되었을 때 정확히 어떤 일이 일어 났는지 궁금합니다. 전체 뷰 캐시가 폐기 된 OD가 변경된 행입니까?

호텔 가용성 (+100k 레코드)을 검색하는 데 사용되는 여러 테이블 (+5)에 대한 매우 복잡한 쿼리가 있으며 IMHO 색인 뷰는 성능을 크게 향상시킬 수 있습니다. 그러나 데이터 (몇 줄)가 자주 변경됩니다 (실내 판매, 관리자 ATC에서는 무료 객실이 변경되었습니다.) 한 행 만 변경 될 때마다보기가 재건되면 내 앱의 병 목이됩니다.

아니면 매우 Coplex 쿼리를 "캐시"하는 방법이 있습니까?

고맙습니다.

도움이 되었습니까?

해결책

Technet 문서에서 :

일반 인덱스와 달리, 참여 테이블에 단일 행 삽입은 인덱스 뷰에서 여러 행 변경을 유발할 수 있습니다. 단일 행이 다른 테이블의 여러 행과 결합 될 수 있기 때문입니다. 업데이트 및 삭제도 마찬가지입니다. 결과적으로, 인덱스 뷰의 유지 보수는 테이블의 인덱스를 유지하는 것보다 더 비쌀 수 있습니다.

원천:

http://technet.microsoft.com/en-us/library/cc917715.aspx#xsltsection124121120120

즉, 뷰를 전체적으로 업데이트/재현하지 않고도 관련된 경우 행이 업데이트되는 것처럼 들립니다.

다른 팁

SQL Server를 실행하고 있다고 가정합니다. 100k+ 행은 많지 않습니다. 5ish 테이블에 가입하는 경우 인덱스 뷰 구현을 고려하기 전에 합류하는 열에 인덱스가 포함되어 있는지 확인하는 것이 좋습니다. 쿼리 분석기를 사용하여 쿼리에서 병 목을 직접 찾으십시오. 작은 테이블에 성능 문제가 있다면 아마도 불쾌한 테이블 스캔이있을 수 있습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top