将SQL Tuning向导与sp_prepexec语句一起使用

时间:2013-02-13 08:31:31

标签: sql sql-server-2008 odbc database-tuning

我正在尝试使用SQL事件探查器和调优向导来调查SQL 2008 R2数据库中的索引使用情况。 应用程序使用ODBC连接到数据库。 db没有存储过程,并且使用SQL语句访问所有数据。 分析器将语句显示为

declare @p1 int
set @p1=10234
exec sp_prepexec @p1 output,N'@P1 varchar(max),@P2 varchar(max),@P3 int,@P4 int',
N'SELECT  p.PaymentID from Payment where DivisionCode = @P1 and [...],','DM','A',1,1
select @p1

调整向导将分析数据并发出警告

49% of consumed workload has syntax errors. Check tuning log 

日志显示原因

  

事件未引用任何表格。

  

[Microsoft] [SQL Server Native Client 10.0] [SQL Server]无效的对象名称“付款”。

我需要使用哪些设置来使调优向导了解sp_prepexec查询? 我必须对跟踪文件进行哪些更改才能使调优向导使用它?

感谢。

1 个答案:

答案 0 :(得分:3)

我能够让我的工作!只需注释掉set这样的声明:

declare @p1 int;
--set @p1=9
exec sp_prepexec @p1 output,N'@p0 bit,@p1 varchar(8000),@p2 bit',N'select blah from blah where @p0=1 and blah.LastName=@p1',@p0=0,@p1='Kumar'
select @p1