MSSMSで約2秒実行するクエリを実行しました(25Kの行を返します)
.NET (sqlReader) で使用される同じクエリを数分実行します。
また、リーダーのみを実行しようとしました
( while ループ内のすべてのコードにコメントして、 Reader.Read() を残すだけです) - それでも同じです!
どうしたの?
私は DBA ではなく、Profiler を使用する特権もありません。DBA に尋ねて、すべてを知らせます。
その間、SPに「 WITH RECOMPILE」パラメータを追加した後、本質的なパフォーマンスの向上に気づきました。
だから、私の観点からは、それは実行計画の場合のように思えます...どう思いますか?
[編集] また、私がチェックしたのは、QA および .NET から以下のクエリを実行していたことです。
select @@options
私の理解では、両方の環境で同じ値を返す必要があります。(そうでない場合は ex.plans が使用されます) 私は正しいですか?
[EDIT2] ( http://www.sqldev.net/misc/fn_setopts.htmから) QA でARITHABOIRT =ON を読みました (.NET ではオフです)
.NET 接続ごとに ARITHABOIRT=ON を強制する方法を知っている人はいますか?