Oracle FAQ Your Portal to the Oracle Knowledge Grid
HOME | ASK QUESTION | ADD INFO | SEARCH | E-MAIL US
 

Home -> Community -> Usenet -> c.d.o.misc -> Tuning the SQL Query

Tuning the SQL Query

From: <mamatha.lucas_at_gmail.com>
Date: 26 May 2006 13:42:58 -0700
Message-ID: <1148676178.236013.271100@38g2000cwa.googlegroups.com>


The query below takes longer to run. It was running fine so far but its been slow now. It runs as part of a procedure. The procedure returns a REF CURSOR. I ran DBMS_PROFILER on the procedure. I'm not sure what the problem is and how I can imrpove the performance.

SELECT /*+ INDEX(meas S_ASSET_MEAS_U1) INDEX(METER S_ASSET_P1) */

	meter.x_udc_asset_id AS meter_id,
	meter.x_universal_id AS badge_number,
	account.x_udc_accnt_id AS account_number,
	account.x_name_1 AS customer_name,
	addr.addr || ', ' || addr.city || ', ' || addr.state || ' ' ||
addr.zipcode AS address,
	comm.x_network_id AS module_number,
	sdpattr.attrib_02 AS sp_type,
	MAX( cumchprodattr.attrib_02 ) AS cn_rate,
	MAX( DECODE( intchannel.row_id, NULL, 'N', 'Y' ) ) AS
interval_data_available_yn,
	meas.x_reg_constant AS billing_constant,
	cumchprod.uom_cd AS uom
	FROM
	siebel.s_asset_at_MUDR2SEBL comm,
	siebel.s_asset_rel_at_MUDR2SEBL armcm,
	siebel.s_asset_at_MUDR2SEBL intchannel,
	siebel.s_asset_rel_at_MUDR2SEBL armintch,
	siebel.s_prod_int_xm_at_MUDR2SEBL cumchprodattr,
	siebel.s_prod_int_at_MUDR2SEBL cumchprod,
	siebel.s_asset_at_MUDR2SEBL cumchannel,
	siebel.s_asset_rel_at_MUDR2SEBL armcumch,
	siebel.s_addr_per_at_MUDR2SEBL addr,
	siebel.s_asset_xm_at_MUDR2SEBL sdpattr,
	siebel.s_org_ext_at_MUDR2SEBL account,
	siebel.s_asset_accnt_at_MUDR2SEBL aa,
	siebel.s_asset_at_MUDR2SEBL sdp,
	siebel.s_asset_rel_at_MUDR2SEBL arsm,
	siebel.s_asset_meas_at_MUDR2SEBL meas,
	siebel.s_asset_at_MUDR2SEBL meter
	WHERE
	    comm.row_id(+) = armcm.par_asset_id
	AND armcm.x_rel_status(+) = 'Active'
	AND armcm.relation_type_cd(+) = 'COMMUNICATION-METER'
	AND armcm.asset_id(+) = meter.row_id
	AND intchannel.x_physical_ch_num(+) = 1
	AND intchannel.cfg_type_cd(+) = 'Interval Data'
	AND armintch.asset_id = intchannel.row_id(+)
	AND armintch.x_rel_status(+) = 'Active'
	AND armintch.relation_type_cd(+) = 'METER-CHANNEL'
	AND armintch.par_asset_id(+) = meter.row_id
	AND cumchprodattr.attrib_03 = 'Active'
	AND cumchprodattr.attrib_01(+) = 'CN Channel Type'
	AND cumchprod.row_id = cumchprodattr.par_row_id(+)
	AND cumchannel.prod_id = cumchprod.row_id(+)
	AND cumchannel.x_physical_ch_num(+) = 1
	AND cumchannel.cfg_type_cd(+) = 'Cumulative Consumption'
	AND armcumch.asset_id = cumchannel.row_id(+)
	AND armcumch.x_rel_status(+) = 'Active'
	AND armcumch.relation_type_cd(+) = 'METER-CHANNEL'
	AND armcumch.par_asset_id(+) = meter.row_id
	AND sdp.per_addr_id = addr.row_id
	AND sdpattr.attrib_03 = 'Active'
	AND sdpattr.attrib_01 = 'Type Code'
	AND sdp.row_id = sdpattr.par_row_id
	AND aa.accnt_id = account.row_id(+)
	AND aa.x_rel_status(+) = 'Active'
	AND sdp.row_id = aa.asset_id(+)
	AND arsm.par_asset_id = sdp.row_id
	AND arsm.x_rel_status = 'Active'
	AND arsm.relation_type_cd = 'SDP-METER'
	AND meter.row_id = arsm.asset_id
	AND meas.x_phys_chan_num = 1
	AND meas.x_mudr_name = 'CUM_READ'
	AND meas.asset_id = meter.row_id
	AND meter.row_id IN
	(
		SELECT /*+ INDEX(meter2 S_ASSET_EM_UNIVID) INDEX(arsm2
S_ASSET_REL_F1) */
		meter2.row_id
		FROM siebel.s_asset_rel_at_MUDR2SEBL arsm2,
		siebel.s_asset_at_MUDR2SEBL meter2
		WHERE arsm2.x_rel_status = 'Active'
		AND arsm2.relation_type_cd = 'SDP-METER'
		AND meter2.row_id = arsm2.asset_id
		AND meter2.data_src = 'JEA'
		AND meter2.type_cd = 'Meter'
		AND meter2.x_universal_id LIKE TRANSLATE( '25343590','*', '%' )
		AND rownum <= ROUND( 50 * 1.5 )
	)
	AND ROWNUM <= 50
	GROUP BY meter.x_udc_asset_id,
	meter.x_universal_id,
	account.x_udc_accnt_id,
	account.x_name_1,
	addr.addr,
	addr.city,
	addr.state,
	addr.zipcode,
	comm.x_network_id,
	sdpattr.attrib_02,
	meas.x_reg_constant,
	cumchprod.uom_cd
	ORDER BY account.x_udc_accnt_id,
	meter.x_udc_asset_id
Received on Fri May 26 2006 - 15:42:58 CDT

Original text of this message

HOME | ASK QUESTION | ADD INFO | SEARCH | E-MAIL US