非常に単純な EF クエリを実行してユーザーが有効かどうかを判断するログイン ページがあります。最初の実行では、このクエリの実行に約 6 秒かかります。その後の実行では、1 秒もかかりません。
Application Auto-Start の使用について説明した記事を見てきましたが、私の質問は次のとおりです。このクエリをトリガーして、実際にクエリを呼び出さずに必要なキャッシュを発生させる方法はありますか?引数のダミー セットを使用してクエリを呼び出しますか?
編集: 6 秒と言うときは、クエリを取得するのにかかる時間を指しています。コードは次のようになります (この場合、contactID は null 許容の int であり、null に設定されていることに注意してください)。
return from contact in _context.Contacts
where contact.District == Environment.District &&
contact.ContactId == (contactID ?? contact.ContactId)
select contact;
これは SqlServer 2008 で、SQL をチェックするためにプロファイラーを実行しました。返される期間は、最終的に実行されるクエリに対して 41 ミリ秒です。ただし、クエリが SQL に到達する前に 6 ~ 7 秒の遅延が発生します。同時に起こっている可能性のある他のことの詳細を教えてくれるかどうかを確認するために、今glimpseをセットアップしようとしています.