读书人

SQL删除多条数据两种方法性能比较,该怎

发布时间: 2012-01-31 21:28:41 作者: rapoo

SQL删除多条数据两种方法性能比较
今天看到一段代码,是用代码生成器生成的,代码如下:
public void Delete(List <int> l)
{
foreach (int ISBN in l)
dal.Delete(ISBN); //逐个删除数据
}

这样删除数据会不会造成性能的损失?
因为这样每删除一条数据都要经过编译器编译,增加额外的系统开销。

相比较而言:
"delete from table where id in( "+id[n]+ ") ";这种方法效率应该比前一种有大幅度的提升。

本人入行不久,对代码生成器中的这段代码有所疑虑,感觉大批量的数据的话用代码生成器中的方法是不可行的,本人个人看法,不知道是否正确?

[解决办法]
没错

一条一条删除,那么每删除一条都要一次数据连接,这个当然不可取。

现在有很多代码生成器的东西,因为面向对象嘛,但是有些应该适可而止,就比如这个,非常的不建议
[解决办法]
ID分类,取某值col最小,其他删除(意即按ID删除多余数据)

delete from tb where id not in (select min(col) from tb group by id)

读书人网 >SQL Server

热点推荐