Take the 2-minute tour ×
Server Fault is a question and answer site for professional system and network administrators. It's 100% free, no registration required.

I am going to upgrade the shared hosting of my web site to a VPS mainly because my database is getting too big, > 200mb. The basic VPS plan on CrystalTech where I am hosting has 512mb ram, disk space shouldn't be an issue. If I install SQL Server 2008 Web Edition (which I have license) on here do you think it will slow the server down too much considering the amount of memory available? Has anyone experienced similar setup.

share|improve this question

3 Answers 3

up vote 4 down vote accepted

512 Megs of RAM isn't a lot any more. I'd recommend upgrading that to atleast 2 Gigs if you are going to run SQL Server on the server. The general rule with SQL Server is more RAM is always better (as long as the SQL Server can use that much RAM).

SQL Server will very quickly take all the memory available in the machine, leaving nothing or next to nothing for the web server and the OS. SQL Server will in order to improve performance cache as much information as possible in memory so that it has to go to the disk as little as possible (no matter what kind of database design you use). With so little memory available (you'll probably only end up with 100 Megs of RAM if that available for the buffer cache) you won't be able to store much information in RAM, and you'll be hitting the disk all the time looking for data.

share|improve this answer
    
I don't really want to upgrade to 2gb ram yet. I am currently using a $15mth shared host, to upgrade to a $200mth dedicated server just to run a couple of small databases. What about using SQL Express edition? –  Craig Aug 20 '09 at 23:18
    
SQL Express is the exact same engine as the SQL Server Web Edition. The only difference is that it supports less RAM, and only a single CPU. All database platforms will work the same way. Do they have a shared database server that you can buy space on, and have the database hosted on another server? –  mrdenny Aug 20 '09 at 23:33
    
I can get a shared database but there are limits and I would prefer to use the license I already have for SQL rather than pay again. –  Craig Aug 20 '09 at 23:36
    
There's been a lot of blog posts in the past about putting extra ram in a hosted environment. Short answer is: It's expensive. In fact going to 8gb in a hosted environment is more expensive than building your own server and putting it in co-lo often. –  Mark Henderson Aug 21 '09 at 0:26
    
Usually doing anything in a hosted environment gets pretty expensive quick, anything other than the initial move in anyway. Once they have you locked in, moving is tough (trust me, I just did it). You can use the Web Edition that you have now, for a while. But just keep in mind that you'll need to move the database to another server, or put more RAM in the system pretty quickly. –  mrdenny Aug 21 '09 at 1:02

The answer is ... It depends.

SQL Server performance is directly related to disk speed and memory. If you are using SQL Server for a key->value database without complex joins -- 512mb will probably be ok for now (it is the minimum microsoft recommends however). Its impossible to guess how heavily your database will be used, what your app does, how many users you have, etc. The memory will almost certainly be a weak point as you try to scale out.

Make sure you have addiquate swap space, and monitor your memory usage. Good monitoring will give you good metrics on how you need to scale your system, and where, EXACTLY the bottlenecks are as they develop.

share|improve this answer
    
The database design doesn't effect how much memory is used by SQL Server. JOINs effect CPU usage more than they effect memory usage. –  mrdenny Aug 20 '09 at 23:05

Best thing to do is try it with all the defaults & see how it goes.

Obviously this isn't recommended & you should be aware of the issues & risks you can run into, but it is possible. Squeezing sql server into this much RAM isn't going to be fun and will affect performance.

You can tweak the following settings to reduce the memory footprint of sql server:

  1. Restrict the max server memory to stop sql server using all the memory on the server for buffer cache. I'd start with something like 200 MB & play from there.

  2. Reduce the number of max worker threads. Assuming your running x32 your default is 256. This will affect the number of threads sql server has available to service requests.

share|improve this answer

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.