我已经咨询谷歌一段时间了,但它一直未能给我一个满意的答案.
在Server 2005跟踪中,我有很多"exec sp_execute“语句。我知道它们连接到相应的"exec sp_prepare“语句,该语句指定实际的SQL。
但是..。
One:可以在不找到sp_prepare的情况下找到sp_execute后面的sp_prepare吗?
二:,什么类型的构造通常会隐藏在sp_execute后面?也就是说,它是一个存储过程吗?只是代码中的字符串吗?不然呢?
三:,我应该害怕糟糕的表现,在跟踪中看到这些?
如有任何意见,将不胜感激。
发布于 2012-02-02 02:15:26
使用
select * from sys.dm_exec_query_plan(PlanHandle)
若要生成指示sql sp_execute使用什么的xml文档,请执行以下操作。
发布于 2012-05-23 07:05:34
延迟回答,但我最近有一个执行sp_prepare和sp_execute时性能不好的应用程序。
One:以前回答过
2:基本上可以是任何东西、存储过程、任何有效的查询。
三:当应用程序使用sp_prepare时,Server无法生成良好的执行计划。基本上,Server分析传入的参数以生成良好的执行计划,但是在sp_prepare中没有提供参数的值,因为它们只是在执行sp_execute时添加的。因此,同时,Server为不同的运算符应用了通用成本,很可能会生成一个次优计划。
如果您查看对跟踪的读取/cpu使用情况,您应该能够确定您的查询是表现不佳还是预期的。
还请参见http://blogs.infosupport.com/speeding-up-ssis-literally
https://stackoverflow.com/questions/5512689
复制相似问题