증상
SQL Server가 캐시할 수 없는 자동 매개 변수 쿼리를 실행 하는 경우 쿼리는 드문 경우이 아닌 경우에 액세스 위반을 생성 합니다. 액세스 위반은 다음 예제 조각을 포함 하는 호출 스택과 함께 SQL Server 오류 로그에 기록 됩니다.***Stack Dump being sent to C:\Program Files\Microsoft SQL Server\MSSQL11.MSSQLSERVER\MSSQL\LOG\SQLDump0010.txtSqlDumpExceptionHandler: Process #### generated fatal exception c0000005 EXCEPTION_ACCESS_VIOLATION. SQL Server is terminating this process.* ********************************************************************************* BEGIN STACK DUMP:* date time spid #*** Exception Address = 000007FA0B512E2F Module(sqllang+0000000000E72E2F)* Exception Code = c0000005 EXCEPTION_ACCESS_VIOLATION* Access Violation occurred reading address 0000000000000018** Input Buffer ### bytes -* select identifier, registration_date, model, digit, place, failure, address, * remote_control, phone_number, state, location, updated, mta, * home_id, vod_address, observations * from equipment with(nolock) * where branch_group = 1 and equipment_type = 2 * and series = 'SERIES_AAA'* * ******************************************************************************** -------------------------------------------------------------------------------* Short Stack Dump000007FA0B512E2F Module(sqllang+0000000000E72E2F)000007FA0B57D7D2 Module(sqllang+0000000000EDD7D2)000007FA0A74788B Module(sqllang+00000000000A788B)000007FA0A746B5C Module(sqllang+00000000000A6B5C)000007FA0A747034 Module(sqllang+00000000000A7034)000007FA0A746F8C Module(sqllang+00000000000A6F8C)000007FA0A6C9851 Module(sqllang+0000000000029851)000007FA0AB5CF5C Module(sqllang+00000000004BCF5C)000007FA0AB54397 Module(sqllang+00000000004B4397)000007FA09990430 Module(sqldk+0000000000010430)000007FA09990214 Module(sqldk+0000000000010214)000007FA0998FEF7 Module(sqldk+000000000000FEF7)000007FA099AF15F Module(sqldk+000000000002F15F)000007FA099AF1E0 Module(sqldk+000000000002F1E0)000007FA099AE70E Module(sqldk+000000000002E70E)000007FA099AEFB9 Module(sqldk+000000000002EFB9)000007FA17411832 Module(KERNEL32+0000000000001832)000007FA19B1D609 Module(ntdll+000000000005D609) 이 예제에서 증상은 다음과 같습니다.
-
WHERE 절에 하나 이상의 상수가 있는 간단한 쿼리입니다. SQL Server는 이러한 상수를 자동으로 매개 변수화 할 수 있습니다.
-
"액세스 위반이 주소 0000000000000018" 문자열을 읽는 동안 발생 했습니다. (이 문자열은 64 비트 시스템에서 "18"으로 끝나지만 32 비트 시스템에서 "0C"로 끝납니다.)
-
짧은 스택 덤프의 내용에는 스택 프레임의 깊이와 상대적 위치 (정확히 일치 하지 않을 경우)가 동일 하거나 유사 합니다. 참고 이 예제는 SQL Server의 64 비트 인스턴스에서 가져옵니다. 이는 다르지만 32 비트 인스턴스의 예제에서 인식할 수 있습니다.
누적 업데이트 정보
이 문제는 다음 SQL Server 누적 업데이트에서 처음 수정 되었습니다.
각각의 새로운 새 누적 업데이트에는 이전 누적 업데이트에 포함 된 모든 핫픽스와 모든 보안 수정 사항이 포함 되어 있습니다. SQL Server에 대 한 최신 누적 업데이트를 확인 하세요.
상태
Microsoft는 "적용 대상" 절에 나열한 제품에서 이 문제를 확인했습니다.
참조
Microsoft에서 소프트웨어 업데이트를 설명 하는 데 사용 하는 용어 에 대해 알아봅니다.