系统进程只有等待了。ghost cleanup好像是清理被delete的数据,delete索引上数据时,叶子级别的数据不会马上被移除,会被职位ghost record,当ghost cleanup启动时,才会真正移除

解决方案 »

  1.   

    我查了一下:SQL Server通过ghost-cleanup线程来删除虚影记录。但删除的时机却无法预料,DELETE操作不会影响ghost-cleanup的行为,但会将新的虚影记录加到待删除的虚影记录队列末尾,而这个线程定期清理这些记录。
      

  2.   

    你试试下面的代码:
    use master
    go
    alter database 你的数据库
    set single_user
    with rollback immediatego重命名你的数据库
      

  3.   


    ghost-cleanup线程大概每5秒被唤醒一次,每次唤醒大概清理10页虚影记录,这个值会随着SQL Server版本的不同而不同。你可以通过调用 sp_clean_db_file _free_space来强制删除虚影记录,换句话说,当你删除一行时,虽然逻辑上这行没了,但实际上它们并没有被删除,直到SQL Server认为满足安全条件来实际删除这行。
      

  4.   

    1.卸离正式数据库.
    2.卸离mydb.
    3.附加mydb,指定数据库名为正式数据库名.
      

  5.   


    上面都说了原因,用这个语句可以down掉   DBCC TRACEOFF (661,-1)
      

  6.   


    参考http://support.microsoft.com/kb/920093 禁用虚影记录的删除过程修正一下,是 DBCC TRACEON(661,-1)