日期:2014-05-16  浏览次数:20784 次

什么情况下用存储过程, 迷茫了
有好几条sql要同时操作, 这样用存储过程, 还是直接一个个做

------解决方案--------------------
你觉得哪样方便就哪样撒..
存储过程一键执行方便还是几条来回输入方便
------解决方案--------------------
基本上没有什么定论,按个人喜好。关键看你的具体情况是什么。你想实现什么操作。 过于笼统的提问,别人也很难给你什么意见。
------解决方案--------------------
这个问题就和到底用.net还是用java一样,没有定论。本人倾向尽量避免使用存储过程。

1. 存储过程绝对有其存在价值,比如可以避免与应用之间来回传递参数、数据
2. 不要和数据库打交道的时候,动不动就写存储过程(言必称希腊),很多时候用Where/Having/子查询之类就可以搞定的,非要在存储过程中写fetch+if,看了就恶心
3. 如果项目规模不大,主要看开发团队习惯及喜好
4. 以个人经验,按照现在的趋势,如果项目数据规模比较大,为了性能考虑,今后可能会进行分割,或者,上来就投入了很多服务器,分层就分的很清楚,应用集群、分压、缓存都考虑到了,就应考虑避免存储过程。IMHO,在应用层提高效率,速度的手段相对比较多,也灵活一点。
5. 也是本人经验,招Java/.NET,会基本SQL的程序员相对来说比在此基础上增加存储过程的容易一些,另外,好的数据库结构设计,通常也削减了存储过程存在的必要性。

当然,不管选哪种,永远应当记得:
1. 避免在应用与数据库之间传递大量非必要信息
2. 尽量避免数据库中的计算,比如将经常用的统计的数据单独做一个字段或者设计表,避免不必要的计算量