SELECT를 실행 하면 성능이 저하 된다. SQL Server 2012로 업그레이드 한 이후 후 쿼리

이 문서는 Microsoft 기계 번역 소프트웨어를 이용하여 번역되었으며 Microsoft Community에 의한 Community Translation Framework(CTF) 기술 혹은 사람이 번역한 내용에 의하여 사후 편집될 수 있습니다. Microsoft는 Knowledge Base에 있는 모든 문서에 다양한 언어로 접근할 수 있도록 하기 위하여 기계 번역, 사람에 의한 번역 및 커뮤니티가 편집한 내용을 모두 제공합니다. 번역된 문서는 어휘, 구문 및/혹은 문법에 오류가 있을 수 있습니다. Microsoft는 번역 오류로 인한 부정확성, 오류 및/또는 손해와 이를 고객이 사용하는 데에 대하여 책임을 지지 않습니다.

이 문서의 영문 버전 보기:3144525
현상
Microsoft SQL Server 2008 R2 또는 이전 버전에서 SQL Server 2012 또는 이후 버전으로 업그레이드 한 후에 해당선택 발생할 수 있습니다... 에 사용자 정의 함수를 포함 하는 쿼리는 이전 버전에서 보다 완료 하는 데 시간이 걸릴.
원인
해당 선택 때문에이 문제가 발생... 에 사용자 정의 함수 (Udf)를 포함 하는 문은 완전히 로깅되는 작업 및 SQL Server 2012 이상 버전에서 완료 하는 데 시간이 더 걸릴.

참고:를 선택... 에 사용자 정의 함수를 포함 하는 문이 되 고 이전 버전의 최소 기록된 작업 (SQL Server 2008 R2 이전 버전). 이 변경 사용자 정의 함수 같은 개체에 읽기/쓰기 작업을 수행할 수 및 최소 로깅이 설정 되 면 데이터가 손상 될 수 있습니다 데이터 무결성을 보장 하기 위해 도입 되었습니다.
해결 과정
에서 사용 되는 사용자 정의 함수를 선택 하는 경우... 에 문은 모든 데이터 액세스 작업을 수행 하지 않아도, 사용자 정의 함수 사용자 정의 함수에 대 한 파생 된 UserDataAccess 속성을 0으로 설정 됩니다 SCHEMABINDING 절을 지정할 수 있습니다. 이 변경, 선택 후... 에 문을 최소한으로 기록 됩니다. 자세한 내용은 참조 하십시오. SCHEMABINDING을 사용 하 여 예제 블로그 샘플.

참고: 문은 여전히이 속성이 1로 설정 되어 있는 하나 이상의 사용자 정의 함수를 참조 하는 경우 작업은 모두 기록 됩니다.
추가 정보
다음 샘플 코드에서는 SQL Server 2008 R2 및 SQL Server 2012 또는 2014 간에 동작의 차이 보여 줍니다.

create database DB1gouse DB1gocreate function dbo.MyTrim (@name as varchar(100))returns varchar (100)asbeginreturn (RTRIM(ltrim(@name)))endgocreate table dbo.tab_prod (c1 int, c2 varchar(10))godeclare @a int set @a = 1while @a <= 100000begin insert into tab_prodvalues (@a , '  test ')set @a = @a + 1endbegin transelect  *,  dbo.mytrim(c2) as trimc2 into tab_test from tab_prod

다음 표에서 2014 SQL Server와 SQL Server 2008 r 2는 선택으로 작업에 대 한 CPU 시간을 비교합니다.

버전실행 시간 (CPU 시간)
SQL Server 2008 R2719 ms
SQL Server 20141360 ms

다음 표에서 2014 SQL Server와 SQL Server 2008 r 2는 선택으로 작업에 대 한 트랜잭션 로그 사용량을 비교합니다.

버전데이터베이스 이름로그 크기 (MB)사용 된 로그 공간 (%)상태
SQL Server 2008 R2DB10.742187551.578950
SQL Server 2014DB132.1796938.44380
중요 참고 사항 이 표의 결과 변경 된 SQL Server 2008 R2 및 SQL Server 2014 간에 동작의 예로 되며이 테스트에 사용 된 실험실 환경 마다 다. 사용자 환경에서 실제 성능 차이 SQL 인스턴스를 실행 하는 하드웨어에 따라 달라 집니다.
참고 이것은 Microsoft 기술 지원 서비스 내에서 직접 작성한 “빠른 게시” 문서입니다. 여기에 포함된 정보는 발생한 문제에 대해 있는 그대로 제공됩니다. 이 문서는 즉시 참조할 수 있도록 빠르게 작성되어서 표기상의 오류가 포함되어 있을 수 있고 언제든지 예고 없이 수정될 수 있습니다. 기타 고려 사항은사용 약관을 참조하십시오.정보

경고: 이 문서는 자동으로 번역되었습니다.

속성

문서 ID: 3144525 - 마지막 검토: 03/03/2016 22:38:00 - 수정: 1.0

Microsoft SQL Server 2005 Developer Edition, Microsoft SQL Server 2005 Express Edition, Microsoft SQL Server 2005 Standard Edition, Microsoft SQL Server 2005 Workgroup Edition, Microsoft SQL Server 2005 Enterprise Edition, Microsoft SQL Server 2008 Developer, Microsoft SQL Server 2008 Enterprise, Microsoft SQL Server 2008 Express, Microsoft SQL Server 2008 Standard, Microsoft SQL Server 2008 Web, Microsoft SQL Server 2008 Workgroup, Microsoft SQL Server 2008 R2 Datacenter, Microsoft SQL Server 2008 R2 Developer, Microsoft SQL Server 2008 R2 Enterprise, Microsoft SQL Server 2008 R2 Express, Microsoft SQL Server 2008 R2 Standard, Microsoft SQL Server 2008 R2 Web, Microsoft SQL Server 2008 R2 Workgroup

  • kbsurveynew kbtshoot kbexpertiseadvanced kbmt KB3144525 KbMtko
피드백