Link to home
Start Free TrialLog in
Avatar of hammermedia
hammermediaFlag for United States of America

asked on

DBCC DBREINDEX 20 Hours and counting....HELP!!

I'm running SQL Server 2000 Enterprise Edition.  HP Proliant , Quad 3.6Mhz, 8GB RAM, RAID 5, 4 146GB 15k rotational speed drives.  The RAID controller died a week ago and I replaced it and everything came up without issue.  I could issue a query and get results.

Since the server has been back up, an insert into a 105 million row table of 1,000 records is taking 15 minutes.  It used to take 10 seconds.  I have detailed process logs that track the duration and in three years it's never taken more than 20 seconds.  Also, the weekly Backup Exec SQL "pre-process" never completed and I cancelled it at 35 hours.  It used to take 30 minutes.  Backup Exec is able to backup small (500MB) databases from the same server without issue.

I thought of corruption so I ran DBCC CHECKTABLE ('inv_detail', repair_fast) and it ran in 23 minutes and found no errors.  Since a reindex had not been done in a few months I started a DBCC DBREINDEX.  I wrongly assumed I would get status as it completed each index as the Book OnLine shows.  It does not.

I'm 20 hours into the reindex and if I'm only through the first index I need to stop and use another approach.  If I kill the process how long will the kill process take?  Will I leave thousands of pages marked as allocated wrongly?  How can I figure out what indecies are complete?  How can I stop and keep the indecies that are complete?

I am 3 days late on monthly invoicing already.  Not good.

THANKS !!
Avatar of Scott Pletcher
Scott Pletcher
Flag of United States of America image

For one table, it's all going to be one transaction, I'm pretty sure, so if you KILL it the entire thing would have to roll back, which would likely take much longer than 20 hrs (i.e., than the time it took to do the rebuild itself).

Just to be sure, did you UPDATE STATISTICS on all the tables?  I would always try that first after any  kind of upgrade / service pack / media recovery, etc..
Avatar of hammermedia

ASKER

I didn't do UPDATE STATS because I understood that DBREINDEX updated the stats.  I thought I would be saving time.  Oops.
True; actually you are right, DBREINDEX will indeed update the stats.

You must have some other issue on the box for it to be that slow.  It might have something to do with disk I/O -- given the recent controller problems -- but you should check the SQL error logs for any kind of messages.

Also, run a profiler and/or performance monitor -- from a *different machine*, you don't want to add load to the already afflicted one -- and see if anything stands out: disk I/O queue, CPU usage, etc..

Just in case, although not likely at all, also make sure SQL does not a low "max memory" setting.
Max memory is at 6GB.  The disk queue length has been averaging 76 for hours.  Normally it's closer to zero.  CPU is at 3%.
Hmm, those numbers are all fine.

Did you check for SQL errors?  Also check for hardware errors, including all database drives used for SQL.
No hardware errors.  SQL Application messages that it grew the MDF by 5GB.  Drives are fine.  No errors in the HP management console either.
37 hours and still going.  Is there ANYWAY to get some status?  Never in a million years would I think a reindex would take sooo long after a CHECKDB completed in 23 minutes.
46 hours and it completed.  Just started running test to see if it actually fixed the original issue.  I'm starting that noe.
ASKER CERTIFIED SOLUTION
Avatar of hammermedia
hammermedia
Flag of United States of America image

Link to home
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Start Free Trial