Mic*_*l A 11 sql-server-2008 sql-server t-sql
最近,我们的索引出现了许多问题,我们的 DBA 团队将这些问题归因于最近没有运行的统计数据。这让我想知道 - 我如何检查最近是否通过 SQL Management Studio 更新了统计信息?
如果这个问题没有很好地解释这一点,我深表歉意 - 直到现在我才开始接触统计数据,在此之前,每当我遇到与性能相关的问题时都会查看索引。
编辑:
我正在使用以下内容但收到语法错误:
use *databasename*
exec sp_autostats *schema.tablename*
Run Code Online (Sandbox Code Playgroud)
我收到的错误是:
Msg 102, Level 15, State 1, Line 2
Incorrect syntax near '.'.
Run Code Online (Sandbox Code Playgroud)
为什么是这样?
Ole*_*Dok 14
对于您的编辑- 您需要将表名括在单引号中:
EXEC sp_autostats 'tablename'
Run Code Online (Sandbox Code Playgroud)
和原来的问题
首先 - 找到您要检查的统计信息:
第二 - 查看它的属性,在那里你会看到最后更新的时间戳:
或者您可能想要执行以下查询:
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'
Run Code Online (Sandbox Code Playgroud)
获取统计信息的最佳方式是通过命令
DBCC SHOW_STATISTICS (<tablename>,<indexname>)
Run Code Online (Sandbox Code Playgroud)
这不仅会返回有关统计数据何时更新的信息,还会返回它们的大小、密度、它们的选择性以及显示数据分布的直方图。有了所有这些,您可以确定这些统计数据是否是最新的和有效的。
归档时间: |
|
查看次数: |
37118 次 |
最近记录: |