存储过程使用场合


Warning: Undefined array key "HTTP_REFERER" in /www/wwwroot/prod/www.enjoyasp.net/wp-content/plugins/google-highlight/google-hilite.php on line 58

使用存储过程的前提:
1,没有移植的问题,比如做的是一产品,客户要求不同的数据库,这时将逻辑放到存储过程上就不好移值,放到代码中则好很多。
2,项目规模比较小,如几千人使用的企业级系统,很少考虑复杂的分库分表分服务器

最佳策略:尽量不用存储过程

在规模小时,如几千人使用的企业级系统:
方案:
对于简单的查询,尽量不用存储过程,联合表可用视图,这样做的好处有二:
1,用视图分页的话可以通过底层框架生成通用的分页,而用存储过程需要对每个sql写rownumer之类
2,用视图页面可通过代码生成工具很容易直接生成,开发效率高。
对于复杂的查询或者事务更新可以使用存储过程,一是利用存储过程预编译的特点提高效率,并且逻辑都在数据库里,避免了多次查询。二是更改逻辑比较方便,不用打开项目,修改再部署,并且动到了bin的话,还会引起系统重新编译。(当然第二种好处适合小项目,对稳定性要求不高,不会因改错了一个逻辑,耽搁5分钟就会有大量投诉。)

参考:大型系统必须得要存储过程和触发器吗?