This article was previously published under Q282174
This article has been archived. It is offered "as is" and will no longer be updated.
BUG #: 58214 (SQLBUG_70)
Restoring a database or executing an ALTER DATABASE statement might result in a CPU spin (that is, the CPU usage time goes to 100 percent). The commands run successfully, but the CPU usage stays at 100 percent even after the execution has completed. The only way out of the spin is to stop and restart the SQL Server service.
This problem might occur while the database is locked for exclusive access when restoring or altering the database. A background task thread repeatedly checks the database to perform cleanup tasks, but if it is unable to acquire a lock on the database, the cleanup task packet is queued again. Due to the bug, several copies of these cleanup packets are put into the queue. The background task expects only one package and goes into the CPU spin trying to service the queued tasks.
Microsoft has confirmed this to be a problem in SQL Server 7.0. This problem has been corrected in U.S. Service Pack 3 for Microsoft SQL Server 7.0. For more information, click the following article number to view the article in the Microsoft Knowledge Base:
274799 INF: How to Obtain Service Pack 3 for Microsoft SQL Server 7.0 and Microsoft Data Engine (MSDE) 1.0
For more information, contact your primary support provider.
This problem has been encountered when restoring a merge-replicated database to a SQL Server that does not take part in SQL Server replication; for example, restoring the merge-replicated database to a backup server. There were no errors in the SQL Server error log or in the Windows NT Event log. The allocation and structural integrity of the database was fine, and DBCC CHECKDB() did not find any errors in the database.
You may also encounter this bug during any restore of a database, or while executing an ALTER DATABASE command.
sqlserver merge cpu utilization processor clean-up errorlog