FIX: SQL Server 2005에서 병렬 실행 계획을 실행할 때 액세스 위반 오류 메시지가 나타날 수 있습니다.

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

이 페이지에서

요약

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

현상

Microsoft SQL Server 2005에서 다음 조건에 해당할 때 액세스 위반 오류 메시지가 나타날 수 있습니다.
  • 테이블에 대해 IGNORE_DUP_KEY 옵션을 사용하는 인덱스를 만듭니다.
  • 이 인덱스에 새 행을 삽입하는 INSERT 문을 실행합니다.
  • INSERT 문에 대한 계획이 병렬 것입니다.
  • 하나의 키 열이 IGNORE_DUP_KEY 옵션의 값은 매개 변수를 사용하여 제공됩니다.
또한 다음과 유사한 오류 메시지가 나타날 수 있습니다.
현재 명령에서 서버 오류가 발생했습니다. 모든 경우 결과는 무시해야 합니다.

해결 방법

핫픽스 정보

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

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

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

전제 조건

이 핫픽스에 대한 전제 있습니다.

정보를 다시합니다

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

레지스트리 정보

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

파일 정보

이 핫픽스에는 이 문서에 나와 있는 문제를 해결하는 데 필요한 파일만 포함되어 있습니다. 이 핫픽스에는 제품을 최신 빌드로 완전히 업데이트하는 데 필요한 파일이 없을 수 있습니다.

이 핫픽스의 영어 버전은 다음 표에 나열된 파일 특성(또는 그 이후의 파일 특성)이 있습니다. 이러한 파일의 시간과 날짜는 UTC (협정 세계시) 로 나열됩니다. 파일 정보에서는 현지 시간으로 변환됩니다. UTC와 로컬 시간의 차이를 알려면 제어판의 날짜 및 시간 항목에서 표준 시간대 탭을 사용하십시오.
x 86 기반 시스템의 SQL Server 2005
표 축소표 확대
파일 이름파일 버전파일 크기날짜시간플랫폼
Msvcp80.dll8.0.50727.42548,8642005년 10월 1406: 26x 86
Msvcr80.dll8.0.50727.42626,6882005년 10월 1406: 26x 86
Sqldiscoveryapi.dll2005.90.1518.0527,0642006-Jan-2100: 11x 86
SQL Server 2005는 x 64 버전
표 축소표 확대
파일 이름파일 버전파일 크기날짜시간플랫폼
Msvcp80.dll8.0.50727.421,097,7282005년 10월 1418: 46x 64
Msvcr80.dll8.0.50727.42822,7842005년 10월 1418: 46x 64
Sqldiscoveryapi.dll2005.90.1518.0745,6882006-Jan-2104: 14x 64
Itanium 기반 시스템에서 SQL Server 2005
표 축소표 확대
파일 이름파일 버전파일 크기날짜시간플랫폼
Msvcp80.dll8.0.50727.421,385,4722005년 10월 1418: 35IA-64
Msvcr80.dll8.0.50727.421,484,8002005년 10월 1418: 35IA-64
Sqldiscoveryapi.dll2005.90.1518.01,924,3122006-Jan-2103: 30IA-64

해결 과정

이 문제를 해결하려면 다음과 같이 하십시오.
  1. 액세스 위반을 일으키는 문제가 있는 INSERT 문을 결정하십시오.
  2. 문제가 있는 INSERT 문에 대한 직렬 계획을 생성하는 쿼리 최적화 프로그램은 강제로. 따라서 한 스레드에서 문을 실행할 수 있습니다.
참고 액세스 위반을 일으키는 문제가 있는 INSERT 문을 확인할 수 없는 경우 이 문제를 해결하려면 방법 3을 설명한 방법을 사용할 수 있습니다.

액세스 위반을 일으키는 문제가 있는 INSERT 문이 확인하려면 다음과 같이 하십시오.
  1. 액세스 위반 오류 메시지가 SQL Server 오류 로그 파일을 찾습니다.
  2. 액세스 위반 오류 메시지가 위쪽에 입력된 버퍼의 정보를 찾습니다.
  3. 입력된 버퍼 정보를 따르는 배치 정보를 찾습니다.

    참고 일괄 액세스 위반을 일으키는 문제가 있는 INSERT 문이 포함되어 있습니다.
  4. INSERT 문은 하나의 일괄 포함되어 있는 경우 이 문은 문제가 있는 INSERT 문이 있습니다. 일괄 INSERT 문을 여러 개 있으면 문제가 있는 INSERT 문이 확인하기 위해 추가 작업을 수행하십시오.
    1. SQL Server 프로필러에서 SQL Server 2005 인스턴스에 대해 추적을 만듭니다.
    2. 오류 및 경고 이벤트 범주에 주의 이벤트 클래스 및 예외 이벤트 클래스를 선택하십시오.

      참고 이러한 이벤트 클래스의 액세스 위반이 발생하기 전에 실행할 시작하는 마지막 문을 확인할 수 있습니다.

      Transact-SQL 문을 일괄 포함되어 있으면 TSQL 이벤트 범주에서 다음 추가적인 이벤트 클래스를 선택하십시오.
      • SQL:BatchStarting
      • SQL:BatchCompleted
      • SQL:StmtStarting
      • SQL:StmtCompleted
      액세스 위반이 발생하는 저장된 프로시저가 일괄 처리에 포함된 경우, 저장 프로시저 이벤트 범주 아래에 다음 추가적인 이벤트 클래스를 선택하십시오.
      • SP: 시작
      • SP: 완료
      • SP:StmtStarting
      • SP:StmtCompleted
    3. 동일한 일괄 클라이언트 응용 프로그램을 실행하십시오.

      액세스 위반이 재현해 이 단계를 수행하십시오. 그런 다음 문제가 있는 INSERT 문을 확인할 수 있습니다. 일괄 처리를 실행할 때 추적 실행 중인지 확인하십시오.

      클라이언트 응용 프로그램이 SQL Server 관리 Studio 아닌 경우 SQL Server 관리 Studio에서 동일한 일괄 수동으로 실행할 수 있습니다. 그러나 문제를 일으키는 원래 실행 계획과 같이 동일한 실행 계획을 가져올 수 없습니다. 다른 실행 계획을 사용하거나 다른 매개 변수를 사용하여 SQL Server 2005 일괄 처리에 문제가 있는 INSERT 문에서 재컴파일합니다 경우 이 문제가 발생합니다.
    4. 추적을 중지한 다음 문제가 있는 INSERT 문이 확인하려면 추적 결과를 분석하십시오. 문제가 있는 INSERT 문이 확인하려면 액세스 위반이 발생하는 및 클라이언트 응용 프로그램이 끊습니다 SPID를 결정하십시오. 그런 다음 SPID에서 다음 요구 사항을 만족하는지 INSERT 문을 확인할 수 있습니다.
      • INSERT 문은 시작되었습니다.
      • 동일한 INSERT 문이 완료되지 않습니다.
