How to reduce database size with BLOB fields I have a database that's used to store fingerprints. Under my conception this should be a small database but the problem is that the original developer was probably tripping on peyote and decided it would be a great idea to store the fingerprints in BLOB fields. 

Thanks to this magic trick the database is now 3 GB in size and the frontend its crashing all the time, no wonder since a simple SELECT TOP(1000) takes about a minute from MSSMS.

So I'm left with a doubt about how to proceed. Is there a way I could reduce the size of the table containing the pictures? Or maybe another alternative to this madness.

Regards.
3GB is not really a lot of data.  My laptop has 16GB memory, our datawarehouse is 3TB and that would be a fairly small warehouse.  The maximum database size according to here is 524,272 TB!?  So I think performance here is more about the kit you are on, plus index and query design.

You could refactor as Russell has suggested.  However you could also maintain the original one-table design with appropriate indexing, either a non-clustered covering index, or even full-text indexing to support the 'search for record' type queries - this should not include the blob.  Then only get the fingerprint images on an individual basis, when required by the application.  To put this another way, do not include the blob column in SELECTs where it is not explicitly required.  This will have the same effect as splitting the data into two tables without the redesign.  Don't attempt to get all the fingerprints at once!

Please tell us more about the spec of kit you are on, the version of SQL Server you are running, the table DDL (including indexes) plus what type of queries the application normally runs.