I am sure this has been asked multiple times - but I could not find a good answer anywhere. Hence this question.

I have a azure cloud service that reads data from a SQL Server 2012 Database. The primary use of this data base is Read-Only. The data gets populated once every month and the cloud service only reads from it (SELECT) (Yes - I could move this to a key-value store - but as of now I cannot change the way things are)

What would be a good way to estimate the number of SELECT operations that this database can handle per second. The machine on which this runs is a 4 core, 7GB ram azure vm. I am just looking for some ballpark numbers to reasonably estimate the number of users my service can handle. The table is clustered on the column which I will filter (WHERE) results on.

Would greatly appreciate help with this.


Specifying more details based on a reply below:

What level of performance is acceptable?

My end-user SLA should be around 2 seconds. So I expect the DB to return in approx 100 - 500 milliseconds

How many rows are being returned from these Selects?

  • On an average I might be returning around 50 rows per select call. Total data being < 200KB

Size of the database

  • Around 15M records totalling around 150GB

I understand that this is a vague question - would be great to get some numbers from folks based on their experiences.


The question itself is too nebulous. You asked how many Selects per second the database can handle? Well, can handle before what happens? What level of performance is acceptable? Do you need results returned in milliseconds, seconds, minutes? What is acceptable? How many rows are being returned from these Selects? What does the query plan look like?

Ultimately no one here is going to be able to tell you what you want to know. There are too many details you didn't tell us. But you can certainly find out for yourself. It's not at all difficult to stress test your database, to find this out for yourself. If you are a developer, you could easily write a C# program that creates threads that performs these Selects. It would be quite easy to measure performance as you gradually increase the number of threads. If you are not a developer, I have to believe there are stress test apps you can buy, or find open source, that will enable you to measure this. If determining a rough idea of how many users your database can accept is that important, you need to be doing this anyway.

  • Just specified a few more details. What I am looking for is some numbers based on what others have experienced. I am sure folks would be faced with such a question - and would have done similar investigations. – neo Nov 23 '14 at 15:19

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy