Я ищу способ легко загрузить тест и протестировать некоторые из наших SQL (используя ADO.NET, ничего особенного, используя LINQ или PLINQ), который должен быть эффективен при работе с высокой параллельной нагрузкой.
Я думал об использовании новых параллельных расширений CTP и, в частности, Parallel.For
/ Parallel.ForEach
для простого запуска SQL более 10 000 итераций или около того - но я не смог найти никаких данных о том, что это было оптимизирован для.
По сути, я обеспокоен тем, что, поскольку доступ к базе данных по своей природе связан с вводом / выводом, это не создаст достаточной нагрузки. Кто-нибудь знает, если параллельно. Разве достаточно умен, чтобы использовать> x потоков (где x = количество процессоров), если выполняемые им задачи не полностью связаны с процессором? То есть ведет себя ли он аналогично пулу управляемых потоков?
Было бы довольно круто, если бы это было так!
РЕДАКТИРОВАТЬ: Как @CVertex любезно ссылается ниже, вы можете установить количество потоков независимо. Кто-нибудь знает, достаточно ли интеллектуальны параллельные библиотеки для продолжения добавления потоков, если задание связано с вводом / выводом?