ADO.Net を使用して SQL Server 2008 R2 に接続し、アドホック パラメーター化クエリを使用してデータを取得するデスクトップ アプリケーションがある場合、アプリの 2 つの異なるインスタンスがクエリを実行するとどうなりますか? 最初の呼び出しはコンパイルされ、2 番目の呼び出しはメモリ内バージョンを使用しますか?
クエリの例:
SqlConnection conn = new SqlConnection(_connectionString);
conn.Open();
string s = "SELECT email, passwd, login_id, full_name " +
"FROM members WHERE email = @email";
SqlCommand cmd = new SqlCommand(s);
cmd.Parameters.Add("@email", email);
SqlDataReader reader = cmd.ExecuteReader();
クエリが初めて起動されたときにクエリのパフォーマンスが低下していることに気付き、連続した呼び出しは問題ないように見えます。これがアプリの各インスタンスの全体的な動作なのか、それとも 1 つのインスタンスから初めてクエリが起動されたときに、このクエリを使用するアプリのすべてのインスタンスのパフォーマンスが向上するのか疑問に思っています。