증상
Microsoft SQL Server 2014에서 백그라운드에 통계를 만드는 문을 실행 하거나 통계를 만들기 위해 문을 실행 한다고 가정 합니다. 데이터 값에 유효 하지 않은 10 진수 15 자리가 있고 데이터 분포가 일부 씬 범위에서 제대로 분산 되지 않고 조밀 하 게 작동 하지 않는 경우에는 통계를 만들 수 없으며 오류 메시지도 나타나지 않습니다.
해결 방법
이 문제는 다음 SQL Server 누적 업데이트에서 처음 수정 되었습니다.
SQL Server 2014 SP1 용 누적 업데이트 1 /en-us/help/3067839
SQL Server 2014의 누적 업데이트 8 /en-us/help/3067836
각각의 새로운 새 누적 업데이트에는 이전 누적 업데이트에 포함 된 모든 핫픽스와 모든 보안 수정 사항이 포함 되어 있습니다. SQL Server에 대 한 최신 누적 업데이트를 확인 하세요.
추가 정보
4 개 이상의 코어가 있는 서버에서 다음 코드를 사용 하 여이 문제를 재현할 수 있습니다.
use mastergodrop database <DataBase Name>gocreate database <DataBase Name>goALTER DATABASE <DataBase Name> SET AUTO_UPDATE_STATISTICS OFFgouse <DataBase Name>;gocreate table <Table Name>( id decimal(19,0) NULL)godeclare @i int = 0DECLARE @NewRows AS table (id decimal(19,0))insert into @NewRows values(1234567890123456789)while @i < 12 begin insert into @NewRows select * from @NewRows set @i = @i + 1endinsert into <Table Name> select * from @NewRowsgodeclare @i int = 0DECLARE @NewRows AS table (id decimal(19,0))insert into @NewRows values(1234567890123457691)while @i < 16 begin insert into @NewRows select * from @NewRows set @i = @i + 1endinsert into <Table Name> select * from @NewRowsgodeclare @i int = 0DECLARE @NewRows AS table (id decimal(19,0))insert into @NewRows values(1234567890123457692)while @i < 12 begin insert into @NewRows select * from @NewRows set @i = @i + 1endinsert into <Table Name> select * from @NewRowsgocreate statistics stat on <Table Name> ([id])gouse mastergodrop database <DataBase Name>go
상태
Microsoft는 "적용 대상" 절에 나열한 제품에서 이 문제를 확인했습니다.