У меня есть запрос, который выдает 4-5 секунд, когда я выполняю его с помощью SSMS (2017) и через консольное приложение.
Но когда я запускаю один и тот же запрос трижды, используя Параллельно для каждого в моем консольном приложении это приводит к 15 - 20 секундам.
Я ожидаю, почему я не могу получить тот же результат, даже если я запускаю его параллельно.
См. Ниже, я проверил с профилировщиком.Запросы были начаты в одно и то же время
Но посмотрите время завершения.
Это мой код:
int count = 3;
Stopwatch watch = new Stopwatch();
watch.Start();
Parallel.For(0, count, (index) =>
{
string queryString = "SELECT COUNT(*) AS [Row Count] FROM (SELECT SUM([dbo_MaximumData].[C1]) AS [Grid_Column_0],[dbo_MaximumData].[C3] AS [Grid_Column_2],[dbo_MaximumData].[C5] AS [Grid_Column_3],[dbo_MaximumData].[C6] AS [Grid_Column_4],[dbo_MaximumData].[C6] AS [Grid_Column_1] FROM [dbo].[MaximumData] AS [dbo_MaximumData] GROUP BY [dbo_MaximumData].[C3],[dbo_MaximumData].[C5],[dbo_MaximumData].[C6],[dbo_MaximumData].[C6] ) [Main Table] ";
string connectionString = "Server=””;Database=ODBC ANSI;User Id=sa;Password=Test@123;";
using (SqlConnection connection = new SqlConnection(connectionString))
{
SqlCommand command = new SqlCommand(queryString, connection);
connection.Open();
SqlDataReader reader = command.ExecuteReader();
try
{
while (reader.Read())
{
}
}
finally
{
reader.Close();
connection.Close();
}
}
});
watch.Stop();
var str = watch.Elapsed;
У меня вопрос " Почему параллельное выполнение запроса вызывает больше времени "?
Кто-нибудь, пожалуйста, помогите мнес этим.Заранее спасибо.