C#.NET Webアプリケーションから呼び出されるクエリがいくつかあります。これは常に高速です(SQL Serverのローカル管理者です)が、ユーザーのグループ(必要な権限を持つドメイングループ)の場合、クエリはアプリケーションでタイムアウトするポイント。
まったく同じクエリがユーザーごとに異なる動作をする原因は何ですか?
より詳しい情報:
- クエリは、ストアドプロシージャではなく、C#コードのインラインSQLです。
- アプリはドメイン認証を使用し、ユーザーと私はアプリを通じてクエリを実行します
- 問題は別のプランであるようで、1つはキャッシュされたため、ユーザーごとに異なっていました。クエリがアプリ経由で遅くなり、SQL Server Management Studioで高速になるため、何かがキャッシュに影響しています。
exact same query
)、それはパラメータスニッフィングではないはずです(ユーザーは間違ったパラメータの悪い計画を取得します)が、ユーザーは同じパラメータの異なる計画を取得しています(s)。高速ユーザーと低速ユーザーで比較できるquoted_identifier
やなどの設定が原因でarithabort
あるかsys.dm_exec_sessions
、デフォルトのスキーマが異なり、スキーマプレフィックスなしでオブジェクトが参照されている可能性があります。パラメータのスニッフィングが依然として含まれている可能性があります(そのため、なぜそれらの1つは悪い計画を持っています)