我在SQL Server 2014中有一个表,其中包含~3 lk数据,每天的事务是3k。
我编写了一个查询,通过应用具有 4 列的过滤器从另一个具有非集群索引的表中获取数据。它按预期工作 7-10 天,突然需要很长时间才能检索数据。
在这种情况下,如果我开火exec sp_updatestats
它会按预期响应。
现在我的问题是:
-
如果我运行
exec sp_updatestats
,它会影响数据库中正在进行的现有事务吗? -
使用此
exec sp_updatestats
有什么缺点? -
exec sp_updatestats
有没有其他选择?
AD 1。您的交易(严格意义上(将继续。更新统计信息可以(并且通常会(导致重新编译。
广告 2.它更新所有统计信息(由 SQL Server 自动创建(。因此,由于重新编译,它可以影响任何查询的下一次运行
广告 3.在您的情况下,为您的表运行更新统计信息可能就足够了。您也可以考虑在下班时间运行它,例如每晚运行它。