FIX: SQL Server 2005의 분할된 테이블에서 상위 n 절을 사용하는 Transact-SQL 쿼리를 실행할 때 분할된 테이블입니다 비효율적인 쿼리 계획을 생성할 수 있습니다.

기술 자료 번역 기술 자료 번역
기술 자료: 924601 - 이 문서가 적용되는 제품 보기.
버그 #: 1253 (SQL 핫픽스)
Microsoft는 Microsoft SQL Server 2005 수정 프로그램을 다운로드 가능한 파일로 배포합니다. 수정 누적되는 형태이므로 핫픽스가 모두 각 새 릴리스에 포함되어 있으며 이전 SQL Server 2005 포함된 모든 보안 수정 프로그램 릴리스의 수정.
모두 확대 | 모두 축소

이 페이지에서

요약

이 문서에서는 다음을 이 핫픽스 릴리스에 대한 설명입니다.
  • 이 핫픽스 패키지에서 해결된 문제
  • 핫픽스 패키지 적용을 위한 전제 조건
  • 핫픽스 패키지 적용 후 컴퓨터를 다시 시작해야 하는지 여부
  • 핫픽스 패키지가 다른 핫픽스 패키지에 대체됩니다 여부를
  • 핫픽스 패키지 적용 후 사용하면 모든 레지스트리를 변경해야 하는지 여부
  • 핫픽스 패키지에 포함된 파일

현상

Microsoft SQL Server 2005의 분할된 테이블에서 상위 n 절을 사용하는 Transact-SQL 쿼리를 실행하면 분할된 테이블의 비효율적인 쿼리 계획을 생성할 수 있습니다. 계획을 보다 효율적인 클러스터되지 않은 인덱스 검색 수행하는 대신 클러스터된 인덱스 스캔을 수행할 수 있습니다. 예를 들어, 다음 조건에 해당하면 이 문제가 발생합니다.
  • tblTest 테이블에 대해 쿼리를 실행할 수 있습니다. 쿼리는 다음과 유사할 수 있습니다:
    SELECT top 1 * FROM tblTest WHERE OrderID = 'ABCDXYZ' ORDER BY OrderDateTime DESC
  • tblTest 테이블의 OrderDateTime 열은 분할됩니다.
  • OrderDateTime 열에 클러스터된 인덱스가 만들어집니다.
  • OrderID 열에 클러스터되지 않은 인덱스가 만들어집니다.
슬라이드 노트
  • 클러스터된 인덱스 스캔 ORDER BY 절 사용하지 않고 계속 수행됩니다.
  • 클러스터되지 않은 인덱스 검색 계획 테이블 및 인덱스를 분할할 때 생성됩니다.

원인

쿼리 최적화 프로그램이 인덱스를 사용하여 비용을 overestimates 때문에 이 문제가 발생하는 분할된 테이블의 검색.

해결 방법

핫픽스 정보

Microsoft에서 제공하는 핫픽스를 사용할 수 있습니다. 그러나 이 핫픽스는 이 문서에서 설명된 문제만 해결할 수 있습니다. 이 문서에 설명된 특정 문제가 발생한 시스템에만 이 핫픽스를 적용하십시오. 추후에 이 핫픽스를 테스트할 수 있습니다. 따라서 이 문제로 심각하게 영향을 받은 경우를 제외하곤 이 핫픽스가 포함된 다음 소프트웨어 업데이트까지 기다리는 것이 좋습니다.

다운로드할 핫픽스가 있는 경우, 이 기술 자료 문서의 맨 위에 "사용 가능한 핫픽스 다운로드" 링크가 있습니다. 이 링크가 표시되지 않는 경우, Microsoft 고객 지원 서비스에 문의하여 핫픽스를 구할 수 있습니다.

참고 추가적인 문제가 발생할 경우 또는 모든 문제 해결에 필요한 경우 별도의 서비스 요청을 만들어야 할 수도 있습니다. 핫픽스에 적용되지 않는 추가 지원 질문과 문제에는 일반 지원 비용이 적용됩니다. Microsoft 고객 서비스 지원 전화 번호 전체 목록 또는 별도의 서비스 요청을 만들려면 다음 Microsoft 웹 사이트로 이동하십시오:
http://support.microsoft.com/contactus/?ws=support
참고 "핫픽스 다운로드 가능" 형식에는 핫픽스를 사용할 수 있는 언어가 표시됩니다. 사용자 언어가 표시되지 않으면 해당 언어의 핫픽스를 사용할 수 없습니다 때문입니다.

전제 조건

이 핫픽스를 적용하려면 SQL Server 2005 서비스 팩 컴퓨터에 설치되어 있는 1 (SP1) 있어야 합니다. SQL Server 2005 서비스 팩 1을 구하는 방법에 대한 자세한 내용은 Microsoft 기술 자료의 다음 문서를 참조하십시오.
913089SQL Server 2005 최신 서비스 팩을 구하는 방법

정보를 다시합니다

이 핫픽스를 적용한 후에는 컴퓨터를 다시 시작할 필요가 없습니다.