문제가 있는 INSERT 문에 대한 직렬 계획을 생성하는 쿼리 최적화 프로그램이 다음 방법 중 하나를 사용하십시오.

방법 1

참고 문제가 있는 INSERT 문이 액세스할 수 있으면 이 메서드를 사용하십시오.

문제가 있는 INSERT 문이 OPTION (MAXDOP 1) 식을 추가하십시오. 다음 새 INSERT 문의 예입니다.
INSERT INTO MyTable (Col1, Col2)
SELECT Col1, Col2 FROM OtherTable
OPTION (MAXDOP 1) 
MAXDOP 쿼리 힌트에 대한 자세한 내용은 다음 Microsoft 개발자 네트워크 (MSDN) 웹 사이트에서 MAXDOP 사용 절을 참조하십시오.
http://msdn2.microsoft.com/en-us/library/ms181714.aspx

방법 2

참고 문제가 있는 INSERT 문이 액세스할 수 없는 경우 이 메서드를 사용하십시오. 예를 들어, 클라이언트 응용 프로그램에서 문제가 있는 INSERT 문이 있습니다. 그러나, 클라이언트 응용 프로그램을 다시 구성할 수 없습니다 또는 OPTION (MAXDOP 1) 식 추가 클라이언트 응용 프로그램을 다시 컴파일할 수 없습니다. 또는 문제가 있는 INSERT 문을 저장 프로시저입니다. 그러나, 저장된 프로시저가 암호화됩니다. 저장 프로시저에서 문을 변경할 수 없습니다.

문제가 있는 INSERT 문에 대해 sp_create_plan_guide 저장 프로시저를 사용하십시오. 이렇게 하면 문제가 있는 INSERT 문이 OPTION (MAXDOP 1) 식의 강제로. sp_create_plan_guide 저장 프로시저를 사용하는 방법 보여 주는 예입니다.
sp_create_plan_guide @name = N'planguide_for_MyFailingProc', -- Arbitrary name
@stmt = N'INSERT INTO MyOneFailingStatementTable VALUES (@a,@b,@c)', -- The problematic INSERT statement
@type = N'OBJECT', @module_or_batch = N'dbo.MyFailingProc', -- The name of the stored procedure that contains the problematic INSERT statement
@params = NULL, @hints = N'OPTION (MAXDOP 1)'-- Query hint to prevent parallelism
저장된 sp_create_plan_guide 절차에 대한 자세한 내용은 다음 MSDN 웹 사이트를 방문하십시오.
http://msdn2.microsoft.com/en-us/library/ms179880.aspx

방법 3

참고 다음 조건 중 하나에 해당하는 경우 이 방법을 사용하십시오.
  • 문제가 있는 INSERT 문이 동적으로 생성됩니다.
  • 액세스 위반을 일으키는 INSERT 문을 확인할 수 없습니다.
중요한 이 메서드는 한 스레드에서 실행되도록 SQL Server 2005 인스턴스에 대한 모든 쿼리가 있습니다. 이 방법을 사용하는 것이 좋습니다 수행할지 않습니다. 이 메서드는 인스턴스에서 실행되는 다른 쿼리에 대한 성능 문제가 발생할 수 있습니다.

다음 Transact-SQL 문을 실행하십시오.
sp_configure 'show advanced options', 1;
GO

RECONFIGURE WITH OVERRIDE;
GO

sp_configure 'max degree of parallelism', 1;
GO

RECONFIGURE WITH OVERRIDE;
GO
최대 병렬 처리 수준 을 옵션에 대한 자세한 내용은 다음 MSDN 웹 사이트를 방문하십시오.
http://msdn2.microsoft.com/en-us/library/ms181007.aspx

현재 상태

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

추가 정보

SQL Server 업데이트를 명명 스키마에 대한 자세한 내용은 Microsoft 기술 자료의 다음 문서를 참조하십시오.
822499새 명명 스키마에 Microsoft SQL Server 소프트웨어 업데이트 패키지에 대한
소프트웨어 업데이트 용어에 대한 자세한 내용은 Microsoft 기술 자료의 다음 문서를 참조하십시오.
824684Microsoft 소프트웨어 업데이트를 설명하는 데 사용되는 표준 용어에 대한 설명

속성

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