.NET Data Access Architecture Guide一文中对存储过程和嵌入的sql比较:
使用存储过程的理由:
1.存储过程可以提高性能:数据库可以使用缓存等手段对数据库操作进行优化.
2.存储过程有更好的安全性,用户必须得到许可才可以访问存储过程.
3.存储过程更容易维护:和嵌入代码并且已经部署到客户端的sql语句相比,存储过程更容易维护.
4.存储过程提供了更高的抽象:客户端被隔离在具体的实现细节之外.
5.存储过程可以减少网络故障,因为可以批处理,而不是从客户端发送多个请求.
存储过程实际上就是<<企业应用架构模式>>中的"事务脚本"模式(个人看法)
书中的观点:
在业务逻辑不太复杂的情况下,使用"事物脚本"模式可以很快的搭建起一个企业应用.但sql毕竟是结构化的,提供的抽象能力和复用度还是有限,当业务逻辑变的复杂时,事务脚本就难以适应,重复的脚本变得常见,也变得难于维护.
所以作者依然对"领域模型"情有独钟