如何检查统计信息的最后执行时间?


9

最近,我们的索引遇到了许多问题,我们的DBA团队将其归因于最近没有运行过的统计信息。这让我感到疑惑-如何检查统计信息是否最近通过SQL Management Studio更新了?

如果这个问题不能很好地解释这个问题,我深表歉意-直到现在,我才被引入统计数据,在此之前,只要遇到性能相关问题,它就会查找索引。

编辑

我正在使用以下内容,但收到语法错误:

use *databasename*
exec sp_autostats *schema.tablename*

我收到的错误是:

Msg 102, Level 15, State 1, Line 2
Incorrect syntax near '.'.

为什么是这样?

Answers:


12

为了进行编辑 -您需要将表格名称括在单引号中:

EXEC sp_autostats 'tablename'

对于原来的问题

首先-找到您要检查的统计信息:

选择统计

其次-查看其属性,然后您将看到最近更新的时间戳记:

在此处输入图片说明

或者您可能要执行以下查询:

SELECT t.name TableName, s.[name] StatName, STATS_DATE(t.object_id,s.[stats_id]) LastUpdated 
FROM sys.[stats] AS s
JOIN sys.[tables] AS t
    ON [s].[object_id] = [t].[object_id]
WHERE t.type = 'u'

9

获取有关统计信息的最佳方法是通过命令

DBCC SHOW_STATISTICS (<tablename>,<indexname>)

这不仅会返回有关统计信息更新时间的信息,而且还会返回统计信息的大小,密度,选择程度以及显示数据分布的直方图。有了这些,您就可以确定这些统计信息是否最新且有效。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.