1.提高性能: 存储过程只在创造时进行编译,以后每次执行存储过程都不需再重新编译,而一般SQL语句每执行一次就编译一次,所以使用存储过程可提高数据库执行速度。
2. 减少网络流量:存储过程位于服务器上,调用的时候只须传递存储过程的名称以及参数,不用每次访问都传递很长的SQL 语句,当对数据库进行复杂操作时(如对多个表进行Update,Insert,Query,Delete时),可将此复杂操作用存储过程封装起来与数据库提供的事务处理结合一起使用。
3.安全性高:可设定只有特定用户才具有对指定存储过程的使用权,并可减少SQL注入攻击
并非所有的DBMS都支持存储过程,但是对于那些支持存储过程的提供者(如SQL Server和Oracle),我们可以通过把DbCommand的CommandText属性设置为存储过程的名字,并把其CommandType属性设置为CommandType.StoredProcedure,从而来使用存储过程。 CommandType属性制定了如何解释CommandText,是作为存储过程的名字还是作为一条SQL语句(缺省)。某些DBMS缓存执行存储逻辑的计划,这确实提供了比直接的SQL语句更好的性能;然而,对于SQL Server,执行计划为了所有的命令而缓存,而不管它们是存储过程还是普通的SQL语句。
对存储过程的使用有一定的争论,一些开发者使用存储过程不仅封装了数据访问逻辑,而且封装了相当多的业务逻辑;而一些开发者则坚持业务和数据逻辑分别属于应用程序中的业务逻辑类和数据访问类。 
如果有什么不对的请多多指教,本文来自[url]http://www.gobenetzsfcp.cn[/url]