本人对oracle非常不熟悉,我在开发asp.net多数使用sqlserver,但是这次项目中用oracle数据库。老板一再强调不要用存储过程。我的理解存储过程经过编译后,性能效率更好,网络间发送字符流也减少,为啥在oracle中不推荐使用存储过程呢??

解决方案 »

  1.   

    不奇怪。公司的大部分开发人员技术水平低下的时候,使用存储过程就等于扩大了技术知识面,debug 的难度。如果是熟练程序员这些都没有问题的。
      

  2.   

    引用 4 楼 winner2050 的回复:
    不奇怪。公司的大部分开发人员技术水平低下的时候,使用存储过程就等于扩大了技术知识面,debug 的难度。如果是熟练程序员这些都没有问题的。一点都不扯,本人深有体会,一开始也不明白,辞职那天经理告诉我的
      

  3.   

    oracle的sql 和 微软的sql 在语法上存在差异,把业务逻辑写在存储过程里,以后换数据库,还得修改。如果只写基本的标准sql,换到任何一个数据库都可以用。
    也可以多写两套sql存储过程,根据不同的数据库,调用不同的dal层,工厂模式。
      

  4.   


    怕驾驭不了的话,就不要开发oracle了,驾驭不了的事情多着呢。
      

  5.   

    存储过程是牺牲开发、维护效率换来运行效率
    而且,存储过程只是减少了网络传输的SQL语句和编译SQL的开销,事实上大部分情况下这些对系统的影响很小,几乎可以忽略。只在必要的时候才用,而不是给每个查询、插入之类的都写成存储过程。
      

  6.   

    因为oracle BUG 一大堆,存储过程和视图更多BUG,所以你们老板很明智
    这样说行吗
      

  7.   

    我们公司一直用的oracle,大部分都是存储过程,挺好用,呵呵
      

  8.   

    我们公司一直用的oracle,大部分都是存储过程,挺好用,呵呵
      

  9.   

    看到以前有些人说把 select * from tb 放到存储过程里,效率就高了,我就囧了...
      

  10.   


    你在sql 字符串中用了一个数据库特定的函数,也用不了,我不喜欢存储过程,因为开放或看改代码的时候,要去找存储过程  很麻烦“
    存储过程是牺牲开发、维护效率换来运行效率
    而且,存储过程只是减少了网络传输的SQL语句和编译SQL的开销,事实上大部分情况下这些对系统的影响很小,几乎可以忽略。只在必要的时候才用,而不是给每个查询、插入之类的都写成存储过程。”
    ++
      

  11.   

    这么鄙视它的存储过程功能,oracle公司看到你们的留言会不会哭?
      

  12.   

    一般不推荐存储过程的有几个原因
    1、产品存在跨平台、跨数据库的(比如用友NC,可以数据库是DB2\ORACLE\SQLSERVER)等
    2、存储过程如果在B/S产品使用的话,如果存储过程对数据库表进行锁定等相关操作的时候,一旦出现并发,就会出现问题。
    3、存储过程不好维护,一般正式产品一旦客户应用了,生产环境数据库不会随便让连接使用,维护起来比较麻烦。