AdventureWorks2019数据库查询:
SELECT * FROM HumanResources.Department D INNER JOIN HumanResources.EmployeeDepartmentHistory E ON D.DepartmentID = E.DepartmentID
Run Code Online (Sandbox Code Playgroud)
问题:为什么以下查询没有返回任何数据。我期望它为我的上述测试查询返回至少一行。我在这里可能遗漏或误解了什么?
select
query_text_id,
query_sql_text as query_sql_text
from sys.query_store_query_text where query_sql_text like '%SELECT * FROM HumanResources.Department D INNER JOIN HumanResources.EmployeeDepartmentHistory E ON D.DepartmentID = E.DepartmentID%'
Run Code Online (Sandbox Code Playgroud)
查询存储在默认配置下打开。
以下查询正确输出搜索、扫描等的数量。我对理解输出中的某些行有疑问。在查询的某些输出行中,索引名称显示为、NULL、、0;而在同一行中,它显示了和/或 的一些非零数字。问题:我们如何解释这些行?index_typeHEAPNumOfSeeksNumOfScansNumOfLookups
备注:所有表都没有聚集索引,因此所有表都是 HEAP。但在以下查询的输出的大多数行中,索引名称都显示(并且不显示为 NULL),并且 index_type 也显示(作为 NONSLUSTER)。因此,问题特定于此评论上面描述的输出行。
参考:sys.dm_db_index_usage_stats。
SELECT OBJECT_NAME(IX.OBJECT_ID) Table_Name
,IX.name AS Index_Name
,IX.type_desc Index_Type
,SUM(PS.[used_page_count]) * 8 IndexSizeKB
,IXUS.user_seeks AS NumOfSeeks
,IXUS.user_scans AS NumOfScans
,IXUS.user_lookups AS NumOfLookups
,IXUS.user_updates AS NumOfUpdates
,IXUS.last_user_seek AS LastSeek
,IXUS.last_user_scan AS LastScan
,IXUS.last_user_lookup AS LastLookup
,IXUS.last_user_update AS LastUpdate
FROM sys.indexes IX
INNER JOIN sys.dm_db_index_usage_stats IXUS ON IXUS.index_id = IX.index_id AND IXUS.OBJECT_ID = IX.OBJECT_ID
INNER JOIN sys.dm_db_partition_stats PS on PS.object_id=IX.object_id
WHERE OBJECTPROPERTY(IX.OBJECT_ID,'IsUserTable') = 1 …Run Code Online (Sandbox Code Playgroud) index sql-server azure-sql-managed-instance query-performance performance-tuning