I have 2 SQL 2000 Servers running Windows 2003 Server. Both are used heavily on a daily basis and have anywhere from 30-50 databases on them at any given time. Databases are added, deleted, shrink, grow, etc. all the time. I have 3 jobs running nightly... Integrity check (Using a maintenance plan) Run sp_updatestats on all user databases (manually created job) Shrink all user databases (manually created job) Is there anything else I should be doing? Should I be running steps 2 and 3 on all DBs rather than just the user DBs? Also, I would like to run defrag on a regular basis. Is there anyway to schedule a defrag in Windows 2003? If not, is there a free utility out there that will do it for me?