Any thoughts of how to solve this?

I tried creating another database and putting some tables there, but actually there is just 1 big table with almost 3 million rows, this table is using all the space, so separating tables is useless.

I though about migrating to MySQL, but the (former) programmer who used this database programmed it using SQL Server framework, and he sucked at it, so its a whole lot of code to change which I suppose it can be done but I don't have that much time.

I can't think of anything but to buy sql server, but I don't have that kind of money, I also thought of 'borrowing' it from a torrent or something like that, but my server is a dedicated server on gigenet and that would break the TOS.


  • Do you see the irony in the fact you're willing to pirate software, but not break the terms of service of your service provider? – DKNUCKLES Jul 24 '12 at 22:40

not a solution, but a possible delay of the inevitable: get the 180-day trial version of sql server

  • sounds like the best option to me. But if you do that then you're going to end up paying for it in the end. Unfortunately that's exactly what MS wants. To their credit they do make the '4gb limit' pretty clear, so it boils down to bad planning/lack of foresight on behalf of your former programmer. :/ – phoenix8 Nov 11 '09 at 6:48
  • this is great I didn't know there was an evaluation version, this gives me time to change all the programing and migrate to a mysql database (but who states the damn connection string on every method instead of using web.config? facepalm). SQL server is just not worth it for this kind of proyect. thanks. – sergiogx Nov 11 '09 at 7:00
  • 1
    check out bizspark before you give up on sql server – Nick Kavadias Nov 11 '09 at 14:12

If you have no money & your a struggling small business, then MS feels your pain, they love you & they want you to stick with sql server.

Check if you are eligible for Microsoft's bizspark program, which means you can get a free* web edition version of SQL Server, as well as a web edition of windows server.

*I think if you keep the license after 2 years, you owe microsoft $100.

If your not eligible then sharding if your only option & it will be painful.

  • This is great, I may still go the mySQL/Postgres route anyway for this particular proyect, but still I qualify 100% for the bizpark program so I'll give it a shot, thanks – sergiogx Nov 11 '09 at 16:58
  • Just to make it clear, if you want to keep the SQL server when your bizspark membership ends (3 years later) you need to pay for a full SQL licence. – Sam Cogan Nov 12 '09 at 13:33

PostgreSQL has a .NET connector (you never said it's written in) so it might be easier to move to that then MySQL.

  • 1
    +1 Would also vote for PostgreSQL if you need to replace MSSQL... MySQL and I don't get along too well ^^ – Oskar Duveborn Nov 11 '09 at 12:27
  • Completely agree with Oskar. Postgre works out well for those used to MSSQL or Oracle who can't afford the licensing. – sclarson Nov 11 '09 at 14:43
  • Yes it's a web service writen on .NET 2.0, MySQL also has a .net connector. I'll try postgres and see whats better, I just prefer MySQL because I have more experience with it. – sergiogx Nov 11 '09 at 17:13
  • Fair enough, go with what you know for sure. – SpaceManSpiff Nov 12 '09 at 10:44

Microsoft SQL Server Express 2008 R2 Now has a 10gb databases limit, instead of the 4gm limit on SQL 2005. You should be able to upgrade to this version relatively painlessly.


If money is such a concern, you should really focus on converting your application to use a free database like MySQL or PostgreSQL. But with that said...

It would be helpful to know a bit more about your situation. Which licensing option is best for you is highly dependent on how your application is being used.

If you are actively designing, developing, or testing your application, you can use the Developer edition which does not have a 4GB limit. A license is inexpensive, and students can get it free through Dreamspark. If you are in education or part of a charity, you can take advantage of steep discounts that way.

If the above options don't apply to you, it would be useful to know how many users will be using your application, so that you can decide between per-processor or per-server licensing. Per-server licensing necessitates the purchase of CALs for each user of the database.


You could partition the table.

Basically this means splitting the data from a single table into multiple smaller ones. This is usually done for performance reasons, but it might save your bacon here. There's two ways to go about it:

Horizontal Partitioning: Have multiple tables with identical schemas, with rows split between them. For example, all customers whose zip code is < 50000 go into table A, the rest go into table B. Alternately, you could use this same sort of scheme to "archive" old data for situations where the age of the data is significant (such as a forum). All entries older than a month get sent to a secondary (tertiary, etc.) database, with the location keyed based on the age of the information. This information isn't queried unless the user performs explicitly asks for old records.

Vertical Partitioning: Split the schema of the table so that some of the columns go into one table, some into another. Use the same primary key on all tables to link the rows. For example, a customer's name and address go into one table, his photo into another, and his billing information into another. Usually you want to partition it up so that data that is referenced less often doesn't have to be loaded.

  • SQL Express does not support partioning – Mark Henderson Nov 11 '09 at 9:34
  • 2
    I think he's suggesting splitting the tables into more than one database. The 4GB limit is per database. – SuperCoolMoss Nov 11 '09 at 12:57
  • Vertical partioning seems a good alternative, but its kind of hard to rewrite all the sql querys to acomodate this. – sergiogx Nov 11 '09 at 17:15

I realise that this is an old question, but why did nobody suggest an upgrade to SQL 2008 express? It has a per-database limit of 10 GB.

Your Answer

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

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