在SQLServer2000,操作一个表 tablename,主键PK主机A(酷睿双核2.8Ghz,1G内存) 反复执行插入和删除 大概一个月后,执行一下操作
插入90000条数据,然后在查询分析器中执行删除排序后的前30000
delete from tablename 
where PK in (select top 30000 PK from tablename order by PK)
删除动作用了3分半,当时用一个叫鲁大师的软件观察CPU 82度主机B(Athlon双核2.7Ghz,2G内存) 直接插入90000,然后执行删除排序后的前30000
delete from tablename 
where PK in (select top 30000 PK from tablename order by PK)
删除动作瞬间完成,即使插入1000000在执行那样的删除也是瞬间完成,请教一下,是不是A耗时长是不是因为长期执行插入和删除有关?还是其它什么原因

解决方案 »

  1.   

    谢谢了,不太明白
    如果 两个主机 都执行 delete from tablename 全部删除同样的数据量的话,
    是否时间还会差别很大?
      

  2.   

    select top 30000 PK from tablename order by PK
    看这个各多长时间
      

  3.   

    主要是索引碎片引起的.
    所以,要定期整理.1.用 DBCC SHOWCONTIG(test1) 查看索引碎片.(如果在作业里,这步不用)2. DBCC INDEXDEFRAG 整理索引或用 DBCC DBREINDEX 重建索引.