利用存储过程优化复杂的数据库操作

时间:2017-07-29 14:36:46   收藏:0   阅读:248

参考其他文章列举存储过程的优劣,据此分析目前智慧电站总项目下,还有那些地方的数据库操作,适合使用存储过程进行优化。

存储过程是什么?

储存程序 (Stored Procedure),又可称预储程序或者存储过程,是一种在数据库中存储复杂程序,以便外部程序调用的一种数据库对象,它可以视为数据库中的一种函数或子程序。——维基百科

可以理解为数据库中的函数过程。

存储过程的优势

就我在项目中实际使用来说,当前台处理涉及多条数据库查询语句操作,并出现临时表需整合多个表筛选多余信息的情况下使用到了存储过程。并且发现在数据库中写一个存储过程,web端、移动端以及桌面端都可以调用。

引用自微软文档-存储过程(数据库引擎)

减少了服务器/客户端网络流量

过程中的命令作为代码的单个批处理执行。这可以显著减少服务器和客户端之间的网络流量,因为只有对执行过程的调用才会跨网络发送。 如果没有过程提供的代码封装,每个单独的代码行都不得不跨网络发送。

更强的安全性

代码的重复使用

任何重复的数据库操作的代码都非常适合于在过程中进行封装。这消除了不必要地重复编写相同的代码、降低了代码不一致性,并且允许拥有所需权限的任何用户或应用程序访问和执行代码。

更容易维护

在客户端应用程序调用过程并且将数据库操作保持在数据层中时,对于基础数据库中的任何更改,只有过程是必须更新的。 应用程序层保持独立,并且不必知道对数据库布局、关系或进程的任何更改的情况。

改进的性能

默认情况下,在首次执行过程时将编译过程,并且创建一个执行计划,供以后的执行重复使用。 因为查询处理器不必创建新计划,所以,它通常用更少的时间来处理过程。

存储过程的劣势

很多文章提到存储过程的可移植性差:

由于存储过程将应用程序绑定到 SQL Server,因此使用存储过程封装业务逻辑将限制应用程序的可移植性。如果应用程序的可移植性在您的环境中非常重要,则将业务逻辑封装在不特定于 RDBMS 的中间层中可能是一个更佳的选择。

但目前项目,是确认绑定在SQL Server数据库中,不会轻易更改,可移植性不是考虑的重点。

适用范围

依据存储过程的优势,目前可以封装成存储过程的几个数据处理:

更多文章可以来我的个人博客里面看到

欢迎来访:绵绵小站

参考文章

原文:http://www.cnblogs.com/hhccdf/p/7255814.html

评论(0
© 2014 bubuko.com 版权所有 - 联系我们:wmxa8@hotmail.com
打开技术之扣,分享程序人生!