用于从表中获取记录的 SQL 查询需要很长时间,但当我运行 exec sp_updatestats 时按预期工作



我在SQL Server 2014中有一个表,其中包含~3 lk数据,每天的事务是3k。

我编写了一个查询,通过应用具有 4 列的过滤器从另一个具有非集群索引的表中获取数据。它按预期工作 7-10 天,突然需要很长时间才能检索数据。

在这种情况下,如果我开火exec sp_updatestats它会按预期响应。

现在我的问题是:

  1. 如果我运行exec sp_updatestats,它会影响数据库中正在进行的现有事务吗?

  2. 使用此exec sp_updatestats有什么缺点?

  3. exec sp_updatestats有没有其他选择?

AD 1。您的交易(严格意义上(将继续。更新统计信息可以(并且通常会(导致重新编译。

广告 2.它更新所有统计信息(由 SQL Server 自动创建(。因此,由于重新编译,它可以影响任何查询的下一次运行

广告 3.在您的情况下,为您的表运行更新统计信息可能就足够了。您也可以考虑在下班时间运行它,例如每晚运行它。

最新更新