레지스트리 정보

레지스트리를 변경할 필요가 없습니다.

핫픽스 파일 정보

이 핫픽스에는 이 문서에 나와 있는 문제를 해결하는 데 필요한 파일만 포함되어 있습니다. 이 핫픽스에는 제품을 최신 빌드로 완전히 업데이트하는 데 필요한 모든 파일을 포함할 수 없습니다.
이 핫픽스의 영어 버전은 다음 표에 나열된 파일 특성(또는 그 이후의 파일 특성)이 있습니다. 이러한 파일의 시간과 날짜는 UTC (협정 세계시) 로 나열됩니다. 파일 정보에서는 현지 시간으로 변환됩니다. UTC와 로컬 시간의 차이를 알려면 제어판의 날짜 및 시간 항목에서 표준 시간대 탭을 사용하십시오.
SQL Server 2005, 32 비트 x 86 버전
표 축소표 확대
파일 이름파일 버전파일 크기날짜시간플랫폼
Logread.exe2005.90.2187.0398,1122006-31-8월19: 40x 86
Microsoft.analysisservices.adomdclient.dll9.0.2187.0543,5202006-31-8월19: 41x 86
Microsoft.analysisservices.deploymentengine.dll9.0.2187.0138,0162006-31-8월19: 38x 86
Microsoft.analysisservices.dll9.0.2187.01,215,2642006-31-8월19: 39x 86
Microsoft.sqlserver.mgdsqldumper.dll2005.90.2187.075,5522006-31-8월19: 37x 86
Microsoft.sqlserver.sqlenum.dll9.0.2187.0908,0642006-31-8월19: 39x 86
Msgprox.dll2005.90.2187.0197,9202006-31-8월19: 40x 86
Msmdlocal.dll9.0.2187.015,610,1442006-31-8월19: 39x 86
Msmdredir.dll9.0.2187.03,990,3042006-31-8월19: 40x 86
Replprov.dll2005.90.2187.0547,6162006-31-8월19: 41x 86
Replrec.dll2005.90.2187.0782,1122006-31-8월19: 39x 86
Sqlaccess.dll2005.90.2187.0347,9362006-31-8월19: 40x 86
Sqlagent90.exe2005.90.2187.0319,2642006-31-8월19: 39x 86
Sqlservr.exe2005.90.2187.028,961,1122006-31-8월19: 39x 86
Xpstar90.dll2005.90.2187.0292,6402006-31-8월19: 42x 86
Xpstar90.rll2005.90.2187.0152,8642006-31-8월19: 39x 86
SQL Server 2005, 64비트 버전
표 축소표 확대
파일 이름파일 버전파일 크기날짜시간플랫폼
Logread.exe2005.90.2187.0522,5282006-01-9월00: 06x 64
Microsoft.analysisservices.adomdclient.dll9.0.2187.0543,5202006-31-8월19: 41x 86
Microsoft.analysisservices.adomdclient.dll9.0.2187.0543,5202006-01-9월00: 02x 86
Microsoft.analysisservices.deploymentengine.dll9.0.2187.0138,0162006-31-8월19: 38x 86
Microsoft.analysisservices.dll9.0.2187.01,215,2642006-31-8월19: 39x 86
Microsoft.sqlserver.mgdsqldumper.dll2005.90.2187.075,5522006-31-8월19: 37x 86
Microsoft.sqlserver.mgdsqldumper.dll2005.90.2187.091,4242006-01-9월00: 03x 64
Microsoft.sqlserver.sqlenum.dll9.0.2187.0875,2962006-01-9월00: 04x 86
Msgprox.dll2005.90.2187.0259,3602006-01-9월00: 05x 64
Msmdlocal.dll9.0.2187.015,610,1442006-31-8월19: 39x 86
Msmdredir.dll9.0.2187.03,990,3042006-31-8월19: 40x 86
Replprov.dll2005.90.2187.0745,2482006-01-9월00: 03x 64
Replrec.dll2005.90.2187.01,008,4162006-01-9월00: 04x 64
Sqlaccess.dll2005.90.2187.0355,1042006-01-9월00: 06x 86
Sqlagent90.exe2005.90.2187.0390,9442006-01-9월00: 06x 64
Sqlservr.exe2005.90.2187.039,341,8562006-01-9월00: 03x 64
Xpstar90.dll2005.90.2187.0540,9602006-01-9월00: 06x 64
Xpstar90.rll2005.90.2187.0153,3762006-01-9월00: 04x 64
SQL Server 2005, Itanium 아키텍처 버전
표 축소표 확대
파일 이름파일 버전파일 크기날짜시간플랫폼
Logread.exe2005.90.2187.01,095,4562006-31-8월23:02IA-64
Microsoft.analysisservices.adomdclient.dll9.0.2187.0543,5202006-31-8월19: 41x 86
Microsoft.analysisservices.adomdclient.dll9.0.2187.0543,5202006-31-8월23:01x 86
Microsoft.analysisservices.deploymentengine.dll9.0.2187.0138,0162006-31-8월19: 38x 86
Microsoft.analysisservices.dll9.0.2187.01,215,2642006-31-8월19: 39x 86
Microsoft.sqlserver.mgdsqldumper.dll2005.90.2187.075,5522006-31-8월19: 37x 86
Microsoft.sqlserver.mgdsqldumper.dll2005.90.2187.0163,1042006-31-8월23:00IA-64
Microsoft.sqlserver.sqlenum.dll9.0.2187.0875,2962006-31-8월23:02x 86
Msgprox.dll2005.90.2187.0542,4962006-31-8월23:01IA-64
Msmdlocal.dll9.0.2187.048,587,0402006-31-8월23:01IA-64
Msmdredir.dll9.0.2187.06,237,4722006-31-8월23:02IA-64
Replprov.dll2005.90.2187.01,617,1842006-31-8월23:02IA-64
Replrec.dll2005.90.2187.02,141,4722006-31-8월23:02IA-64
Sqlaccess.dll2005.90.2187.0349,4722006-31-8월23:01IA-64
Sqlagent90.exe2005.90.2187.01,143,5842006-31-8월23:02IA-64
Sqlservr.exe2005.90.2187.072,216,8642006-31-8월23:01IA-64
Xpstar90.dll2005.90.2187.0951,0722006-31-8월23:04IA-64
Xpstar90.rll2005.90.2187.0152,3522006-31-8월23:02IA-64

