【发布时间】:2012-03-21 19:11:26
【问题描述】:
当我们查询 SYS.DM_EXEC_CACHED_PLANS 时,会出现一种称为解析树的缓存对象类型,用于视图和表值函数。是否类似于存储过程和即席查询的查询计划?
【问题讨论】:
标签: sql-server caching memory
当我们查询 SYS.DM_EXEC_CACHED_PLANS 时,会出现一种称为解析树的缓存对象类型,用于视图和表值函数。是否类似于存储过程和即席查询的查询计划?
【问题讨论】:
标签: sql-server caching memory
没有。
这是流程早期阶段的输出。它在编译阶段之前被替换为引用视图的查询。涉及的阶段是
有关这些的完整描述,请参阅 Benjamin Nevarez 的文章 The SQL Server Query Optimizer
AFAIK 尽管在sys.dm_exec_cached_plans 中显示为Parse Tree,但它实际上是存储并替换为查询的第二阶段的输出。此查询支持此查询,其中这些对象显示为 Bound Trees
SELECT text,
objtype,
refcounts,
usecounts,
size_in_bytes,
cacheobjtype,
name
FROM sys.dm_exec_cached_plans p
CROSS APPLY sys.dm_exec_sql_text(plan_handle)
JOIN sys.dm_os_memory_cache_entries e
ON p.memory_object_address = e.memory_object_address
WHERE cacheobjtype = 'Parse Tree'
【讨论】: