在哪种情况下(或 sql 版本)索引统计信息会被索引重建重置?有很多文章让我觉得也许这种行为并非总是如此。
Kendra Little 在她的博客中详细说明了这一点:SQL Server 2012 SP2 CU12 / SP3 CU3 中修复的索引使用统计错误
我引用了下面那篇博文中的表格:
SQL Server 版本 sys.dm_db_index_usage_stats 缺少索引 DMV SQL Server 2005 和 SQL Server 2008R2 在数据库离线/重启时重置。 重置该表上的任何索引删除/禁用/创建。在数据库离线/重启时重置。 SQL Server 2012 在该索引的 ALTER INDEX REBUILD 上重置,直到 SP2+CU12 或 SP3+CU3 。在数据库离线/重启时重置。 重置该表上的任何索引删除/禁用/创建。在数据库离线/重启时重置。在表上的任何索引的 ALTER INDEX REBUILD 上重置。 SQL Server 2014 在该索引的 ALTER INDEX REBUILD 上重置,直到 SP2。在数据库离线/重启时重置。 重置该表上的任何索引删除/禁用/创建。在数据库离线/重启时重置。在表上的任何索引的 ALTER INDEX REBUILD 上重置。 SQL Server 2016 在数据库离线/重启时重置。 重置该表上的任何索引删除/禁用/创建。在数据库离线/重启时重置。在表上的任何索引的 ALTER INDEX REBUILD 上重置。
其要点是这些统计信息在某些 SQL Server 2012 和 2014 版本中的索引重建时被重置。您应该更新到最新的 SP/CU,或者更新到 SQL Server 2016 或更高版本,以避免出现此问题。