存储过程的优点存储过程是一组编译在单个执行计划中的 Transact-SQL 语句。存储过程帮助在不同的应用程序之间实现一致的逻辑。在一个存储过程内,可以设计、编码和测试执行某个常用任务所需的 SQL 语句和逻辑。之后,每个需要执行该任务的应用程序只须执行此存储过程即可。将业务逻辑编入单个存储过程还提供了单个控制点,以确保业务规则正确执行。存储过程还可以提高性能。许多任务以一系列 SQL 语句来执行。对前面 SQL 语句的结果所应用的条件逻辑决定后面执行的 SQL 语句。如果将这些 SQL 语句和条件逻辑写入一个存储过程,它们就成为服务器上一个执行计划的一部分。不必将结果返回给客户端以应用条件逻辑,所有工作都可以在服务器上完成。存储过程还可以使用户不必知道数据库内的表的详细信息。如果一组存储过程支持用户需要执行的所有业务功能,则用户永远不必直接访问表,他们可以只执行特定的存储过程,这些过程为他们所熟悉的业务进程建立了模型。

解决方案 »

  1.   

    --其次,如果全部都是自定义的,而且通过这些定义组合成查询,那没必要用存储过程.
    我的系统的确是这样,所以没用存值过程.
    sql server 可以缓存sql 语句的解析、查询结果,我认为存储过程的性能优势已不明显了。
    至于商业逻辑的封装,我认为放在数据访问层更好:实现编码更容易.
    这个问题是讨论不出结果的。谢了,明天结贴。
      

  2.   

    如果非要寫存儲過程的話,可以把你生成的SQL當做字符串傳進去執行的
      

  3.   

    这里讨论较多,大多数都选赞成使用存储过程。
    http://expert.csdn.net/Expert/topic/2437/2437130.xml?temp=.3755609其实微软是推荐使用的,即便最简单的sql 语句.
    但在一个客户端程序高度灵活的系统,使用它真是自找若吃。
      

  4.   

    用存儲過程有一定的優點, 適用於delphi,pb開發,Mysql中沒有存儲過程,查詢的效率又高.費用低.用于jave開發比較好!
      

  5.   

    实际体会:存储过程已经经过了语法检查,在执行的过程中省了这一步,速度会提高不少,另外一点,往上常见的sql注入攻击,对存储过程是无效的,可以减少不少安全隐患。
      

  6.   

    存储过程实在好用,绝对的提高效率。尤其对于大数据量处理,有时候能免去很多从服务器端与客户端之间不必要的Round Trip,推荐使用:)