答案 0 :(得分:4)
您从SSMS执行了另一个查询。
profiler中显示的查询是存储过程的一部分,有8个参数。 您执行的是具有常量的查询,该常量具有另一个执行计划,因为所有常量都已知并且估计是基于这些已知值完成的。
当你的sp语句被执行时,计划是为上帝知道的嗅探参数而创建的,这个计划与你在SSMS中的不同。
从SSMS中箭头的强弱来看,很明显你查询不会执行7.954.449次读取。
如果您想在Profiler中看到实际的执行计划,您应该选择相应的事件(Showplan XML Statistics Profile)。
答案 1 :(得分:0)
是的,有两种不同的查询。 Axapta使用共同的占位符。您的查询使用文字常量。
查询中的forceLiterals
提示使Axapta查询与您的SSMS示例类似。默认的Axapta提示为forcePlaceholders
。
占位符的主要目标是使用来自多个客户端的不同常量优化大量类似查询。主要是由于使用了查询计划缓存。
另请参阅forceLiterals的注入警告: https://msdn.microsoft.com/en-us/library/aa861766.aspx