FIX: kan geen statistieken maken wanneer u een instructie uitvoert om deze rechtstreeks of op de achtergrond te maken in SQL Server 2014

Van toepassing op
SQL Server 2014 Developer - duplicate (do not use) SQL Server 2014 Developer - duplicate (do not use) SQL Server 2014 Enterprise - duplicate (do not use) SQL Server 2014 Enterprise - duplicate (do not use) SQL Server 2014 Standard - duplicate (do not use) SQL Server 2014 Standard - duplicate (do not use) SQL Server 2014 Developer - duplicate (do not use) SQL Server 2014 Developer - duplicate (do not use) SQL Server 2014 Enterprise - duplicate (do not use) SQL Server 2014 Enterprise - duplicate (do not use) SQL Server 2014 Standard - duplicate (do not use) SQL Server 2014 Standard - duplicate (do not use)

Symptomen

Stel dat u een instructie uitvoert om statistieken te maken of een instructie uitvoert die statistieken op de achtergrond maakt in Microsoft SQL Server 2014. Wanneer de gegevenswaarden meer dan vijftien significante decimale cijfers bevatten en de gegevensverdeling niet goed verdeeld is en niet tamelijk dicht is in bepaalde dunne bereiken, kunnen de statistieken niet worden gemaakt en wordt er geen foutbericht weergegeven.

Oplossing

Het probleem werd voor het eerst opgelost in de volgende cumulatieve update van SQL Server.

Cumulatieve update 1 voor SQL Server 2014 SP1 /nl-nl/help/3067839

Cumulatieve update 8 voor SQL Server 2014 /nl-nl/help/3067836

Informatie over cumulatieve updates voor SQL Server

Elke nieuwe cumulatieve update voor SQL Server bevat alle hotfixes en alle beveiligingspatches die deel uitmaakten van de vorige cumulatieve update. Bekijk de meest recente cumulatieve updates voor SQL Server:

      

Meer informatie

U kunt de volgende code gebruiken om dit probleem te reproduceren op een server met meer dan vier kernen:

use master
go
drop database <DataBase Name>
go
create database <DataBase Name>
go
ALTER DATABASE <DataBase Name> SET AUTO_UPDATE_STATISTICS OFF
go
use <DataBase Name>;
go
create table <Table Name>
(
                id decimal(19,0) NULL
)
go
declare @i int = 0
DECLARE @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 + 1
end
insert into <Table Name> select * from @NewRows
go
declare @i int = 0
DECLARE @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 + 1
end
insert into <Table Name> select * from @NewRows
go
declare @i int = 0
DECLARE @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 + 1
end
insert into <Table Name> select * from @NewRows
go
create statistics stat on <Table Name> ([id])
go
use master
go
drop database <DataBase Name>
go

Status

Microsoft heeft bevestigd dat dit een probleem is bij de Microsoft-producten die worden vermeld in het gedeelte 'Van toepassing op'.