현재 상태

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

추가 정보

"현상" 절에 쿼리의 경우 분할된 테이블을 사용하는 쿼리 계획을 다음과 유사할 수 있습니다:
SELECT top 1 * FROM tblTest WHERE ORDERID = 'AE5PL-14' ORDER BY OrderDateTime DESC
|--Top(TOP EXPRESSION:((1)))
|--Nested Loops(Inner Join, OUTER REFERENCES:([PtnIds1004]) PARTITION ID:([PtnIds1004]))
|--Constant Scan(VALUES:(((32)),((31)),((30)),((29)),((28)),((27)),((26)),((25)),((24)),((23)),((22)),((21)),((20)),((19)),((18)),((17)),((16)),
((15)),((14)),((13)),((12)),((11)),((10)),((9)),((8)),((7)),((6)),((5)),((4)),((3)),((2)),((1))))
|--Clustered Index Scan(OBJECT:([part2].[dbo].[tblTest].[IX_tblTest_RT]), WHERE:([part2].[dbo].[tblTest].[OrderID]='AE5PL-14') 
ORDERED BACKWARD 
PARTITION ID:([PtnIds1004]))
A 쿼리 분할되지 않은 테이블을 사용하는 계획을 다음과 유사할 수 있습니다:
SELECT top 1 * FROM tblTest WHERE ORDERID = 'AE5PL-14' ORDER BY OrderDateTime DESC
|--Top(TOP EXPRESSION:((1)))
|--Nested Loops(Inner Join, OUTER REFERENCES:([Uniq1002], [nonpart2].[dbo].[tblTest].[OrderDateTime], [Expr1004]) WITH 
ORDERED PREFETCH)
|--Index Seek(OBJECT:([nonpart2].[dbo].[tblTest].[IX_tblTest]), SEEK:([nonpart2].[dbo].[tblTest].[OrderID]='AE5PL-14') ORDERED 
BACKWARD)
|--Clustered Index Seek(OBJECT:([nonpart2].[dbo].[tblTest].[IX_tblTest_RT]), SEEK:([nonpart2].[dbo].[tblTest].[OrderDateTime]=
[nonpart2].[dbo].[tblTest].[OrderDateTime] AND [Uniq1002]=[Uniq1002]) LOOKUP ORDERED FORWARD)

추가 정보는 다음 문서 번호를 클릭하여 Microsoft 기술 자료에서 확인하십시오:
824684Microsoft 소프트웨어 업데이트를 설명하는 데 사용되는 표준 용어에 대한 설명

관련된 문제에 대한 자세한 내용은 Microsoft 기술 자료의 다음 문서를 참조하십시오.
923849FIX: SQL Server 2005의 분할된 테이블을 참조하는 쿼리를 실행할 때 쿼리 성능이 저하될 수 있습니다.

속성

기술 자료: 924601 - 마지막 검토: 2007년 11월 20일 화요일 - 수정: 1.6
본 문서의 정보는 다음의 제품에 적용됩니다.
  • Microsoft SQL Server 2005 Developer Edition
  • Microsoft SQL Server 2005 Enterprise Edition
  • Microsoft SQL Server 2005 Enterprise Edition for Itanium Based Systems
  • Microsoft SQL Server 2005 Enterprise X64 Edition
  • Microsoft SQL Server 2005 Standard X64 Edition
  • Microsoft SQL Server 2005 Standard Edition
키워드:?
kbmt kbautohotfix kbfix kbexpertiseadvanced kbsql2005tsql kbhotfixserver kbqfe kbpubtypekc KB924601 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