I've inherited a MVC web application, that's using Dapper on top of ADO.NET to make DB calls in the Controller action methods. It's all pretty standard stuff - not many of the controlers are async
, and all the database calls go through a repository
which is fully synchronous.
I'm moving this to Azure, and I'm using SQL Azure for the database back end. I'm expecting load to be fairly standard - say 500 - 1000 hits per minute.
So, I'm wondering, should I be ploughing through this code to make all my db calls async, so that i can await
then in the controllers. Doing this is going to free up my threads to serve up other requests, but I'm wondering in real terms if I'm going to notice any improvement.
I know that previously, it's been noted that if you have a single db server (as I do), then you won't really see much improvement, because the bottleneck is all on the db. However, SQL Azure is a slightly different beast, and Azure state that
Good practice demands that you use only asynchronous techniques to access Azure services such as SQL Database source
So - is this worth the effort?