Defragment a database - how?

The backbone of my database (SQL 2008 Express) is a table that stores photographs in a filestream column. This table accounts for practically all the data in the db, the other tables containing just a few hundred rows of reference data. I created this table and its primary key on a filestream filegroup.

At the outset, I set the database up with a primary filegroup, a secondary one (default for user data) and a filestream filegroup. For a couple of months now I've been repeatedly deleting and repopulating this main table.  Along the way I've encountered quite a bit of unreliability with the filestream technology - sometimes when repopulating the table the db would randomly ignore the filestream group and start saving the data to the secondary filegroup. When this happened the db ran out of space and the process stalled. In this event my solution has always been to drop and recreate the table.

Now my secondary file is over 4GB, its log file is 1.4GB, and I'm out of space unable to run anything.

How do I clean this up?
TimHudspithAsked:
Who is Participating?

[Product update] Infrastructure Analysis Tool is now available with Business Accounts.Learn More

x
I wear a lot of hats...

"The solutions and answers provided on Experts Exchange have been extremely helpful to me over the last few years. I wear a lot of hats - Developer, Database Administrator, Help Desk, etc., so I know a lot of things but not a lot about one thing. Experts Exchange gives me answers from people who do know a lot about one thing, in a easy to use platform." -Todd S.

EugeneZ ZhitomirskySQL SERVER EXPERTCommented:
try to start from db reindex\update stats \dbcc checkdb

please clarify "db ran out of space "? is trn log going out of free space? if yes - let DB in the Simple Recovery
---
also you said that you are using SQL 2008 Express that has Database Size Limit 4GB

try SQL Server 2008 R2 Express where Database Size Limit Increased to 10GB
or free sql express 2012 http://www.microsoft.com/en-us/sqlserver/editions/2012-editions/express.aspx
0
lcohanDatabase AnalystCommented:
"Now my secondary file is over 4GB, its log file is 1.4GB, and I'm out of space unable to run anything.

How do I clean this up? "


If is true that you ran everything on SQL 2008 Express then your MAX database size is indeed 4GB therefore

option 1 is to upgrade (maybe even developer edition is good enough for you yet still free)

OR

option 2 you must copy then delete (move) old useless data from the active table. You can create a new for instance call it PhotoArchive database where you put identical table and move old data from active used database table(the big one...).

http://msdn.microsoft.com/en-us/library/cc645993(v=sql.100).ASPX
0

Experts Exchange Solution brought to you by

Your issues matter to us.

Facing a tech roadblock? Get the help and guidance you need from experienced professionals who care. Ask your question anytime, anywhere, with no hassle.

Start your 7-day free trial
TimHudspithAuthor Commented:
Thanks for the suggestions but in the end I ran Ola Hallengren's SQL Server Maintenance Solution to clean up my indexes, then ran the shrinkdatabase command, which did the trick.

http://ola.hallengren.com/

DBCC SHRINKDATABASE
0
It's more than this solution.Get answers and train to solve all your tech problems - anytime, anywhere.Try it for free Edge Out The Competitionfor your dream job with proven skills and certifications.Get started today Stand Outas the employee with proven skills.Start learning today for free Move Your Career Forwardwith certification training in the latest technologies.Start your trial today
Microsoft SQL Server

From novice to tech pro — start learning today.