Недавно у нас была похожая проблема с базой данных SQL Server 2000.
Во время запроса запустите этот запрос в своей основной базе данных на сервере БД и посмотрите, есть ли какие-либо блокировки, которые следует устранить:
select
spid,
db_name(sp.dbid) as DBname,
blocked as BlockedBy,
waittime as WaitInMs,
lastwaittype,
waitresource,
cpu,
physical_io,
memusage,
loginame,
login_time,
last_batch,
hostname,
sql_handle
from sysprocesses sp
where (waittype > 0 and spid > 49) or spid in (select blocked from sysprocesses where blocked > 0)
SQL Server Management Studio 2008 также содержит очень интересный монитор активности, который позволяет видеть состояние вашей базы данных во время запроса.
В нашем случае это была блокировка сети, которая поддерживала занятость базы данных. Это был какой-то унаследованный код VB, который не отключил набор результатов достаточно быстро.