Yes, the WCF threading system does have a specific number of concurrent threads/processes it can handle based on your service throttling configuration and instance mode. It does not block port 80 for a single request so it will not hamper that; however, if you have a lot of simultaneous users, it could bog down the system if they are all running long service operation calls and using all your threads.
You should still take a look at optimizing your service/db. What are your normal clients using it for? If it is web, then obviously 3 mins is way too long to wait. At least I know I would be gone if something took that long!
As the phrase goes, there are many ways to skin a cat and without knowing your full system it would be hard to pick the single one to use, so here are some options (throwing more hardware at it should be last resort):
From a DB perspective, if getting the data is taking a long time, maybe you should look at possibly de-normalizing/pre-crunching the data to make it easier to retrieve.
From a service perspective there are ways to at least give control back to client so it can continue processing while waiting for the service operation to complete.
- Use duplex calling with callbacks to client when finished
- Use one way requests with an Id, with a manual client 'check for complete'
- Use MSMQ to process and keep results for client to check when complete