参考其余文章列举存储过程的优劣,据此分析目前智慧电站总项目下,还有那些地方的数据库操做,适合使用存储过程进行优化。php
储存程序 (Stored Procedure),又可称预储程序或者存储过程,是一种在数据库中存储复杂程序,以便外部程序调用的一种数据库对象,它能够视为数据库中的一种函数或子程序。——维基百科html
能够理解为数据库中的函数过程。web
就我在项目中实际使用来讲,当前台处理涉及多条数据库查询语句操做,并出现临时表需整合多个表筛选多余信息的状况下使用到了存储过程。而且发如今数据库中写一个存储过程,web端、移动端以及桌面端均可以调用。sql
引用自微软文档-存储过程(数据库引擎)数据库
过程当中的命令做为代码的单个批处理执行。这能够显著减小服务器和客户端之间的网络流量,由于只有对执行过程的调用才会跨网络发送。 若是没有过程提供的代码封装,每一个单独的代码行都不得不跨网络发送。安全
任何重复的数据库操做的代码都很是适合于在过程当中进行封装。这消除了没必要要地重复编写相同的代码、下降了代码不一致性,而且容许拥有所需权限的任何用户或应用程序访问和执行代码。服务器
在客户端应用程序调用过程而且将数据库操做保持在数据层中时,对于基础数据库中的任何更改,只有过程是必须更新的。 应用程序层保持独立,而且没必要知道对数据库布局、关系或进程的任何更改的状况。网络
默认状况下,在首次执行过程时将编译过程,而且建立一个执行计划,供之后的执行重复使用。 由于查询处理器没必要建立新计划,因此,它一般用更少的时间来处理过程。函数
不少文章提到存储过程的可移植性差:布局
因为存储过程将应用程序绑定到 SQL Server,所以使用存储过程封装业务逻辑将限制应用程序的可移植性。若是应用程序的可移植性在您的环境中很是重要,则将业务逻辑封装在不特定于 RDBMS 的中间层中多是一个更佳的选择。
但目前项目,是确认绑定在SQL Server数据库中,不会轻易更改,可移植性不是考虑的重点。
依据存储过程的优点,目前能够封装成存储过程的几个数据处理: