There is a bug in as late as version 2.8 in which the GenericAttribute table contents accumulate and never get purged.
See article at:
There you will find a codeplex link for the code fix.
Also, if anyone else experiences this, here are some things to try:
Go through your Log table (the table that comes with nopCommerce, not your SQL transaction log) and purge any old entries.
The Log and GenericAttribute tables tend to accumulate rows far more than any other table. The third highest will likely be the QueuedEmail table.
Once you've removed the files, this will clear out some of the data space, but it will not clear the SQL reserved space (which would have been the amount you started with for a given table, before your purge). You'll need to run some jobs to reclaim that space as well.
You can do this a couple ways:
RUN the following:
DBCC DBREINDEX (YOUR_TABLE_NAME_HERE)
Also, in SQL, go to database, right-click and choose TASKS, SHRINK, DATABASE. Check the box that reads, "reorganize files before releasing..."