何时使用sql以及何时使用存储过程?
他们之间有什么区别?我只知道存储过程是预先编译并存储在数据库服务器中的,我们可以重用它。但是sql怎么样?例如:
select * from Employee
这个sql应该在每次我们发送到数据库时编译? 那么其他差异呢?
答案 0 :(得分:2)
这个问题可以重新解释为“你想在哪里保持业务逻辑?”
业务逻辑是系统的核心功能,它定义了您希望它的工作方式。
您可以选择将业务逻辑放在数据库中(即作为存储过程,存储函数,表约束等)或应用程序代码(即在软件函数中生成查询)。
这是一个架构决策,但一般情况下我建议只使用有意义的SP(例如,对于在代码中的许多地方经常重复的查询,或者在您真正需要它的区域中的特定性能)使用SP会产生真正的差异。)
以下是指向可能有用的文章的链接:http://c2.com/cgi/wiki?BusinessLogicInStoredProcedures