存储过程的SQL执行慢,同SQL单独执行快,咋回事?
就是一个很简单的insert 语句。

解决方案 »

  1.   


    把存储过程和 SQL 都贴出来看一下.
    ------------------------------------------------------------------------------ 
    Blog: http://blog.csdn.net/tianlesoftware 
    网上资源: http://tianlesoftware.download.csdn.net 
    相关视频:http://blog.csdn.net/tianlesoftware/archive/2009/11/27/4886500.aspx 
    DBA1 群:62697716(满); DBA2 群:62697977
      

  2.   

    一般来说是存储过程快于SQL语句的
      

  3.   

    给出代码,不然看不出问题。另外2楼说错,直接的sql语句执行效率肯定要高于存储过程。
      

  4.   

    贴代码  你如何确定出 存储过程里的sql慢了 还是存储过程慢了
      

  5.   

    INSERT/*+APPEND */ INTO A
           (A1 ,--  交易日期
            A2  ,--  交易时间
            A3   ,--  账号
            A4   ,--  客户编号
            A5   ,--  客户帐号
            A6   ,--  营业机构
            A7 ,--  营业机构名称
            A8   ,--  前台柜员
            A9 ,--前台柜员姓名
            A10   ,--  交易类别
            A11    ,--  冲正标志
            A12 ,--  借贷别
            A13 ,--借方发生额
            A14 ,--贷方发生额
            A15  ,--  凭证种类
            A16    ,--  摘要
            A17   ,--  交易流水号
            A18    ,--  钞汇鉴别
            A19   ,--  币别
           A20   ,--  帐户余额
            A21    --  交易代码
          )
           SELECT/*+ RULE */ 
                  B1 ,--  交易日期
            B2  ,--  交易时间
            B3   ,--  账号
            B4   ,--  客户编号
            B5   ,--  客户帐号
            B6   ,--  营业机构
            B7 ,--  营业机构名称
            B8   ,--  前台柜员
            B9 ,--前台柜员姓名
            B10   ,--  交易类别
            B11    ,--  冲正标志
            B12 ,--  借贷别
            B13 ,--借方发生额
            B14 ,--贷方发生额
            B15  ,--  凭证种类
            B16    ,--  摘要
            B17   ,--  交易流水号
            B18    ,--  钞汇鉴别
            B19   ,--  币别
           B20   ,--  帐户余额
            B21    --  交易代码
            FROM B SA --活期企业存款事件
            LEFT JOIN CTLR ON SA.XT_OP_TRL = TLR.OP_NO
           WHERE SA.ACCT_NO ='3306372431014206372433001866'
             AND SA.SA_TX_DT >='2010-02-01'
             AND SA.SA_TX_DT <='2010-02-20'就是这么简单的SQL语句,只不过是源表数据级上百万
      

  6.   

    LZ你把 append和rule两个hint去掉,再分别执行看看效果如何?按道理说不应该出现这种问题。
    另外LS的,这个我没法举出例子来证明,不过存储过程是一段程序,比起一段不用编译不用判断的sql来说,肯定要慢。
      

  7.   

    采用静态执行,可以提高存储过程的性能
    eg:
       strSql := 'insert a values(:1,:2,:3)'
       execute immediate strSql using 'a','b','c';