FIX: SELECT 쿼리 예기치 않게 잘못된 개수의 행 SQL Server 2005 Mobile Edition 및 SQL Server 2005 Compact Edition 반환합니다.

기술 자료 번역 기술 자료 번역
기술 자료: 933697 - 이 문서가 적용되는 제품 보기.
모두 확대 | 모두 축소

이 페이지에서

현상

Microsoft SQL Server 2005 Mobile Edition 및 Microsoft SQL Server 2005 Compact Edition SELECT 쿼리를 실행할 때 쿼리에 예기치 않게 잘못된 행 수를 반환합니다. 다음 조건에 해당하면 이 문제가 발생합니다.
  • 내부 조인 SELECT 쿼리가 포함되어 있습니다.
  • 조인된 두 테이블 중 하나에 조인된 열을 인덱스가 있습니다. 다른 테이블에 인덱스가 해당 열의 모든 있습니다.
예를 들어, SQL Server 2005 Mobile Edition 다음 쿼리를 실행하여:
select * from T1, T2 where T1.Col = T2.Col1 order by T1.Col
참고 예제에서는 T1 테이블에 인덱스가 있습니다 열에 대한 열 Col1 인덱스를 Col. 테이블 T2 있지 않습니다.

원인

쿼리 최적화 프로그램은 이전 계획을 완전히 무시하고 있지 않은 때문에 이 문제가 발생합니다. 쿼리 최적화 프로그램은 쿼리 최적화 프로그램은 쿼리를 실행하는 최선의 계획을 결정하는 전에 여러 쿼리 계획을 고려합니다. 일부 경우에는 쿼리 최적화 프로그램이 인덱스를 사용하여 조건을 평가하는 계획을 찾을 수 있습니다. 그러나 쿼리 최적화 프로그램은 나중에 더 나은 계획을 찾을 수 있습니다. 이 경우 쿼리 최적화 프로그램은 더 나은 계획을 사용하여 이전 계획을 삭제합니다.

해결 방법

이 문제를 해결하려면 다음 방법 중 하나를 사용하십시오.
  • 두 번째 테이블의 조인된 열 인덱스를 만듭니다.
  • 첫 번째 테이블의 조인된 열의 인덱스를 삭제하십시오.
참고 "현상" 절에 있는 예제에서 두 번째 테이블의 조인된 열을 T2.Col1 있습니다. 첫 번째 테이블의 조인된 열을 T1.Col 있습니다.

현재 상태

Microsoft는 "본 문서의 정보는 다음의 제품에 적용됩니다." 절에 나열된 제품에서 이 문제를 확인했습니다.

추가 정보

문제를 재현하는 방법

  1. SQL Server 2005 Mobile Edition 데이터베이스에 대해 다음 문을 실행하여:
    CREATE TABLE T1 (COL INT);
    GO;
    CREATE INDEX T1_IDX ON T1 (COL);
    GO;
    INSERT INTO T1 VALUES (1);
    INSERT INTO T1 VALUES (2);
    INSERT INTO T1 VALUES (3);
    GO;
    CREATE TABLE T2 (COL1 INT, COL2 INT);
    GO;
    INSERT INTO T2 VALUES (1,1);
    INSERT INTO T2 VALUES (2,2);
    INSERT INTO T2 VALUES (3,3);
    GO;
  2. 다음 문을 실행합니다:
    select * from T1, T2 where T1.Col = T2.Col1 order by T1.Col
    "현상" 절에서 설명한 문제가 발생합니다.

속성

기술 자료: 933697 - 마지막 검토: 2007년 3월 13일 화요일 - 수정: 1.2
본 문서의 정보는 다음의 제품에 적용됩니다.
  • Microsoft SQL Server 2005 Mobile Edition
  • Microsoft SQL Server 2005 Compact Edition
키워드:?
kbmt kbtshoot kbexpertiseadvanced kbbug KB933697 KbMtko
기계 번역된 문서
중요: 본 문서는 전문 번역가가 번역한 것이 아니라 Microsoft 기계 번역 소프트웨어로 번역한 것입니다. Microsoft는 번역가가 번역한 문서 및 기계 번역된 문서를 모두 제공하므로 Microsoft 기술 자료에 있는 모든 문서를 한글로 접할 수 있습니다. 그러나 기계 번역 문서가 항상 완벽한 것은 아닙니다. 따라서 기계 번역 문서에는 마치 외국인이 한국어로 말할 때 실수를 하는 것처럼 어휘, 구문 또는 문법에 오류가 있을 수 있습니다. Microsoft는 내용상의 오역 또는 Microsoft 고객이 이러한 오역을 사용함으로써 발생하는 부 정확성, 오류 또는 손해에 대해 책임을 지지 않습니다. Microsoft는 이러한 문제를 해결하기 위해 기계 번역 소프트웨어를 자주 업데이트하고 있습니다.

피드백 보내기

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com