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

什么时候使用存储过程比较适合?

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

 

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

存储过程不仅仅适用于大型项目,对于中小型项目,使用存储过程也是非常有必要的。其威力和优势主要体现在:

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

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

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

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

优点:

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

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

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

(我不知道别人怎么调用,我是深受其益)

3.升级、维护方便

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

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