-1

I now have my first bigger project of my own. I invested around 500 working hours and the project is done. It's actual ASP.Net with C# and Linq to SQL, the platform is an MS SQL Server 2005 Express edition on a Windows server 2008 Web edition - which costs me 40€ / month (free sql and server 40€)

After going live, the website has around 20 to 50 simultaneous users.

The site is slowing down more and more, I spent the last 20 work hours to make the database queries more performant but only to get site load times from 10s down to 9,0s.

I really invested a lot of time in diagnosis and it looks like it is the database / DBMS that is slowing everything down!

I know about the specific limitations of the SQL Server Express edition - e.g. 1GB of RAM, but in my case CPU and memory usage by the SQL server should be minimal: 5-10 queries per user per minute x 20 users = 100-200 queries per minute.

In case I need another DBMS: is there a equivalent to MS SQL server that is free and without limits? (i dont think MySQL is possible with Linq to SQL on a allready finished project atm). As this is for a non-profit organization, I unfortunately do not have the money to spend even for the Standard edition of SQL Server.

UPDATE 1

Details:

Server: AMD Opteron™ 1381, Ram: 4GB, 64Bit,

Site is: http://www.rpone.de/FeatureList.aspx

The application uses 7 different queries which are rather simple like get a user from user table where userID == userid and such things, nothing special at all.

The schema is very normal: I have all PKs as Guid, all Tables have FKs.

I will be glad to provide more detailed information if needed.

the-wabbit
  • 40,319
  • 13
  • 105
  • 169
  • What are the server specifications ? What and how many queries will each user run ? can you share your database schema ? table indexing can lower the load, do you have proper indexes set ? Also, is it an option to convert to MySQL ? – zertux Sep 24 '13 at 11:56
  • See Update please. – PassionateDeveloper Sep 24 '13 at 12:08
  • I really really dont know if MySQL is a good solution. – PassionateDeveloper Sep 24 '13 at 12:14
  • MySQL is a good solution, it does not have any limitations except your server's hardware and it can work with ASP.net just fine. With the server you are currently running MySQL will have no performance problems if configured correctly. The same can be said to postgresql. The only remaining question is are you ready to change some of the code. – zertux Sep 24 '13 at 12:58
  • 1
    Sql Server Express will use more than 1GB of RAM, but I don't think that's your problem. 20-50 users is nothing... – Joel Coel Sep 24 '13 at 13:31
  • Th Joeol, that is my first thought too but i dont know where my problem is... – PassionateDeveloper Sep 24 '13 at 13:34
  • 2
    *why* do you think that another DBMS would help you? Did you collect [***any performance data***](http://social.msdn.microsoft.com/Forums/sqlserver/en-US/73c5beb7-c499-4551-902d-c351e4f0e88d/list-of-perfmon-counters-for-sql-server) indicating that a) the DBMS is indeed overloading your system and b) that it could be mitigated by another SQL server edition? How large is your database? – the-wabbit Sep 24 '13 at 23:21

1 Answers1

2

If you cannot use MS SQL express and you cannot afford full MS SQL Server, then the only option is to port your application to a new database back-end that you can obtain for free, like Postgres or MySQL. MS SQL Express limitations should have been explored during your design phase. Unfortunately, there's no ignore_express_limits variable to set. What you've got it what you've got.

And while you're porting your code, you should consider running it on a more modern OS. Server 2008 is 4 generations old now.

MDMarra
  • 100,183
  • 32
  • 195
  • 326