有两个表a,b,数据量都是10万左右
a表结构 
no    nameb表结构 
no    des删除 a 表中满足a.no = b.no的记录。我写的
delete from a where a.no in (select no from b)
结果太慢了,无法满足需要,请哪位高手指点一下,该怎样优化一下呢

解决方案 »

  1.   

    分批删除。http://www.sqlservervideos.com/video/nibbling-deletes/网址打不开的话,就墙一下吧。
      

  2.   

    TRUNCATE TABLE 比 DELETE 速度快,且使用的系统和事务日志资源少。TRUNCATE TABLE 在功能上与不带 WHERE 子句的 DELETE 语句相同:二者均删除表中的全部行。但能否使用where,没试过。。
      

  3.   

    lz的问题是在语句中用了 in ;在sql中in 的效率是十分低下的
    你的这个语句可以写成这样:
    DELETE a FROM a,bWHERE a.id=b.id