У меня 5 параллельных операций с БД необходимо выполнить независимо. Я знаю, что запрашивать количество ядер и создавать 4 или 8 (в случае 4 или 8 ядер) задачи будут дорогостоящими. .Сколько задач должно быть создано для параллелизации независимых отдельных вызовов БД?
DB Op result1 = db.Table1.Get (...) Регистрация (anotherTable2) ... Join() ..
DB Op result2 = db.Table1.Get (...). Join (anotherTable2) ... Join() ..
DB Op result3 = db.Table1.Get (...). Join (anotherTable2) ... Join() ..
DB Op result4 = db.Table1.Get (...). Join (anotherTable2) ... Join() ..
DB Op result5 = db.Table1.Get (...). Join (anotherTable2) ... Присоединиться() ..
В результате этих операций я должен решить, буду ли я продолжать дальше или нет.
Для этого достаточно нескольких задач, которые будут отправлять вызовы в БД для выполнения этих операций или 5 различных задач должны быть созданы? Я не делаю внутренних задач, чтобы создать количество потоков для выполнения определенной операции с БД.
Я не думаю о распараллеливании самого запроса.
Правильно, что код C# не имеет понятия, когда БД вернет результат. Но я вижу различные операции с БД, которые не зависят друг от друга. Вот почему мне нужно, чтобы они выполнялись параллельно. Я бы создал родительскую задачу, которая продолжилась бы, если бы эти внутренние 5 задач БД вернули некоторые успешные значения – Usman
О, сторона C# имеет много знаний о том, что тогда возвращается БД. Он просто не знает, как БЫТЬ СЕРВЕР БД. Вполне возможно, что две параллельные операции уже перегружают сервер db, а третий - намного медленнее. Но вы не можете видеть это из приложения C#. – TomTom
Итак, что делать? Не должны ли распараллеливаться на TPL разные вызовы db на SQL-сервер (при максимальном количестве 4 таблиц для каждой задачи)? Я хочу выполнить параллельное выполнение, но не знаю, как создавать задачи для одновременного выполнения 5 операций. – Usman