语句:
select b.ifdl_dp_number,
       b.ifdl_org_id,
       b.ifdl_dp_line_number,
       b.ifdl_cust_name,
       b.ifdl_cust_code,
       b.ifdl_cust_site_code,
       b.ifdl_vendor_name,
       b.ifdl_vendor_code,
       b.ifdl_vendor_site_code,
       b.ifdl_identifier_rc,
       b.ifdl_identifier_abcd,
       b.ifdl_category_code,
       b.ifdl_accounted_amount,
       b.ifdl_entered_amount,
       b.ifdl_currency_code,
       b.ifdl_exchange_rate,
       b.ifdl_exchange_rate_type,
       to_char(b.ifdl_revenue_inv_date, :"SYS_B_00") ifdl_revenue_inv_date,
       to_char(b.ifdl_cost_inv_date, :"SYS_B_01") ifdl_cost_inv_date,
       to_char(b.ifdl_revenue_inv_term_date, :"SYS_B_02") ifdl_revenue_inv_term_date,
       b.ifdl_revenue_inv_number,
       b.ifdl_cost_inv_number,
       b.ifdl_tax_revenue_inv_number,
       b.ifdl_tax_cost_inv_number,
       b.ifdl_accounting_method,
       to_char(b.ifdl_gl_date, :"SYS_B_03") ifdl_gl_date,
       b.ifdl_operations_type,
       b.ifdl_dept_seg_code,
       b.ifdl_subaccount_code,
       b.ifdl_project_number,
       b.ifdl_sales_rep,
       b.ifdl_otherside,
       b.ifdl_id,
       b.ifdl_ieflag,
       b.ifdl_ciid,
       b.ifdl_inv_head,
       b.ifdl_customer_bizno,
       b.ifdl_abstract,
       b.ifdl_identifier_abcd_to
  from IFDPLINE b
 where b.IFDL_status = :"SYS_B_04"
   and b.ifdl_org_id = :"SYS_B_05"执行成本:
SELECT STATEMENT, GOAL = CHOOSE       11 120 18600
 TABLE ACCESS BY INDEX ROWID   IFDPLINE    11 120 18600
  INDEX RANGE SCAN     INDX_IFDL   2 120
如果是
select 1
  from IFDPLINE b
 where b.IFDL_status = :"SYS_B_04"
   and b.ifdl_org_id = :"SYS_B_05"
执行成本:
SELECT STATEMENT, GOAL = CHOOSE      1 120 600
 INDEX RANGE SCAN INDX_IFDL_STATUSORGID  1 120 600
为什么出现这种情况,要降低成本要怎么做,因为在正式机上,成本要高很多,希望各位帮帮忙。。

解决方案 »

  1.   

    你的sql已经够简单的了,怎么优化?
    执行成本不懂,占楼看下
    to_char(b.ifdl_revenue_inv_date, :"SYS_B_00") ifdl_revenue_inv_date
    b.IFDL_status = :"SYS_B_04"其中的SYS_B_04是什么意思?好奇的问下
      

  2.   

    是执行计划里出来的东东,具体可以在v$sqlarea里看,有没有大侠可以帮忙下。我很郁闷为什么会出现这种情况