I am wondering how lengthy a (theoretically) desktop-application can take in the full 4GB limitation of those express/embedded database items (SQL-Server Express, Oracle Express, SQLite3, etc) so long as large blobs is going to be saved in filesystem.

Also an amount become your strategy if this hits the 4GB?

  • Archive that old DB
  • Copy 1-3 several weeks of information towards the new DB (think about this as cache strategy?)
  • Begin using the brand new DB from here forward (How can you access that old data?)

I realize the answer might varies for the way much data you saved within the table/column. But please describe according to your experience (what type of desktop-application, write/read heavy, how lengthy does it achieve based on your guess).

My technique for "what goes on if this hits 4GB" would usually be "use a full-fledged database".

4 GB is a great deal of text contemplate it nearly infinite for any single-developer application.

Presuming blobs towards the filesystem, limit users' images to 100kb per image, one profile image per user, and a maximum of a quarter of the database to individuals images 1 GB. That's still 10000 customers.

4GB is generally a lot, unless of course you are doing something unusual.

There's really not a way to reply to this, apart from to advise improving to some "real" database. That being stated, if your single-user database is reaching 4GB without holding large blobs, then you are doing something unusual.


One factor that lots of people don't consider may be the RAM and CPU restriction around the Express edition for SQL Server. While 2008 and prior have database size limits of 4GB (10GB for 2008 R2, as stated within the comments with this question), you are far more prone to be adversely influenced through the 1GB RAM and single CPU restrictions, especially with data sets that large.

Archiving is (almost) never an easy solution, since that always involves either breaking existing associations or copying data. For instance, consider I've got a database of Customers and Orders.

Customer        ----------
---------       OrderID
CustomerID <--- CustomerID
...             ...

Natural choice here's to produce a foreign hey between your two CustomerID posts, which makes it non-nullable within the Order table. But what goes on when I wish to archive the orders? Either I must break the connection within the archive database (permitting it to connect to a CustomerID that does not appear in the archive database) or I must duplicate the information (archive the linked Customer record, while still keeping it around within the live database). Neither choice is particularly desirable from the maintenance perspective.

"what’s next if limitation is arrived at?"

the dpi : 18446744073709551615. And just in case you did not have it, that's 16 exabyte (minus one).

When the limit is arrived at then make use of a DBMS that does not obtain that limitation. Also, remember that there's no such factor as free software application.