We're trying to rearrange a rather large database and do some cleanup. Some things we very much anticipated doing in parallel are not working. Is there anything I could have done to make these work?
Example #1: Two filegroups, one file each, doing a DBCC SHRINKFILE on each at the same time, one blocks the other. Why?
Example #2: Doing a CREATE INDEX which converted a table to having a clustered index. The table and all indexes for it are stored in three filegroups (call them X, Y, Z). Why can we not do a SHRINKFILE on some other file Q that's not in any of the filegroups being affected with CREATE INDEX. Actually in this case an amazing amount of stuff won't work -- I can't even run anything useful in Enterprise Manager, it's all blocked (and there are almost 500,000 locks presnet in SYSLOCKS with no other activity - though it's hanging pretty constant now at about 3 hours into a planned 8 hour run; doesn't SQL ever escalate to file or filegroup locks?)
This is SQL Server 2000 standard on a quad W2K system. I know I won't get parallel create-index performance, but I really expected to be doing more than one at a time in whol diferent filegroups, shrinking some, creating indexes, etc. all at the same time, but it's really holding things up.
Should I have started out different? Was there some approach or hint or transaction setting that might have caused less interaction? Or is there some funnel somewhere in a system table that gets locked for all these things and won't let others through?