Bob*_*tor 3 c# sql-server ado.net sql-server-2005
我正在使用SQL Server 2005.我正在寻找打开SQL连接,循环通过集合并使用集合项中的数据运行更新查询(存储过程或参数化查询),然后关闭连接.
哪个会给我更好的表现,为什么?
Jas*_*yne 10
在最新版本的SQL Server中,会为存储过程和参数化查询缓存执行计划.查询将有一次性成本来创建执行计划,但这将是非常小的,甚至在几个调用的开销中丢失.
从性能角度来看,它们几乎完全相同.
例外情况是,如果您正在进行递归或嵌套查询(对于查询1中的每一行,执行查询2),客户端和服务器之间的往返行程将相加.在这种情况下,proc会好得多.
许多公司仍然有"Everything as proc"规则,但这通常是由于数据库的控制而与性能无关.随着LINQ的普及,这可能会减少.
如果您的应用程序只有一个(或几个)部署点,那么请使用您喜欢的任何一个.另一方面,如果要部署到许多安装,那么存储过程可以在某些(但不是全部)情况下允许您更新数据库功能而无需重新部署客户端代码.
| 归档时间: |
|
| 查看次数: |
2483 次 |
| 最近记录: |