何时使用sql以及何时使用存储过程?

时间:2011-05-02 09:10:52

标签: mysql sql stored-procedures

何时使用sql以及何时使用存储过程?

他们之间有什么区别?我只知道存储过程是预先编译并存储在数据库服务器中的,我们可以重用它。但是sql怎么样?例如:

select * from Employee

这个sql应该在每次我们发送到数据库时编译? 那么其他差异呢?

1 个答案:

答案 0 :(得分:2)

这个问题可以重新解释为“你想在哪里保持业务逻辑?”

业务逻辑是系统的核心功能,它定义了您希望它的工作方式。

您可以选择将业务逻辑放在数据库中(即作为存储过程,存储函数,表约束等)或应用程序代码(即在软件函数中生成查询)。

这是一个架构决策,但一般情况下我建议只使用有意义的SP(例如,对于在代码中的许多地方经常重复的查询,或者在您真正需要它的区域中的特定性能)使用SP会产生真正的差异。)

以下是指向可能有用的文章的链接:http://c2.com/cgi/wiki?BusinessLogicInStoredProcedures