sql - SQL Server - sys.dm_db_index_usage_stats 未从视图接收统计信息
问题描述
为了大致了解 SQL Server 中表的使用情况统计信息,我们创建了一个查询,该查询从 sys.dm_db_index_usage_stats 中检索使用情况统计信息。
查询如下:
Select
iif(t.TABLE_TYPE = 'BASE TABLE', 'Table', 'View') as 'Type'
, t.TABLE_CATALOG
, t.TABLE_SCHEMA
, t.TABLE_NAME
, max(tst.LastReferenced) as 'LastReferenced'
, getdate() as 'Date'
FROM INFORMATION_SCHEMA.TABLES t
LEFT JOIN (
SELECT
tst.object_id
,(SELECT Max(v) FROM (VALUES (tst.Last_user_update), (tst.Last_user_seek), (tst.Last_user_scan), (tst.Last_user_lookup)) AS value(v)) as 'LastReferenced'
FROM sys.dm_db_index_usage_stats tst
)tst on OBJECT_NAME(tst.object_id) = t.TABLE_NAME
WHERE t.TABLE_NAME not like ''_TMP%''
GROUP BY
t.TABLE_CATALOG
, t.TABLE_SCHEMA
, t.TABLE_NAME
, t.TABLE_TYPE
但是,对于我们的一种观点,在对表执行以下操作时:
- 选择前 1000 行
- 过滤值
没有使用统计信息传递到我们的 sys.dm_db_index_usage_stats 表。对于同一数据库中的其他视图并执行相同的操作,这些统计信息将被传递。
由于可能已重置统计信息,因此没有重新启动服务器或清除这些表。此外,我们每 15 分钟检查一次这些统计信息,因此这应该不是问题。
此外,从 sys.dm_db_index_usage_stats 到 INFORMATION_SCHEMA.TABLES 的连接提供了一个空值,因为 dm_db_index_usage_stats 表中不包含此特定视图。
问题
- 对于这个特定的视图,怎么可能没有处理使用统计信息?
- 有没有办法访问这些统计信息或使它们可用于 sys.dm_db_index_usage_stats 表?
期待你的智慧:)
解决方案
推荐阅读
- java - 从数据库中获取用户并将属性放入标签中
- python - 使用 collections.Counter 处理大型泡菜数据
- xamarin - 有谁知道如何在 Xamarin 表单中使用我可以在两个布尔参数之间进行 OR 的转换器?
- mqtt - 无法确定为什么 inputs.mqtt_consumer 断开连接并且不通过 telegraf 向 influxdb 发送数据
- r - 从 Shiny 中的多个对齐图中单击位置
- sql - 我正在尝试从我已经在 Oracle Live SQL 中创建的 2 个不同表中查看 4 列
- python-3.x - 即使使用 WebDriverWait,Selenium Webdriver 元素也会返回 None
- python - docopt 不应用默认值
- flutter - 是否有安装 import 'package:speech_to_text/speech_to_text.dart' 的解决方案;
- python - 获取 AttributeError:“Tensor”对象在保存 TensorFlow 模型时没有属性“log_prob”