存储过程的优缺点及适宜使用的场合详解

我们知道,存储过程数据库操作中的使用是非常广泛的。它具有速度快、程序简单、可重复使用、安全性高等特点,那么什么时候使用存储过程是比较适合的呢?本文我们就来介绍这一部分内容,希望能够对读者有所帮助。

公司主营业务:成都网站制作、成都网站建设、移动网站开发等业务。帮助企业客户真正实现互联网宣传,提高企业的竞争能力。成都创新互联公司是一支青春激扬、勤奋敬业、活力青春激扬、勤奋敬业、活力澎湃、和谐高效的团队。公司秉承以“开放、自由、严谨、自律”为核心的企业文化,感谢他们对我们的高要求,感谢他们从不同领域给我们带来的挑战,让我们激情的团队有机会用头脑与智慧不断的给客户带来惊喜。成都创新互联公司推出太康免费做网站回馈大家。

当一个事务涉及到多个SQL语句时或者涉及到对多个表的操作时就要考虑用存储过程;当在一个事务的完成需要很复杂的商业逻辑时(比如,对多个数据的操作,对多个状态的判断更改等)要考虑;还有就是比较复杂的统计和汇总也要考虑,但是过多的使用存储过程会降低系统的移植性。

为了系统的控制方便,例如当系统进行调整时,这是只需要将后台存储过程进行更改,而不需要更改客户端程序。也无需重新安装客户端应用程序。

存储过程不仅仅适用于大型项目,对于中小型项目,使用存储过程也是非常有必要的。

存储过程的威力和优势:

1.存储过程只在创造时进行编译,以后每次执行存储过程都不需再重新编译,而一般SQL 语句每执行一次就编译一次,所以使用存储过程可提高数据库执行速度。

2.当对数据库进行复杂操作时(如对多个表进行Update,Insert,Query,Delete 时),可将此复杂操作用存储过程封装起来与数据库提供的事务处理结合一起使用。这些操作,如果用程序来完成,就变成了一条条的SQL语句,可能要多次连接数据库。而换成存储,只需要连接一次数据库就可以了。

3.存储过程可以重复使用,可减少数据库开发人员的工作量。

4.安全性高,可设定只有某此用户才具有对指定存储过程的使用权。

存储过程的优点:

1.速度快。尤其对于较为复杂的逻辑,减少了网络流量之间的消耗。

如果有的过程和函数达到了几百行,一个微型编译器,相信用程序就更麻烦了。

2.写程序简单,采用存储过程调用类,调用任何存储过程都只要1-2行代码。

3.升级、维护方便。

4.调试其实也并不麻烦,可以用查询分析器。

5.如果把所有的数据逻辑都放在存储过程中,那么asp.net只需要负责界面的显示功能,出错的可能性最大就是在存储过程。一般情况下就是这样。

存储过程的缺点:

1.可移植性差,我一直采用sql server开发,可是如果想卖自己的东西,发现自己简直就是在帮ms卖东西,呵呵。想换成mysql,确实移植麻烦。

2.采用存储过程调用类,需要进行两次调用操作,一次是从sql server中取到过程的参数信息,并且建立参数;第二次才是调用这个过程。多了一次消耗。

不过这个缺点可以在项目开发完成,过程参数完全确定之后,把所有过程参数信息倒入到一个xml文件中来提高性能。

当一个业务同时对多个表进行处理的时候采用存储过程比较合适。

  1. 使用存储过程在一般情况下会提高性能,因为数据库优化了存储过程的数据访问计划并应用缓存方便以后的查询;
  2. 存储过程单独保护存在于数据库中。客户端可以获取权限执行存储过程,而不需要对底层的具体表设置其他的访问权限;
  3. 存储过程会使得维护起来更加方便,因为通常修改一个存储过程要比在一个已经发布的组件中修改SQL语句更加方便;
  4. 存储过程给底层数据格式增添了额外的抽象层。使得使用存储过程的客户端对存储过程的实现细节以及对底层数据格式是隔离独立的;
  5. 存储过程能够缓解网络带宽,因为可以批量执行SQL语句而不是从客户端发送超负载的请求。

复杂的数据处理用存储过程,如有些报表处理。

多条件多表联合查询,并做分页处理,用存储过程也比较适合。

适当的使用存储过程,能够提高我们SQL查询的性能,以便于提高我们的工作效率。本文就介绍这么多了,希望本次的介绍能够对您有所收获!

【编辑推荐】

  1. 用企业管理器备份和还原SQL Server数据库
  2. 图解SQL Server注册远程服务器数据库的步骤
  3. 没有SQL Server数据库时怎样打开.MDF文件?
  4. 一个SQL Server数据库删除数据集中重复数据的例子
  5. SQLServer 2008 R2数据库SSAS建模及扩展能力详解

网站标题:存储过程的优缺点及适宜使用的场合详解
URL地址:http://www.csdahua.cn/qtweb/news4/400654.html

网站建设、网络推广公司-快上网,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 快上网