2013-02-13 1 views
4

Я пытаюсь использовать профайлер SQL и мастер настройки для изучения использования индекса в моей базе данных SQL 2008 R2. Приложение подключается к db с использованием ODBC. Db не хранит процедуры, и все данные доступны с помощью операторов SQL. Профайлер показывает заявление какИспользование мастера настройки SQL с инструкциями sp_prepexec

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? Какие изменения необходимо внести в файл трассировки, чтобы сделать его пригодным для использования мастером настройки?

Спасибо.

ответ

2

Я был в состоянии заставить мои работать! Просто прокомментируйте заявление 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 [email protected]',@p0=0,@p1='Kumar' 
select @p1