У меня есть хранимая процедура, которая возвращается как минимум 40 тыс. Строк, и занимает около 20 секунд в SSMS 2008 R2, где база данных находится в Sql Azure, но когда я запускаю тот же Sp в моем приложении C#, используя EF 5 или просто обычный ADo.NET, это заняло 70-80 секунд.Чтобы оптимизировать производительность запроса
таблица имеет некластеризованной индекс ScenarioID
Sp просто выберите заявление с где условия. select * from Cost where ScenarioID= @ID
using (SqlConnection con = new SqlConnection(constr))
{
using (SqlCommand cmd = new SqlCommand("sp_GetActCostsByID", con))
{
cmd.CommandType = CommandType.StoredProcedure;
cmd.Parameters.Add("@ID", SqlDbType.VarChar).Value = ID;
con.Open();
DataTable dt = new DataTable();
DateTime timee = DateTime.Now;
Console.WriteLine(timee);
dt.Load(cmd.ExecuteReader());
timee = DateTime.Now;
Console.WriteLine(timee);
}
}
Есть ли способ, чтобы увеличить производительность:
Мой план выполнения:
У вас есть 'Index' в колонке' Id' –
Да См. Мое редактирование Спасибо – Vivekh
Если стол Огромный, вы не можете ожидать, что результаты будут быстрыми. –