3

SQL プロファイラーとチューニング ウィザードを使用して、SQL 2008 R2 データベースでのインデックスの使用状況を調査しようとしています。アプリケーションは、ODBC を使用してデータベースに接続します。データベースにはストアド プロシージャがなく、すべてのデータは 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]オブジェクト名 'Payment' が無効です。

チューニング ウィザードが sp_prepexec クエリを理解するには、どのような設定を使用する必要がありますか? チューニング・ウィザードでトレース・ファイルを使用できるようにするには、トレース・ファイルにどのような変更を加える必要がありますか?

ありがとう。

4

1 に答える 1

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
于 2014-11-10T17:52:13.073 に答える