SQL Server 2008 R2 - Optimize task runs very long

I run the Optimize task from the built-in maintenance plans once a week.  The database is 46.4 GB.  The Optimize job runs > 20 hours.  Is this Normal for a database of this size?  What can be done to reduce run time?
bleonardiAsked:
Who is Participating?
 
XGISConnect With a Mentor Commented:
Here is a link to some sql optimisation options

Is data the issue or the log file blowing out?  There are some shrink options that may work for you to get it to a more manageable size.

here are some basic tips on this approach.
0
 
Mohit VijayConnect With a Mentor Commented:
sometime its normal. It depends of indexes available in your database and fragmentation of tables.
0
 
bleonardiAuthor Commented:
Took me a little while to review the articles referenced by XGIS.  

We run a shrink job every night.  The log files are not exceptionally large.

Basically, what I am taking from your comments is that I need to focus on the index structure, and then secondarily minimizing fragmentation in the indexes.  Correct?
0
 
Mohit VijayCommented:
if above question to me, then answer is yes.
0
 
XGISCommented:
Hello  bleonardi.. thankyou for the points.. pls advise if you have performed a shrink via command line and not SSMS.  Particularly your logfile, because sometimes it does not shrink properly inside SSMS. Also I have seen apps like DNN in the past the have settings that make their logfiles blowout very frequently.. so often that you needed to run a shrink process weekly.
As for indexing and so forth what type of data are you storing.  eg if you are storing images in the database as binary and not as file paths this can be an issue.  Also you may benefit from some normalisation.  eg replace words with numbers for common values.  These things can be daunting if you are not confident in sql execution. Always make a backup for testing etc.
I actually use a sql chaining type scenario in sql express 2012, where each database has a maximum size of 10gb, and a new one generates each time the other fills up.  eg10million records.  I use a MASTER database to mange the CHILD databases which enables me to run queries across all databases at once.  Maybe this approach is something to consider.
0
All Courses

From novice to tech pro — start learning today.