現象
Microsoft SQL Server 2014 で統計情報を作成するか、バックグラウンドで統計情報を作成するステートメントを実行することを前提としています。 データ値の小数点以下が15桁を超えていて、一部の細い範囲でデータの分布が適切に分散されていない場合、統計情報を作成することはできず、エラーメッセージも表示されません。
解決方法
この問題は、SQL Server の次の累積的な更新プログラムで最初に修正されました。
SQL Server 2014 SP1 の累積更新プログラム1 /en-us/help/3067839
SQL Server 2014 の累積更新プログラム8 /en-us/help/3067836
SQL Server 用の新しい累積更新プログラムには、以前の累積的な更新プログラムに含まれていたすべての修正プログラムとすべてのセキュリティ修正が含まれています。 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
状態
マイクロソフトでは、この問題をこの資料の対象製品として記載されているマイクロソフト製品の問題として認識しています。