Using threads has never been a way to increase performance. Instead, they are used to create the "perception" of better performance.
Threads were primarily designed to allow for parallel processes that did not rely on each other's data. For example a long running data sort in the background, while an interface is being drawn for a user.
This is not to say that threads cannot increase performance but this requires a hardware foundation that can support the use of multiple threads.
The standard for each core that can do so is approximately 10 threads apiece. The more threads you want to run optimally, the more cores are required. Thus, in your example, 200 threads would require approximately 20 cores to run efficiently. Please note that with newer developments in hardware over the years this standard may have been increased but 10 threads has been the original standard to go by.
Finally,
Gerdus van Zyl's suggestion that you do not use the Entity Framework, or any ORM for that matter, is spot on. Such frameworks were never designed, again for performance purposes, as many may have come to believe. Instead, their primary asset is that they allow developers to refine their processes against existing databases instead of resorting to low-level development with a standard data access layer.
Any such ORM will always add inefficiency to database processes since the frameworks are fairly heavy and ignore the use of the most efficient technique for data access, the stored procedure. With such frameworks, using stored procedures then makes little sense (and redundant) since one is using a very heavy piece of software to process a task that does not require it.
Steve Naidamast
Sr. Software Engineer