自己觉得这样的话,速度上并不会很快

解决方案 »

  1.   

    1.存储过程是在DB Server执行的,如果逻辑很多,会消耗DB Server的资源。
    2.相对语句在程序里生成,可以节省传输成本,不需要传输很长穿的SQL语句。
    3.最简单的说,sql语句的字符串,一个是占用用程序的空间,另一个是占用数据库资源。
      

  2.   

    谢谢各位的指点现在的存储过程大致上是这样的:
    create proc sp1 @con1,@con2,@con3
    as
    declare @sql
    set @sql='......'if @con1='..'
      set @sql='......' + '...'  --并不涉及查询其他table
    else
      set @sql='......' + '...'
    ...exec(@sql)如果就像上面这样,大家觉得那种方式更好
    一种避免了大字符串在网络上的传输,同时让数据库负责拼接和查询工作
    一种是在程序里运行拼接sql的操作,然后传送sql字符串到数据库,让数据库只负责查询的工作
      

  3.   

    数据库中处理逻辑问题的确没程序中快,但是存储过程本身是预编译的,可以直接执行,如果里面都是动态Sql那存储过程就失去这个优势了,你还不如直接传T-Sql进来,更方便更灵活所以不建议这种用法
      

  4.   

    有时必须用动态sql的,比如按不同的条件生成临时表。不用动态好象不好实现吧。
    当然了,能不用就不用,效率一定是低的。