查询SQL Server Index上次Rebuild时间的方法
SQL Server中Index上次Rebuild的时间痕迹
亲爱的朋友们,有时我们可能需要了解SQL Server中某些Index的Rebuild历史。尽管SQL Server并未直接存储此类信息,但我们可以通过一种巧妙的方式,借助统计信息的更新时间来进行大致的估算。因为每当进行Index的Rebuild时,相关的统计信息也会被自动更新。
以下是一段具体的脚本代码,它可以帮助我们查询用户自定义的表及其索引的统计信息更新时间,从而间接得知索引最后一次Rebuild的时间。请注意,由于统计信息的更新也可能因达到更新阀值而触发,因此此方法并非百分百准确。
让我们来运行这段代码:
```sql
SELECT
OBJECT_NAME(object_id) AS TableName,
name AS IndexName,
STATS_DATE(object_id, stats_id) AS LastStatsUpdate
FROM
sys.stats
WHERE
name NOT LIKE '_WA%' -- 排除系统生成的统计信息
AND STATS_DATE(object_id, stats_id) IS NOT NULL
AND OBJECTPROPERTY(object_id, 'IsMSShipped') = 0 -- 仅查询用户自定义的表和索引
ORDER BY
TableName, IndexName;
```
此脚本从`sys.stats`系统表中提取信息,过滤掉系统生成的统计信息,并仅针对用户自定义的表和索引进行筛选。返回的`LastStatsUpdate`列即为我们所关心的索引统计信息的更新时间,可以近似作为索引最后一次Rebuild的时间。
你可以根据自己的需要进一步增加条件进行筛选。虽然这种方法并非绝对精确,但在没有更好选择的情况下,它为我们提供了一个实用的参考。如果你有更深入的需求或更精确的方法,不妨进一步SQL Server的文档和社区资源。
以上内容来源于Stack Overflow上的讨论,经过整理与简化,以便更直观地呈现给需要的朋友们。如果你有更复杂的需求或遇到任何问题,不妨参考原始来源或寻求社区的帮助。
编程语言
- 查询SQL Server Index上次Rebuild时间的方法
- MultiLine 换行后实现读取不换行的具体思路
- Grid或者DataTable中数据导出为Excel原来这么简单
- JSP由浅入深(3)—— 通过表达式增加动态内容
- SQL Server中检查字段的值是否为数字的方法
- 解决laravel 5.1报错:No supported encrypter found的办法
- php获取四位字母和数字的随机数的实现方法
- ASP.NET中Form表单不可以嵌套使用
- IE下jquery ajax无法获得最新数据的问题解决(IE缓存
- SQLServer用t-sql命令批量删除数据库中指定表(游标
- php中explode的负数limit用法分析
- Javascript URI 解析介绍
- 微信小程序 删除项目工程实现步骤
- js简单判断移动端系统的方法
- PHP批量去除BOM头代码分享
- 使用PHP下载CSS文件中的所有图片【几行代码即可