Want to protect your cyber security and still get fast solutions? Ask a secure question today.Go Premium

x
  • Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 347
  • Last Modified:

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?
0
TimHudspith
Asked:
TimHudspith
2 Solutions
 
Eugene ZCommented:
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
 
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

Featured Post

Granular recovery for Microsoft Exchange

With Veeam Explorer for Microsoft Exchange you can choose the Exchange Servers and restore points you’re interested in, and Veeam Explorer will present the contents of those mailbox stores for browsing, searching and exporting.

Tackle projects and never again get stuck behind a technical roadblock.
Join Now