가끔 중단되어 MS SQL에서 실행되지 않는 복잡한 SQL 쿼리가있는 문제가 있습니다. 그러나 쿼리에 관련된 테이블에 대한 업데이트 통계를 실행하면 쿼리가 정상적으로 실행됩니다.쿼리가 멈추지 만 통계를 업데이트해도 문제가 없습니다.
원인에 대한 의견이나 요령이 있으십니까?
감사합니다.
가끔 중단되어 MS SQL에서 실행되지 않는 복잡한 SQL 쿼리가있는 문제가 있습니다. 그러나 쿼리에 관련된 테이블에 대한 업데이트 통계를 실행하면 쿼리가 정상적으로 실행됩니다.쿼리가 멈추지 만 통계를 업데이트해도 문제가 없습니다.
원인에 대한 의견이나 요령이 있으십니까?
감사합니다.
SQL Server는 통계 정보를 사용하여 데이터를 필터링하고 데이터베이스 테이블에 대한 액세스를 줄이는 최적의 순서를 결정하는 "실행 계획"을 만듭니다.
이 실행 계획은 데이터베이스 캐시에 저장되며 데이터베이스가 온라인 상태 인 한 재사용됩니다. 통계는 다시 작성되지 않으며 u 리는 수정되지 않습니다.
인덱스를 업데이트하면 통계도 함께 업데이트됩니다.
결과적으로 쿼리에 대한 저장된 실행 계획이 더 이상 최적이 아니므로 결과가 더 이상 사용되지 않습니다.
인덱스를 다시 작성하기 전에 SQL Server는 테이블에 대한 사용되지 않는 잠금 및 트랜잭션도 닫을 것으로 예상합니다. 그것은 문서화되지 않은 기능입니다.
[이 문제] (http://sqlinthewild.co.za/index.php/2011/03/22/statistics-row-estimations-and-the-ascending-date-column/) 또는 매개 변수 스니핑. –
많은 감사합니다 마틴. 나는 그것들을 조사 할 것이다. –