From: Palooka on
Mladen Gogala wrote:
> On Tue, 23 Dec 2008 03:39:05 -0800, balu wrote:
>
>> Hi,
>>
>> Can any body help me out in rewriting the query using with clause where
>> ever necessary or any method which suits for better performance.
>
> My body could probably do that but it needs to be stimulated by $70/hr.
> Other than that, asking other people to do your job for free while you
> will get paid for the solution is considered impolite.
>
That's outsourcing and offshoring for you.

Palooka
From: gym dot scuba dot kennedy at gmail on

"balu" <krishna000(a)gmail.com> wrote in message
news:c4c5b770-5969-44f1-b25d-8d526305a1a2(a)w24g2000prd.googlegroups.com...
On Dec 23, 6:58 pm, ddf <orat...(a)msn.com> wrote:
> Comments embedded.
>
> On Dec 23, 5:39 am, balu <krishna...(a)gmail.com> wrote:
>
> > Hi,
>
> > Can any body help me out in rewriting the query using with clause
> > where ever necessary or any method which suits for better performance.
>
> What leads you to believe the performance of the current query is
> bad? What evidence can you present to prove that claim?
> And what brought you to the conclusion that using the WITH clause
> would help with this?
>
> If you know enough to ask about the WITH clause you know enough to
> rewrite the query yourself using it.
>
>
>
>
>
> > SELECT distinct (SELECT ood.organization_name
> > FROM org_organization_definitions ood
> > WHERE ood.operating_unit = ood.organization_id
> > AND ood.operating_unit = oeh.org_id) "OPERATING_UNIT",
> > (SELECT organization_name
> > FROM org_organization_definitions
> > WHERE organization_id = wnd.organization_id) "ORGANIZATION",
> > (SELECT location_code
> > FROM hr_locations
> > WHERE location_id = wsh_loc_hdr.location_id) "LOCATION",
> > oeh.order_number "ORDER NUMBER", wnd.delivery_id "DELIVERY NO",
> > TO_CHAR (wnd.confirm_date) "CONFIRM DATE",
> > (SELECT NAME
> > FROM oe_transaction_types_tl
> > WHERE transaction_type_id = oeh.order_type_id) "ORDER TYPE",
> > ott.attribute1 "NATURE OF REMOVAL", msik.concatenated_segments,
> > wdd.subinventory,
> > DECODE ((SELECT COUNT (1)
> > FROM jai_om_oe_bond_reg_hdrs jai_hd,
> > jai_om_oe_bond_reg_dtls jai_dt
> > WHERE jai_hd.organization_id = wdd.organization_id
> > AND jai_hd.location_id = :b1
> > AND jai_hd.register_id = jai_dt.register_id
> > AND jai_dt.order_type_id = oeh.order_type_id),
> > 0, 'ORDER
> > TYPE NOT ATTACHED',
> > 1, 'ORDER TYPE ATTACHED',
> > 'COUNT > 1'
> > ) exception1,
> > DECODE ((SELECT COUNT (1)
> > FROM jai_inv_itm_setups jai_itm
> > WHERE jai_itm.inventory_item_id =
> > msik.inventory_item_id
> > AND jai_itm.organization_id =
> > msik.organization_id),
> > 0, 'TEMPLATE NOT ASSIGNED',
> > 1, 'TEMPLATE
> > ASSIGNED',
> > 'COUNT > 1'
> > ) exception2,
> > (SELECT jai_itm.item_class
> > FROM jai_inv_itm_setups jai_itm
> > WHERE jai_itm.inventory_item_id = msik.inventory_item_id
> > AND jai_itm.organization_id = msik.organization_id)
> > exception3,
> > (SELECT jai_itm.excise_flag
> > FROM jai_inv_itm_setups jai_itm
> > WHERE jai_itm.inventory_item_id = msik.inventory_item_id
> > AND jai_itm.organization_id = msik.organization_id)
> > exception4,
> > DECODE ((SELECT COUNT (1)
> > FROM jai_inv_subinv_dtls loc_sub
> > WHERE 1 = 1
> > AND loc_sub.organization_id = wdd.organization_id
> > AND loc_sub.location_id = :location_id
> > AND loc_sub.sub_inventory_name = wdd.subinventory
> > AND loc_sub.bonded = 'Y'),
> > 0, 'SUN INV NOT ATTACHED/NOT
> > BONDED',
> > 1, 'SUB INV ATTACHED',
> > 'COUNT > 1'
> > ) exception5
> > FROM wsh_new_deliveries wnd,
> > wsh_delivery_assignments wda,
> > wsh_delivery_details wdd,
> > oe_order_headers_all oeh,
> > oe_transaction_types_all ott,
> > mtl_system_items_kfv msik,
> > jai_om_wsh_lines_all wsh_loc_hdr,
> > jai_om_wsh_line_taxes wsh_loc_lin,
> > jai_cmn_taxes_all btax
> > WHERE 1 = 1
> > AND UPPER (btax.tax_type) LIKE '%EXCISE%'
> > AND btax.tax_id = wsh_loc_lin.tax_id
> > AND wsh_loc_lin.delivery_detail_id = wsh_loc_hdr.delivery_detail_id
> > AND wsh_loc_hdr.location_id = :b2
> > AND wsh_loc_hdr.delivery_detail_id = wdd.delivery_detail_id
> > AND msik.organization_id = wdd.organization_id
> > AND msik.inventory_item_id = wdd.inventory_item_id
> > AND ott.transaction_type_id = oeh.order_type_id
> > AND oeh.transactional_curr_code = 'INR'
> > AND oeh.org_id = :org_id
> > AND oeh.ship_from_org_id = wdd.organization_id
> > AND oeh.header_id = wdd.source_header_id
> > AND wdd.organization_id = wnd.organization_id
> > AND wdd.org_id = :b3
> > AND wdd.delivery_detail_id = wda.delivery_detail_id
> > AND wnd.delivery_id = wda.delivery_id
> > AND wnd.status_code = 'CL'
> > AND TRUNC (wnd.confirm_date) >= :b4
> > AND TRUNC (wnd.confirm_date) <= :b5
>
> > Regards
>
> > Bala
>
> David Fitzjarrell

Hi,

If you observe query we have used 2 multiple times the same query on
the tables , i just want to avoid where every necessary . i Can paste
the explain plan for your better understanding.

Regards

Bala

If you want to use the with clause go to http://www.psoug.org/library.html
some nice examples. Give it a whirl first. The first think I notice though
is TRUNC (wnd.confirm_date) >= :b4 might not be very effecient. I believe
it has to look at each row to decide that (function on a column).
Jim