表统计信息未更新

问题描述 投票:1回答:1

[我们在SQL Server 2016中面临一个奇怪的情况。我们的表包含超过300000行。

我们在表上创建了一个索引。我们将此表用作联接的一部分(注意:联接关闭中的列已创建索引),但是查询优化器正在进行表扫描。

我们查看统计信息时:

RowsInTable    RowsSampled
  NULL          NULL

然后我跑了:

UPDATE STATISTICS tablename 

统计未更改。

然后我们尝试重建索引:

ALTER INDEX ALL ON dbo.tablename
REBUILD WITH (FILLFACTOR = 80, SORT_IN_TEMPDB = ON,
              STATISTICS_NORECOMPUTE = ON)

但是再次:统计数据没有改变。

我们已经确认没有发生批量更新/插入/删除。

请帮助。

sql-server sql-server-2016 rdbms
1个回答
0
投票

我们尝试了这么多具有​​统计量的组合,但没有帮助。

最后我们在下面尝试了,并且成功了。

ALTER INDEX ALL ON dbo.Tablename
REBUILD WITH (FILLFACTOR = 80, SORT_IN_TEMPDB = ON,STATISTICS_NORECOMPUTE = ON)

注意:在进行prod操作之前,我们应该三思。我们应该知道表的数据大小是多少,否则我们将阻塞。

我们仍然不确定是什么原因导致这种类型的行为,但是我怀疑我们在堆上有索引(非集群唯一索引)。

© www.soinside.com 2019 - 2024. All rights reserved.