2012-03-21 58 views

回答

8

编号

这是从过程的早期阶段的输出。它会在编译阶段正确之前被替换为引用视图的查询。所涉及的阶段是

  • 解析(输出:解析树)
  • 绑定(输出:Algebrized树)
  • 查询Otimisation(输出:执行计划)
  • 查询执行

对于这些完整的描述见本杰明内瓦雷兹的文章The SQL Server Query Optimizer

AFAIK尽管显示为Parse Tree in sys.dm_exec_cached_plans它实际上是第二阶段的输出,存储并被替换为查询。对于SQL视图对象类型是“解析树”,其中作为存储的特效是“编译计划”:这是从该查询在这些对象显示为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' 
+0

问题的支持。这是否意味着SQL视图被编译到缓存中以供重用? – SQLnbe 2014-10-29 06:15:36