2014-03-26 4 views
0

두 데이터베이스에 모두 VIEW가 있습니다. 한 데이터베이스에서 실행하려면 1 초 미만이 소요되지만 다른 데이터베이스에서는 1 분 이상 소요됩니다. 색인을 확인하고 모든 것이 동일합니다. 행 수 사이의 차이는 서로 다른 데이터베이스의 10 백만 행보다 적습니다.SQL Server - 실행 계획

나는 exectuion 계획을 확인하고, 더 많은 시간이 걸리는 데이터베이스인데, 쿼리 배치에서 100 % 책임이있는 3 개의 해시 일치 (1 개의 집계와 2 개의 오른쪽 외부 조인)가 있습니다. 다른 데이터베이스에서 나는 이것을 실행 계획에 가지고 있지 않습니다.

어디에서 문제를 검색 할 수 있습니까?

감사합니다. 나쁜 영어로 죄송합니다.

+0

[SQL Server 프로파일 러] (http://technet.microsoft.com/en-us/library/ms181091.aspx) –

+1

두 테이블의 CREATE SQL 코드와 같은 세부 정보를 추가하고 쿼리의 EXPLAIN 결과를 추가해야합니다 . –

+0

두 DB에서'Update Statistics'를 실행 한 다음 두 가지 ACTUAL 실행 계획을 게시하여 어느 테이블이 더 큰지를 알려줍니다. 조인이있는 경우 각 데이터베이스의 모든 조인에 대한 행 수를 알려줍니다. – Stoleg

답변

2

다른 유형의 조인에 대한 빠른 설명은 link here에서 확인할 수 있습니다. 다른 하나는하지 않습니다

  1. 한 DB가 가지고 인덱스 :

    기본적으로, 당신이 우리에게 준 정보로, 여기에 문제가 무엇인지에 대한 대안의 일부입니다.

  2. 하나의 DB에있는 일부 조인 된 테이블 간의 크기 차이는 사용 된 조인 유형을 변경하기에 충분합니다.
  3. 귀하의 인덱스가 두 DB 테이블 그룹에서 동일 할 수도 있지만 다른 DB는 구식/불량 통계 또는 너무 많은 인덱스 조각화를 가지고있어 최적 이하 계획을 초래할 수 있습니다.

편집 :

의견 아래,이 인덱스를 재 구축하는 & 다시 인덱스를 삭제하는 유사하다는 사실에 대해서. 또한 인덱스를 생성하면 해당 인덱스에 대한 통계도 생성되므로 재구성을 통해 인덱스를 관리 할 수 ​​있습니다. 때때로 그것은 충분하지 않습니다.

공식적으로 기본 통계는 실제 데이터의 약 20 % 샘플링 속도로 작성되어야하지만 실제로 샘플링 속도는 테이블의 크기에 따라 단지 몇 퍼센트 정도 낮을 수 있습니다. 거의 20 %에 가까운 곳이 거의 없습니다. 따라서 많은 DBA가 FULLSCAN을 사용하여 수동으로 통계를 작성하여 100 % 샘플링 속도를 얻습니다.

통계에는 어느 정도의 저장 공간이 필요하므로 유지 관리 계획에 필요한 추가 시간 외에 별도의 단점이 없습니다. 현재 프로젝트에서 우리는 통계에 대한 기본 샘플링 속도가 충분하지 않고 여전히 나쁜 계획을 산출하는 몇 가지 상황이 있습니다. 따라서 FULLSCAN으로 모든 통계를 정기적으로 업데이트하여 실적이 최고 수준으로 유지되는지 확인하십시오.

+0

고맙습니다. @ 칸. 나는 당신이 통계를 업데이트 할 필요가 없다는 것을 다시 한번 생각해 보았다. 그러나 그것은 잘못되었습니다. 저는 오늘 아침에했고, 완전히 작동합니다. 역시 0 초가 걸렸습니다. : D – FpontoDesenv

+1

NP! 당신이 듣고있어 기쁘다. 또한 통계에 대해 설명한 내용에 대한 자세한 내용은 편집을 참조하십시오. – Kahn