PATAISYMAS: Negalima sukurti statistikos, kai vykdote sakinį, kad jį sukurtumėte tiesiogiai arba fone „SQL Server“ 2014

Taikoma
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)

Požymiai

Tarkime, kad vykdote sakinį, kad sukurtumėte statistiką, arba vykdote sakinį, kuris sukuria statistiką fone "Microsoft „SQL Server“ 2014". Kai duomenų reikšmėse yra daugiau nei 15 reikšminių dešimtainių skaitmenų, o duomenų pasiskirstymas nėra gerai paskirstytas ir gana tankus kai kuriuose plokštiuose diapazonuose, statistikos sukurti negalima ir klaidos pranešimo nerodoma.

Sprendimas

Problema pirmą kartą buvo išspręsta šiame kaupiamajame „SQL Server“ naujinime.

1 kaupiamasis naujinimas, skirtas „SQL Server“ 2014 SP1 /en-us/help/3067839

8 kaupiamasis naujinimas, skirtas „SQL Server“ 2014 /en-us/help/3067836

Apie kaupiamuosius „SQL Server“ naujinimus

Kiekviename naujame „SQL Server“ kaupiamajame naujinime yra visos karštosios pataisos ir visos saugos pataisos, kurios buvo įtrauktos į ankstesnį kaupiamąjį naujinimą. Peržiūrėkite naujausius "„SQL Server“" kaupiamuosius naujinimus:

      

Daugiau informacijos

Galite naudoti šį kodą, norėdami atkurti šią problemą serveryje, kuris turi daugiau nei keturis branduolius:

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

Būsena

„„Microsoft““ patvirtino, kad tai yra „„Microsoft““ produktų, išvardytų dalyje „Taikoma“, problema.