Help to tune nested query
Hi I have a following type of query which is using inline views .
select a,b,c,d,e,f
from
(select a,b
from (select a,c from t)),
(select c,d
from (select d,c from t1))
What would be best approach to tune these type of queries?
Can we use Global temp Table these queries
-kuldeep
What do you mean by tune. What do you want to do.
select a,b,c,d,e,f
from
(select a,b
from (select a,c from t)),
(select c,d
from (select d,c from t1))you dont have any join condition. you are doing a Cartesian join here. is that what you want to do. this can be very simply writern like this.
select a,b,c,d from t,t1and where does the column e and f come from. if you wnat answers give us the questions properly.
do you have any idea what a global temporary table? what made you think it will help you here?
Karthick.
Similar Messages
-
Hi,
I'm using below query in procedure.It's taking more more time can some one help to tune this query or advice to rewrite the query.
Databse :10.1
SELECT 'Reading Comprehension' TEST_NAME,T.TEST_END_DATE TEST_SESSION_DATE,
C.POOL_VERSION_ID, I.CREATED_ON POOL_CREATED_DT,
C.ITEM_ID, C.ITEM_RESPONSE_ID, S.STUDENT_ID_PK, C.RESPONSE_KEY, C.IS_CORRECT RESPONSE_IS_CORRECT,
T.SCORE SCALE_SCORE, C.RESPONSE_DURATION, P.ITEM_KEY,
T.TEST_SESSION_DETAIL_ID, SYSDATE CREATED_ON
-- BULK COLLECT INTO TV_PSYCHO_DET
FROM
CAT_ITEM_PARAMETER P, CAT_ITEM_USER_RESPONSE C, TEST_SESSION_DETAIL T,
TEST_SESSION S, ITEM_POOL_VERSION I, TEST_DETAIL D
,INSTITUTION E
WHERE TRUNC(T.TEST_END_DATE) BETWEEN TO_DATE('01-11-09','dd-mm-yy') AND TO_DATE('30-11-09','dd-mm-yy')
AND D.TEST_NAME = 'Reading Comprehension'
AND T.TEST_SESSION_STATUS_ID = 3
AND I.POOL_AVAILABILITY='Y'
AND P.PRETEST=0 AND C.RESTART_FLAG=0
AND T.TEST_DETAIL_ID = D.TEST_DETAIL_ID
AND S.TEST_SESSION_ID = T.TEST_SESSION_ID
AND C.TEST_SESSION_DETAIL_ID = T.TEST_SESSION_DETAIL_ID
AND S.INSTITUTION_ID=E.INSTITUTION_ID
AND SUBSTR(E.INSTITUTION_ID_DISPLAY,8,3) <> '000'
AND I.ITEM_ID = C.ITEM_ID
AND P.ITEM_ID = I.ITEM_ID;expln plan
Plan hash value: 3712814491
| Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time | Pstart|
Pstop |
| 0 | SELECT STATEMENT | | 50857 | 7151K| 93382 (1)| 00:18:41 | |
|
|* 1 | FILTER | | | | | | |
|
|* 2 | HASH JOIN | | 50857 | 7151K| 93382 (1)| 00:18:41 | |
|
| 3 | PARTITION HASH ALL | | 2312 | 23120 | 25 (0)| 00:00:01 | 1 |
5 |
|* 4 | TABLE ACCESS FULL | CAT_ITEM_PARAMETER | 2312 | 23120 | 25 (0)| 00:00:01 | 1 |
5 |
|* 5 | HASH JOIN | | 94938 | 12M| 93356 (1)| 00:18:41 | |
|
|* 6 | TABLE ACCESS FULL | ITEM_POOL_VERSION | 9036 | 132K| 30 (0)| 00:00:01 | |
|
|* 7 | TABLE ACCESS BY GLOBAL INDEX ROWID | CAT_ITEM_USER_RESPONSE | 9 | 279 | 18 (0)| 00:00:01 | ROWID |
ROWID |
| 8 | NESTED LOOPS | | 45349 | 5270K| 93325 (1)| 00:18:40 | |
|
|* 9 | HASH JOIN | | 4923 | 423K| 11377 (1)| 00:02:17 | |
|
|* 10 | INDEX FAST FULL SCAN | INSTI_ID_NAME_COUN_DISP_IDX | 8165 | 111K| 18 (0)| 00:00:01 | |
|
|* 11 | HASH JOIN | | 4923 | 355K| 11359 (1)| 00:02:17 | |
|
|* 12 | TABLE ACCESS BY GLOBAL INDEX ROWID| TEST_SESSION_DETAIL | 4107 | 148K| 6804 (1)| 00:01:22 | ROWID |
ROWID |
| 13 | NESTED LOOPS | | 4923 | 278K| 6806 (1)| 00:01:22 | |
|
|* 14 | INDEX RANGE SCAN | TEST_DETAIL_AK_1 | 1 | 21 | 2 (0)| 00:00:01 | |
|
|* 15 | INDEX RANGE SCAN | TEST_SESSION_DETAIL_FK2_I | 39737 | | 102 (0)| 00:00:02 | |
|
| 16 | PARTITION HASH ALL | | 1672K| 25M| 4546 (1)| 00:00:55 | 1 |
5 |
| 17 | TABLE ACCESS FULL | TEST_SESSION | 1672K| 25M| 4546 (1)| 00:00:55 | 1 |
5 |
|* 18 | INDEX RANGE SCAN | CAT_ITEM_USER_RESP_IDX1 | 18 | | 3 (0)| 00:00:01 | |
|
Predicate Information (identified by operation id):
1 - filter(TO_DATE('01-11-09','dd-mm-yy')<=TO_DATE('30-11-09','dd-mm-yy'))
2 - access("P"."ITEM_ID"="I"."ITEM_ID")
4 - filter("P"."PRETEST"=0)
5 - access("I"."ITEM_ID"="C"."ITEM_ID")
6 - filter("I"."POOL_AVAILABILITY"='Y')
7 - filter(TO_NUMBER("C"."RESTART_FLAG")=0)
9 - access("S"."INSTITUTION_ID"="E"."INSTITUTION_ID")
10 - filter(SUBSTR("E"."INSTITUTION_ID_DISPLAY",8,3)<>'000')
11 - access("S"."TEST_SESSION_ID"="T"."TEST_SESSION_ID")
12 - filter(TRUNC(INTERNAL_FUNCTION("T"."TEST_END_DATE"))>=TO_DATE('01-11-09','dd-mm-yy') AND "T"."TEST_SESSION_STATUS_ID"=3
AND TRUNC(INTERNAL_FUNCTION("T"."TEST_END_DATE"))<=TO_DATE('30-11-09','dd-mm-yy'))
14 - access("D"."TEST_NAME"='Reading Comprehension')
15 - access("T"."TEST_DETAIL_ID"="D"."TEST_DETAIL_ID")
18 - access("C"."TEST_SESSION_DETAIL_ID"="T"."TEST_SESSION_DETAIL_ID")
43 rows selected.Edited by: user575115 on Dec 18, 2009 12:31 AMWhen you see something like ...
7 - filter(TO_NUMBER("C"."RESTART_FLAG")=0) It means that Oracle had to do a conversion for you since you aren't using the proper data type in your query.
That would mean IF there is an index on that column, it won't be useable... -
Need help in tune this query.
Hi All,
The below query is taking nearly one hour to give the output.
2 select sku.VK_UNIT
3 , sku.MODEL
4 , sku.DESCRIPTION
5 , slt.GEO
6 , slt.LEAD_TIME
7 , slt.REV_LEAD_TIME
8 , aud.LEAD_TIME as PREV_LEAD_TIME_GEO
9 , aud.REV_LEAD_TIME as PREV_REV_LEAD_TIME_GEO
10 , slt.COUNTDOWN
11 , aud.CREATION_DATE as EDD_CREATION_DATE_GEO
12 , aud.CREATED_BY as EDD_CREATED_BY_GEO
13 from LTC_GLOBAL.LTC_SKU sku
14 , LTC_GLOBAL.LTC_SKU_LEAD_TIME slt
15 , (select VK_UNIT
16 , MODEL
17 , substr(ACTION_TYPE, 9) as GEO
18 , max(case when substr(ACTION_TYPE, 1, 8) = 'SKU EDD ' then ACTION_VALUE else null end) as LEAD_TIME
19 , max(case when substr(ACTION_TYPE, 1, 8) = 'SKU EDD ' then CREATION_DATE else null end) as CREATION_DATE
20 , max(case when substr(ACTION_TYPE, 1, 8) = 'SKU EDD ' then CREATED_BY else null end) as CREATED_BY
21 , max(case when substr(ACTION_TYPE, 1, 8) = 'SKU RDD ' then ACTION_VALUE else null end) as REV_LEAD_TIME
22 , max(case when substr(ACTION_TYPE, 1, 8) = 'SKU RDD ' then CREATION_DATE else null end) as REV_CREATION_DATE
23 , max(case when substr(ACTION_TYPE, 1, 8) = 'SKU RDD ' then CREATED_BY else null end) as REV_CREATED_BY
24 from (select VK_UNIT
25 , MODEL
26 , ACTION_TYPE
27 , ACTION_VALUE
28 , CREATION_DATE
29 , CREATED_BY
30 , PREV_ACTION_VALUE
31 , PREV_CREATION_DATE
32 , PREV_CREATED_BY
33 from (select
34 NOTE as VK_UNIT
35 , NOTE2 as MODEL
36 , ACTION_TYPE
37 , ACTION_VALUE
38 , CREATION_DATE
39 , CREATED_BY
40 , row_number() over(partition by NOTE, NOTE2, ACTION_TYPE order by CREATION_DATE desc) as DEPTH
41 , lead(CREATION_DATE) over(partition by NOTE, NOTE2, ACTION_TYPE order by CREATION_DATE desc) as PREV_CREATION_DATE
42 , lead(CREATED_BY ) over(partition by NOTE, NOTE2, ACTION_TYPE order by CREATION_DATE desc) as PREV_CREATED_BY
43 , lead(ACTION_VALUE ) over(partition by NOTE, NOTE2, ACTION_TYPE order by CREATION_DATE desc) as PREV_ACTION_VALUE
44 from LTC_GLOBAL.LTC_AUDIT
45 where NOTE is not null
46 and NOTE2 is not null
47 and ACTION_TYPE is not null
48 )
49 where DEPTH = 2
50 and substr(ACTION_TYPE, 1, 8) in ('SKU EDD ', 'SKU RDD ')
51 )
52 group by VK_UNIT, MODEL, substr(ACTION_TYPE, 9)
53 ) aud
54 where slt.VK_UNIT = sku.VK_UNIT
55 and slt.MODEL = sku.MODEL
56 and slt.CLASS = sku.CLASS
57 and nvl(slt.LEAD_TIME, slt.REV_LEAD_TIME) is not null
58 and aud.VK_UNIT (+)= slt.VK_UNIT
59 and aud.MODEL (+)= slt.MODEL
60 and aud.GEO (+)= slt.GEO;
PLAN_TABLE_OUTPUT
Plan hash value: 2687821083
| Id | Operation | Name | Rows | Bytes |TempSpc| Cost (%CPU)| Time |
| 0 | SELECT STATEMENT | | 539K| 902M| | 1005K (1)| 03:21:05 |
|* 1 | HASH JOIN OUTER | | 539K| 902M| 62M| 1005K (1)| 03:21:05 |
|* 2 | HASH JOIN | | 539K| 56M| 27M| 66402 (1)| 00:13:17 |
|* 3 | TABLE ACCESS FULL | LTC_SKU_LEAD_TIME | 559K| 20M| | 23201 (2)| 00:04:39 |
| 4 | TABLE ACCESS FULL | LTC_SKU_UNIT | 5726K| 382M| | 19570 (1)| 00:03:55 |
| 5 | VIEW | | 4157K| 6522M| | 610K (2)| 02:02:02 |
PLAN_TABLE_OUTPUT
| 6 | HASH GROUP BY | | 4157K| 229M| 303M| 610K (2)| 02:02:02 |
|* 7 | VIEW | | 4157K| 229M| | 551K (2)| 01:50:21 |
|* 8 | WINDOW SORT PUSHED RANK| | 4157K| 229M| 303M| 551K (2)| 01:50:21 |
|* 9 | TABLE ACCESS FULL | LTC_AUDIT | 4157K| 229M| | 493K (2)| 01:38:41 |
Predicate Information (identified by operation id):
1 - access("AUD"."VK_UNIT"(+)="SLT"."VK_UNIT" AND "AUD"."MODEL"(+)="SLT"."MODEL" AND
"AUD"."GEO"(+)="SLT"."GEO")
PLAN_TABLE_OUTPUT
2 - access("SLT"."VK_UNIT"="UNIT"."VK_UNIT" AND "SLT"."MODEL"="UNIT"."MODEL" AND
"SLT"."CLASS"="UNIT"."CLASS")
3 - filter(NVL("SLT"."LEAD_TIME","SLT"."REV_LEAD_TIME") IS NOT NULL)
7 - filter("DEPTH"=2)
8 - filter(ROW_NUMBER() OVER ( PARTITION BY "NOTE","NOTE2","ACTION_TYPE" ORDER BY
INTERNAL_FUNCTION("CREATION_DATE") DESC )<=2)
9 - filter((SUBSTR("ACTION_TYPE",1,8)='SKU EDD ' OR SUBSTR("ACTION_TYPE",1,8)='SKU RDD ') AND
"NOTE2" IS NOT NULL AND "ACTION_TYPE" IS NOT NULL)
30 rows selected.
SELECT COUNT(*) FROM LTC_GLOBAL.LTC_SKU--5012335
SELECT COUNT(*) FROM LTC_GLOBAL.LTC_SKU_LEAD_TIME--8060956
SELECT COUNT(*) FROM LTC_GLOBAL.LTC_AUDIT--58309887
CREATE UNIQUE INDEX LTC_GLOBAL.LTC_SKU_LEAD_TIME_PK ON LTC_GLOBAL.LTC_SKU_LEAD_TIME(VK_UNIT, MODEL, CLASS, GEO)
CREATE INDEX LTC_GLOBAL.LTC_AUDIT_LEAD_TIME ON LTC_GLOBAL.LTC_AUDIT(ACTION_TYPE)
CREATE INDEX LTC_GLOBAL.LTC_AUDIT_LEAD_TIME_DOM ON LTC_GLOBAL.LTC_AUDIT(NOTE, NOTE2, ACTION_TYPE)
CREATE INDEX LTC_GLOBAL.LTC_AUDIT_LEAD_TIME_DOM1 ON LTC_GLOBAL.LTC_AUDIT("CREATION_DATE" DESC)
Please help me.
Thanks in advance.Thanks for your response.
Sorry for violating formatting. Since I am not aware of the format options in new environment.
I have created functional based index on SUBSTR(ACTION_TYPE, 1, 8).
The cost got reduced some what.But still the query is taking 40 minutes.
The following predicate it is returning 58296618 rows.
NOTE is not null
and NOTE2 is not null
and ACTION_TYPE is not null
LTC_SKU_UNIT is a view.
The following query is used for creating this view.
SELECT unit.VK_UNIT,
unit.MODEL,
unit.CLASS,
unit.LOB,
unit.LAST_UPDATE_DATE,
unit.DESCRIPTION
FROM LTC_GLOBAL.LTC_SKU_UNIT unit;
The following indexes are created on the LTC_GLOBAL.LTC_SKU_UNIT table.
CREATE INDEX LTC_GLOBAL.LTC_SKU_UNIT_IDX_CLASS ON LTC_GLOBAL.LTC_SKU_UNIT(CLASS)
CREATE INDEX LTC_GLOBAL.LTC_SKU_UNIT_IDX_MODEL ON LTC_GLOBAL.LTC_SKU_UNIT(MODEL)
CREATE INDEX LTC_GLOBAL.LTC_SKU_UNIT_IDX_UPDATE_DATE ON LTC_GLOBAL.LTC_SKU_UNIT(LAST_UPDATE_DATE)
CREATE UNIQUE INDEX LTC_GLOBAL.LTC_SKU_UNIT_PK ON LTC_GLOBAL.LTC_SKU_UNIT(VK_UNIT, MODEL, CLASS)
Is there any way to rewrite the query to improve the performance. Any suggestions to improve the performance.
Please help me.
Thanks in advance. -
I am currently using the query:
SELECT vs.serial_num,
nvl(sum(events), 0) as vs.events,
nvl(get_part_count(vs.fiscal_year, vs.vehicle_type, vs.serial_num), 0) as unique_parts,
nvl((get_part_count(vs.fiscal_year, vs.vehicle_type, vs.serial_num)/total_parts), 0) as percent_unique_parts,
FROM vehicle_stats vs
WHERE vs.vehicle_type = 'truck'
AND vs.fiscal_year = 2000
GROUP BY vs.serial_num
in a stored procedure that returns a ref_cursor to a web application. As you can see I'm calling get_part_count twice, once for the raw number and again for the percentage. Is there a simple way to eliminate one of these calls and still retain the return same cursor?
Thanks in advanceIf you have a primary key for this table, you could try this :
SELECT vs.serial_num,
nvl(sum(events), 0) as vs.events,
nvl(gp.gpc, 0) as unique_parts,
nvl(gp.gpc/total_parts), 0) as percent_unique_parts,
FROM vehicle_stats vs,
(SELECT pk_column, get_part_count(vs.fiscal_year, vs.vehicle_type, vs.serial_num) gpc FROM vehicle_stats) gp
WHERE vs.vehicle_type = 'truck'
AND vs.fiscal_year = 2000
AND vs.pk = gp.pk
GROUP BY vs.serial_num -
Please help me tune this query
Hi,
Could you please suggest how the below query can be tuned? At present the query takes an hour to execute for a single transaction.
===================================================================
/* Formatted on 2009/07/27 17:44 (Formatter Plus v4.8.8) */
SELECT 'x' x,
SUBSTR (cn.trx_number, 1, INSTR (cn.trx_number, 'CN') - 1) invoice_num,
DECODE (INSTR (cn.trx_number, 'CNT'),
0, '¿¿¿¿¿¿¿¿ (CREDIT NOTE)',
'¿¿¿¿¿¿¿¿ (CREDIT NOTE) / ¿¿¿¿¿¿¿¿¿¿¿'
) report_name,
INSTR (cn.trx_number, 'CNT') v_or_nv,
xxth_get_info.get_org_name (:org_id) head_office_name, lc.location_id,
lc.location_code, lc.attribute1 tax_regis_number,
lc.attribute2 tax_payer_id, lc.attribute14 branch_number,
lc.attribute15 name_of_place_of_business,
lc.address_line_1 || ' ' || lc.address_line_2 address_line1,
lc.address_line_3 || ' ' || lc.region_1 address_line2,
lc.region_2
|| ' '
|| lc.town_or_city
|| ' '
|| lc.postal_code
|| ' '
|| lc.country address_line3,
cn.type_cn, cn.rac_bill_to_customer_name, cn.address1,
cn.raa_bill_to_address3, cn.bill_to_site_use_id, cn.trx_date,
cn.trx_number, cn.rac_bill_to_customer_num, cn.description,
ABS (cn.extended_amount) extended_amount, ABS (cn.tax_amt) tax_amt,
rc.trx_rec_number, rc.apply_date, rc.cash_receipt_id
FROM ra_cust_trx_types cc,
hr_locations_v lc,
(SELECT b.cash_receipt_id, a.trx_number, b.trx_rec_number,
b.apply_date
FROM ar_payment_schedules a, ar_app_adj_v b,ar_cash_receipts c
WHERE b.payment_schedule_id = a.payment_schedule_id
AND c.cash_receipt_id=b.cash_receipt_id
AND c.status='APP'
AND b.CLASS = 'Payment'
group by b.cash_receipt_id, a.trx_number, b.trx_rec_number,b.apply_date) rc,
(SELECT 'B' type_cn, a.customer_trx_id, a.cust_trx_type_id,
a.rac_bill_to_customer_name,
a.raa_bill_to_address1
|| ' '
|| a.raa_bill_to_address2 address1,
a.raa_bill_to_address3, a.bill_to_site_use_id, a.trx_date,
a.trx_number,
( SUBSTR (a.trx_number, 1,
INSTR (a.trx_number, 'CN', -1) - 1)
|| SUBSTR (a.trx_number, INSTR (a.trx_number, 'CN', -1) + 2)
) trx_number_cmp,
a.rac_bill_to_customer_num,
ctl.description, -- b.description
sum(nvl(ctl.gross_extended_amount, ctl.extended_amount)) extended_amount, -- V2.0
-- SUM (c.extended_amount) tax_amt -- V2.0
select SUM (ctl_tax.extended_amount)
from ra_customer_trx_lines ctl_tax,
ra_customer_trx_lines ctl_line
WHERE ctl_tax.link_to_cust_trx_line_id = ctl_line.customer_trx_line_id
AND ctl_tax.line_type = 'TAX'
AND ctl_tax.customer_trx_id = a.customer_trx_id
) tax_amt
FROM ra_customer_trx_partial_v a,
ra_customer_trx_lines ctl,
ra_customer_trx ct,
ra_cust_trx_types ctt,
hz_cust_acct_sites radd,
hz_party_sites party_site,
hz_locations loc,
hz_cust_site_uses site
-- ra_customer_trx_lines_v b
-- ar_tax_summ_v c
WHERE a.ctt_class = 'CM'
AND ctl.line_type = 'LINE'
&P_CUSTOMER_NUM_CLAUSE
&P_CUST_TRX_NUM_CLAUSE
-- AND b.customer_trx_id = a.customer_trx_id
AND ctl.customer_trx_id = a.customer_trx_id
AND ctl.customer_trx_id = ct.customer_trx_id
AND ct.cust_trx_type_id = ctt.cust_trx_type_id
AND ctt.TYPE NOT IN ('DEP', 'GUAR', 'BR')
AND ct.bill_to_site_use_id = site.site_use_id
AND site.cust_acct_site_id = radd.cust_acct_site_id
AND radd.party_site_id = party_site.party_site_id
AND loc.location_id = party_site.location_id
-- AND c.customer_trx_id(+) = a.customer_trx_id
GROUP BY a.cust_trx_type_id,
a.rac_bill_to_customer_name,
a.raa_bill_to_address1,
a.raa_bill_to_address2,
a.raa_bill_to_address3,
a.bill_to_site_use_id,
a.trx_date,
a.trx_number,
a.rac_bill_to_customer_num,
a.customer_trx_id,
ctl.description,
(SUBSTR (a.trx_number, 1, INSTR (a.trx_number, 'CN') - 1)
)) cn
WHERE cc.cust_trx_type_id = cn.cust_trx_type_id
AND cc.global_attribute19 = lc.location_code(+)
AND rc.trx_number = cn.trx_number_cmp
=============================================================Post relevant all details as explained in this instruction:
HOW TO: Post a SQL statement tuning request - template posting -
I am running the following query. This is being run for every row that is being loaded. I figured that this is taking the most time
select distinct h.PRNT_PROD_GRP_ID, h.CHILD_PROD_GRP_ID, pg.PROD_GRP_REPORTING_NM, pg.PROD_GRP_ID, pg.PROD_GRP_TYP_ID
from PROD_GRP_HCHY_OUTBD h, PROD_GRP pg
where pg.PROD_GRP_ID = h.PRNT_PROD_GRP_ID and
pg.PROD_GRP_ID in (select c.PROD_GRP_ID from prod_grp p, prod_grp c, PROD_GRP_HCHY_OUTBD hy, (select h.PRNT_PROD_GRP_ID, h.CHILD_PROD_GRP_ID, level LVLID, PROD_GRP_HCHY_OUTBD_ID from PROD_GRP_HCHY_OUTBD h where h.PROD_MKT_ID in (select pga.PROD_GRP_ID from APLCTN_SYS aps, APLCTN a, PROD_GRP_APLCTN pga where aps.APLCTN_SYS_Cd = 'ETMS' AND aps.APLCTN_SYS_ID = a.APLCTN_SYS_ID and a.APLCTN_ID = pga.APLCTN_ID) start with h.PRNT_PROD_GRP_ID in (select pga.PROD_GRP_ID from APLCTN_SYS aps, APLCTN a, PROD_GRP_APLCTN pga where aps.APLCTN_SYS_Cd = 'ETMS' AND aps.APLCTN_SYS_ID = a.APLCTN_SYS_ID and a.APLCTN_ID = pga.APLCTN_ID) connect by h.PRNT_PROD_GRP_ID = prior h.CHILD_PROD_GRP_ID) TREE where p.prod_grp_id = TREE.PRNT_PROD_GRP_ID and c.prod_grp_id = TREE.CHILD_PROD_GRP_ID and hy.PROD_GRP_HCHY_OUTBD_ID = TREE.PROD_GRP_HCHY_OUTBD_ID) connect by prior h.PRNT_PROD_GRP_ID = h.CHILD_PROD_GRP_ID start with h.CHILD_PROD_GRP_ID = 7650 order by pg.PROD_GRP_TYP_ID;hey nick,
this is the query that is run by Tibco (middleware).
we are trying to extract this data from the data store and load into a target database.
this query generates a tree of parent - child rows that belong to a particular criteria.
everytime the parent is fetched for a particular child, we need to make sure that the parent falls in that criteria and hence the many (in) queries.
hope this helps -
Hi,
Can you please help me tune a query?
I have a dimension table PRODUCT which is having product data with millions of rows and another table (fact table) with more than millions of rows and it is called PRODUCT TRANSACTION.
The PRODUCT TRANSACTION table has multiple rows for a given product with multiple issue dates. EX.
PRODUCT ISSUE DATE
A 10/28/2008
B 11/02/2008
C 05/28/2008
D 06/27/2008
E 07/28/2008
I am doing JOIN between PRODUCT (dimension table) and fact (PRODUCT TRANSACTION TABLE) and just want a minimum of ISSUE DATE (means only one record from fact table for each product in dimension table).
I have written query as
SELECT PRODUCT_ID FROM
PRODUCT_TRANSACTION AS PT
INNER JOIN PRODUCT P ON
P.PRODUCT_ID IN (SELECT PT.PRODUCT_ID FROM
SELECT PT1.PRODUCT_ID, MIN (PT1.ISSUE_DATE) AS MINC
FROM PRODUCT_TRANSACTION PT1
GROUP BY PT1.PRODUCT_ID) B)
This query takes forever. Is there a better way to accomplish this?
Please suggest.Try this:
SELECT
PRODUCT_ID,
min(issue_date) keep(dense_rank first order by issue_date)
FROM
PRODUCT_TRANSACTION
GROUP BY PRODUCT_IDRegards,
Sayan M. -
Hi Team,
Could u pls help me tune this query.I have generated explain plan.pls look into it
select distinct cust.id customer_id, addr.addrfirstname||' '||addr.addrsurname cust_name,sub.substypename cust_type,
addr.addrbigcity city, reverse(substr(reverse(ms.name),instr(reverse(ms.name),'-')+1)) cluster_name,
pro.provincename state,mst.name circle,addr.addrpostcode pincode,
decode(dev.serial_number,null,'NA',dev.serial_number) SC_SR_NO,hm.description model_desc1,
dev1.serial_number STB_SR_NO,
hm1.description model_desc2,
ds.description dev_status,
to_char(suh.real_date,'mm/dd/yyyy') activation_date,
to_char(fa.prepaid_end_date,'mm/dd/yyyy') prepaid_end_date,
to_char(fa.PREPAID_DISCONNECT_DATE,'mm/dd/yyyy') PREPAID_DISCONNECT_DATE,
to_char(ad.contract_start_date,'mm/dd/yyyy') contract_start_date,
ibs.full_name activated_by,
(select max(to_char(create_datetime,'mm/dd/yyyy')) from businessdata.suhistor where sheventnr in (133,1133) and entity_id=ad.id and shsubscribernr=ad.customer_id) disconnection_date,
ad.comm_product_id d2h_pack_id,
cp.description D2H_Package,
ads.id D2h_PackageStatusId,
ads.name D2h_PackageStatus,
suh.sheventnr event_no,se.name event_description
from businessdata.suhistor suh,businessdata.agreement_detail ad,businessdata.ibs_user ibs,
businessdata.system_event se,businessdata.address addr, businessdata.customer cust,
businessdata.province pro,businessdata.market_segment ms,businessdata.market_segment_type mst,
businessdata.software_per_ad spa,businessdata.device_agreement_detail dad, businessdata.device dev,
businessdata.device_status ds,businessdata.hardware_model hm,businessdata.substype sub,businessdata.device_pairing dp
,businessdata.device dev1,businessdata.hardware_model hm1,businessdata.commercial_product cp,businessdata.agreement_detail_status ads, businessdata.financial_account fa
where
trunc(suh.real_date) < trunc(sysdate) and
suh.sheventnr in (5229,108) and
suh.shsubscribernr =ad.customer_id and
suh.entity_id=ad.id and
suh.shusernr=ibs.id and
suh.sheventnr=se.id and
ad.customer_id=addr.addrcustnr and
addr.addrcustnr=cust.id and
addr.addrprovincenumber= pro.provincenumber and
addr.marketsegment_id=ms.id and
ms.market_segment_type_id=mst.id and
ad.id= spa.agreement_detail_id and
spa.device_per_ad_id =dad.id and
dad.technical_product_id in (1,null) and
dad.device_id= dev.id(+) and
dev.status_id= ds.id(+) and
dev.model_id=hm.id(+) and
dev.id=dp.paired_from_id(+) and
cust.type_id=sub.subscribertype and
dp.paired_to_id=dev1.id(+) and
dev1.model_id=hm1.id(+) and
ad.comm_product_id=cp.id and
cp.category_id=1 and
ad.status=ads.id and
ad.customer_id=fa.customer_id
order by cust.id
explain plan*****************
Plan hash value: 3107127273
| Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time |
| 0 | SELECT STATEMENT | | 1 | 426 | 14905 (1)| 00:02:59 |
| 1 | SORT AGGREGATE | | 1 | 23 | | |
|* 2 | TABLE ACCESS BY INDEX ROWID | SUHISTOR | 1 | 23 | 7 (15)| 00:00:01 |
| 3 | BITMAP CONVERSION TO ROWIDS | | | | | |
| 4 | BITMAP AND | | | | | |
| 5 | BITMAP CONVERSION FROM ROWIDS | | | | | |
|* 6 | INDEX RANGE SCAN | IDX_SUHISTOR_ENTITY_ID | 17 | | 3 (0)| 00:00:01 |
| 7 | BITMAP CONVERSION FROM ROWIDS | | | | | |
| 8 | SORT ORDER BY | | | | | |
|* 9 | INDEX RANGE SCAN | KEY002SUHISTOR | 17 | | 3 (0)| 00:00:01 |
| 10 | SORT UNIQUE | | 1 | 426 | 14904 (1)| 00:02:59 |
| 11 | NESTED LOOPS | | 1 | 426 | 14903 (1)| 00:02:59 |
| 12 | NESTED LOOPS | | 1 | 414 | 14902 (1)| 00:02:59 |
| 13 | NESTED LOOPS | | 1 | 384 | 14901 (1)| 00:02:59 |
| 14 | NESTED LOOPS | | 1 | 371 | 14900 (1)| 00:02:59 |
| 15 | NESTED LOOPS | | 1 | 363 | 14898 (1)| 00:02:59 |
| 16 | NESTED LOOPS | | 1 | 348 | 14897 (1)| 00:02:59 |
| 17 | NESTED LOOPS OUTER | | 1 | 304 | 14894 (1)| 00:02:59 |
| 18 | NESTED LOOPS OUTER | | 1 | 286 | 14893 (1)| 00:02:59 |
| 19 | NESTED LOOPS OUTER | | 1 | 260 | 14891 (1)| 00:02:59 |
| 20 | NESTED LOOPS | | 1 | 248 | 14889 (1)| 00:02:59 |
| 21 | NESTED LOOPS OUTER | | 1 | 228 | 14888 (1)| 00:02:59 |
| 22 | NESTED LOOPS OUTER | | 1 | 215 | 14887 (1)| 00:02:59 |
| 23 | NESTED LOOPS OUTER | | 1 | 197 | 14886 (1)| 00:02:59 |
| 24 | NESTED LOOPS | | 1 | 168 | 14884 (1)| 00:02:59 |
| 25 | NESTED LOOPS | | 1 | 154 | 14882 (1)| 00:02:59 |
| 26 | NESTED LOOPS | | 1 | 144 | 14879 (1)| 00:02:59 |
| 27 | NESTED LOOPS | | 1 | 124 | 14876 (1)| 00:02:59 |
| 28 | NESTED LOOPS | | 1 | 111 | 14875 (1)| 00:02:59 |
| 29 | NESTED LOOPS | | 3 | 264 | 14872 (1)| 00:02:59 |
| 30 | NESTED LOOPS | | 85 | 5270 | 14744 (1)| 00:02:57 |
| 31 | INLIST ITERATOR | | | | | |
| 32 | TABLE ACCESS BY INDEX ROWID| SYSTEM_EVENT | 2 | 70 | 3 (0)| 00:00:01 |
|* 33 | INDEX UNIQUE SCAN | PK_SYSTEM_EVENT | 2 | | 2 (0)| 00:00:01 |
|* 34 | TABLE ACCESS BY INDEX ROWID | SUHISTOR | 42 | 1134 | 11582 (1)| 00:02:19 |
|* 35 | INDEX RANGE SCAN | SUHISTOR_EVENTNR_CRDATE_IDX | 13157 | | 3159 (1)| 00:00:38 |
|* 36 | TABLE ACCESS BY INDEX ROWID | AGREEMENT_DETAIL | 1 | 26 | 2 (0)| 00:00:01 |
|* 37 | INDEX UNIQUE SCAN | PK_AGREEMENT_DETAIL | 1 | | 1 (0)| 00:00:01 |
|* 38 | TABLE ACCESS BY INDEX ROWID | COMMERCIAL_PRODUCT | 1 | 23 | 1 (0)| 00:00:01 |
|* 39 | INDEX UNIQUE SCAN | PK_COMMERCIAL_PRODUCT | 1 | | 0 (0)| 00:00:01 |
| 40 | TABLE ACCESS BY INDEX ROWID | AGREEMENT_DETAIL_STATUS | 1 | 13 | 1 (0)| 00:00:01 |
|* 41 | INDEX UNIQUE SCAN | PK_AGREEMENT_DETAIL_STATUS | 1 | | 0 (0)| 00:00:01 |
| 42 | TABLE ACCESS BY INDEX ROWID | FINANCIAL_ACCOUNT | 1 | 20 | 3 (0)| 00:00:01 |
|* 43 | INDEX RANGE SCAN | FINACCT_CUSTOMERID_IDX | 1 | | 2 (0)| 00:00:01 |
| 44 | TABLE ACCESS BY INDEX ROWID | SOFTWARE_PER_AD | 1 | 10 | 3 (0)| 00:00:01 |
|* 45 | INDEX RANGE SCAN | SPAD_AGREEMENTDETAILID_IDX | 1 | | 2 (0)| 00:00:01 |
|* 46 | TABLE ACCESS BY INDEX ROWID | DEVICE_AGREEMENT_DETAIL | 1 | 14 | 2 (0)| 00:00:01 |
|* 47 | INDEX UNIQUE SCAN | PK_DEVICE_AGREEMENT_DETAIL | 1 | | 1 (0)| 00:00:01 |
| 48 | TABLE ACCESS BY INDEX ROWID | DEVICE | 1 | 29 | 2 (0)| 00:00:01 |
|* 49 | INDEX UNIQUE SCAN | PK_DEVICE | 1 | | 1 (0)| 00:00:01 |
| 50 | TABLE ACCESS BY INDEX ROWID | HARDWARE_MODEL | 1 | 18 | 1 (0)| 00:00:01 |
|* 51 | INDEX UNIQUE SCAN | PK_HARDWARE_MODEL | 1 | | 0 (0)| 00:00:01 |
| 52 | TABLE ACCESS BY INDEX ROWID | DEVICE_STATUS | 1 | 13 | 1 (0)| 00:00:01 |
|* 53 | INDEX UNIQUE SCAN | PK_DEVICE_STATUS | 1 | | 0 (0)| 00:00:01 |
| 54 | TABLE ACCESS BY INDEX ROWID | IBS_USER | 1 | 20 | 1 (0)| 00:00:01 |
|* 55 | INDEX UNIQUE SCAN | KEY001USRNAMES | 1 | | 0 (0)| 00:00:01 |
|* 56 | INDEX RANGE SCAN | KEY012DEVICE_PAIRING | 1 | 12 | 2 (0)| 00:00:01 |
| 57 | TABLE ACCESS BY INDEX ROWID | DEVICE | 1 | 26 | 2 (0)| 00:00:01 |
|* 58 | INDEX UNIQUE SCAN | PK_DEVICE | 1 | | 1 (0)| 00:00:01 |
| 59 | TABLE ACCESS BY INDEX ROWID | HARDWARE_MODEL | 1 | 18 | 1 (0)| 00:00:01 |
|* 60 | INDEX UNIQUE SCAN | PK_HARDWARE_MODEL | 1 | | 0 (0)| 00:00:01 |
| 61 | TABLE ACCESS BY INDEX ROWID | ADDRESS | 1 | 44 | 3 (0)| 00:00:01 |
|* 62 | INDEX RANGE SCAN | KEY002ADDRESS | 1 | | 2 (0)| 00:00:01 |
| 63 | TABLE ACCESS BY INDEX ROWID | PROVINCE | 1 | 15 | 1 (0)| 00:00:01 |
|* 64 | INDEX UNIQUE SCAN | KEY001PROVINCE | 1 | | 0 (0)| 00:00:01 |
| 65 | TABLE ACCESS BY INDEX ROWID | CUSTOMER | 1 | 8 | 2 (0)| 00:00:01 |
|* 66 | INDEX UNIQUE SCAN | PK_CUCUSTNR1 | 1 | | 1 (0)| 00:00:01 |
| 67 | TABLE ACCESS BY INDEX ROWID | SUBSTYPE | 1 | 13 | 1 (0)| 00:00:01 |
|* 68 | INDEX UNIQUE SCAN | KEY001SUBSTYPE | 1 | | 0 (0)| 00:00:01 |
| 69 | TABLE ACCESS BY INDEX ROWID | MARKET_SEGMENT | 1 | 30 | 1 (0)| 00:00:01 |
|* 70 | INDEX UNIQUE SCAN | PK_MARKET_SEGMENT | 1 | | 0 (0)| 00:00:01 |
| 71 | TABLE ACCESS BY INDEX ROWID | MARKET_SEGMENT_TYPE | 1 | 12 | 1 (0)| 00:00:01 |
|* 72 | INDEX UNIQUE SCAN | PK_MARKET_SEGMENT_TYPE | 1 | | 0 (0)| 00:00:01 |
Predicate Information (identified by operation id):
2 - filter("SHEVENTNR"=133 OR "SHEVENTNR"=1133)
6 - access("ENTITY_ID"=:B1)
9 - access("SHSUBSCRIBERNR"=:B1)
filter("SHSUBSCRIBERNR"=:B1)
33 - access("SE"."ID"=108 OR "SE"."ID"=5229)
34 - filter("SUH"."SHSUBSCRIBERNR" IS NOT NULL AND TRUNC(INTERNAL_FUNCTION("SUH"."REAL_DATE"))<TRUNC(SYSDATE@!))
35 - access("SUH"."SHEVENTNR"="SE"."ID")
filter("SUH"."SHEVENTNR"=108 OR "SUH"."SHEVENTNR"=5229)
36 - filter("SUH"."SHSUBSCRIBERNR"="AD"."CUSTOMER_ID")
37 - access("SUH"."ENTITY_ID"="AD"."ID")
38 - filter("CP"."CATEGORY_ID"=1)
39 - access("AD"."COMM_PRODUCT_ID"="CP"."ID")
41 - access("AD"."STATUS"="ADS"."ID")
43 - access("AD"."CUSTOMER_ID"="FA"."CUSTOMER_ID")
45 - access("AD"."ID"="SPA"."AGREEMENT_DETAIL_ID")
46 - filter("DAD"."TECHNICAL_PRODUCT_ID"=1 OR "DAD"."TECHNICAL_PRODUCT_ID"=TO_NUMBER(NULL))
47 - access("SPA"."DEVICE_PER_AD_ID"="DAD"."ID")
49 - access("DAD"."DEVICE_ID"="DEV"."ID"(+))
51 - access("DEV"."MODEL_ID"="HM"."ID"(+))
53 - access("DEV"."STATUS_ID"="DS"."ID"(+))
55 - access("SUH"."SHUSERNR"="IBS"."ID")
56 - access("DEV"."ID"="DP"."PAIRED_FROM_ID"(+))
58 - access("DP"."PAIRED_TO_ID"="DEV1"."ID"(+))
60 - access("DEV1"."MODEL_ID"="HM1"."ID"(+))
62 - access("AD"."CUSTOMER_ID"="ADDR"."ADDRCUSTNR")
64 - access("ADDR"."ADDRPROVINCENUMBER"="PRO"."PROVINCENUMBER")
66 - access("ADDR"."ADDRCUSTNR"="CUST"."ID")
68 - access("CUST"."TYPE_ID"="SUB"."SUBSCRIBERTYPE")
70 - access("ADDR"."MARKETSEGMENT_ID"="MS"."ID")
72 - access("MS"."MARKET_SEGMENT_TYPE_ID"="MST"."ID")Potential issues I've seen in your statement:
reverse(substr(reverse(ms.name),instr(reverse(ms.name),'-')+1)) cluster_name"{code}
This is the same as:
{code}SUBSTR(ms.name, 1, INSTR(ms.name, '-', -1) - 1){code}
{code}select max(to_char(create_datetime,'mm/dd/yyyy')){code}
This will ensure that 2nd December 2008 is counted as being later than 1st December 2009 - is that absolutely correct? Did you not mean this instead?:
{code}SELECT MAX(TRUNC(create_datetime)){code}
{code}
AND dad.device_id = dev.id(+)
AND dev.status_id = ds.id(+)
AND dev.model_id = hm.id(+)
AND dev.id = dp.paired_from_id(+)
AND dp.paired_to_id = dev1.id(+)
{code}
Those outer joins are useless! When you say "outer join tableB to tableA on the join cols and then filter the rows where tableB.some_col = some_value", what you're really saying is "inner join tableB to tableA on the join cols and tableB.some_col = some_value".
If you're wanting to do full outer joins use ANSI join syntax *or* do the outer joins first in a sub-query and then join that to the rest of the tables. -
Hi
I dont know anything about tuning
can anybody help to tune this query
SQL> set autotrace traceonly explain
SQL> select count(*) from ibs_x_t_receipts c
2 where exists
3 (Select 1 from ibs_s_i_doc_receipt a,ibs_x_t_bill b
4 where A.app_fr_doc_no = c.receipt_no
5 and a.app_to_doc_no = b.doc_no
6 and a.app_to_tr_type = 'TRN001'
7 and A.app_fr_tr_type = 'TRN002'
8 and b.bill_month <= '31-dec-2008'
9 and b.balance_ser_amt = 0
10 and b.balance_tax_amt = 0)
11 /
Execution Plan
0 SELECT STATEMENT Optimizer=ALL_ROWS (Cost=212880 Card=1 Byte
s=21)
1 0 SORT (AGGREGATE)
2 1 NESTED LOOPS (Cost=212880 Card=1 Bytes=21)
3 2 VIEW OF 'VW_SQ_1' (VIEW) (Cost=212878 Card=1 Bytes=14)
4 3 HASH (UNIQUE)
5 4 NESTED LOOPS
6 5 NESTED LOOPS (Cost=212878 Card=1 Bytes=66)
7 6 VIEW OF 'index$_join$_002' (VIEW) (Cost=30021
Card=91387 Bytes=3564093)
8 7 HASH JOIN
9 8 INDEX (RANGE SCAN) OF 'SIDOC_INDX1' (INDEX
) (Cost=171215 Card=91387 Bytes=3564093)
10 8 INDEX (RANGE SCAN) OF 'SIDOC_INDX2' (INDEX
) (Cost=366130 Card=91387 Bytes=3564093)
11 6 INDEX (UNIQUE SCAN) OF 'ITL_PK2' (INDEX (UNIQU
E)) (Cost=1 Card=1)
12 5 TABLE ACCESS (BY INDEX ROWID) OF 'IBS_X_T_BILL'
(TABLE) (Cost=2 Card=1 Bytes=27)
13 2 INDEX (UNIQUE SCAN) OF 'RECEIPTS_PK2' (INDEX (UNIQUE))
(Cost=1 Card=1 Bytes=7)it is running like anything, i didn't get the result.
Please help me
kanish--untested
SELECT COUNT (*)
FROM ibs_x_t_receipts c
WHERE EXISTS (
SELECT 1
FROM ibs_s_i_doc_receipt a
WHERE a.app_fr_doc_no = c.receipt_no
AND a.app_to_tr_type = 'TRN001'
AND a.app_fr_tr_type = 'TRN002'
AND EXISTS (
SELECT 1
FROM ibs_x_t_bill b
WHERE a.app_to_doc_no = b.doc_no
AND b.bill_month <= '31-dec-2008'
AND b.balance_ser_amt = 0
AND b.balance_tax_amt = 0))regards,
friend
Edited by: most wanted!!!! on Apr 17, 2012 3:51 AM -
Nested query in BPEL JDeveloper
Hi,
Can anyone help me with nested query writing in BPEL (JDeveloper)
the query is :
SELECT LENGTH, WIDTH, HEIGHT, WEIGHT,
LENGTH*WIDTH* HEIGHT AS ITEM_CUBE
FROM ITEM_SUPP_COUNTRY_DIM
WHERE ITEM= <Level1 item>
AND DIM_OBJECT= (SELECT CASE_NAME FROM ITEM_SUPPLIER WHERE ITEM=<Item> AND PRIMARY_SUPP_IND = ‘Y')
Please help me with the steps.
Many thanksHi,
For the following query:
SELECT S.STORE, S.STORE_NAME, A.ADD_1, A.ADD_2, A.ADD_3, A.CITY,A.STATE, A.POST, A.COUNTRY_ID, A.CONTACT_PHONE, A.CONTACT_NAME,S.STORE_OPEN_DATE, S.STORE_CLOSE_DATE, S.REMODEL_DATE, S.TRANSFER_ZONE,S.DISTRICT,S.STORE_TYPE
FROM STORE S, ADDR A
WHERE S.STORE= #store
AND to_char(S.STORE) = #keyValue1
AND A.MODULE = #module
AND A.ADDR_TYPE = #type
AND A.PRIMARY_ADDR_IND=#addrType
the DB adapter shows this xml:
<?xml version = '1.0' encoding = 'UTF-8'?>
<xs:schema targetNamespace="http://xmlns.oracle.com/pcbpel/adapter/db/WMSStoreDataLookUp" xmlns="http://xmlns.oracle.com/pcbpel/adapter/db/WMSStoreDataLookUp" elementFormDefault="qualified" attributeFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="WMSStoreDataLookUpInput" type="WMSStoreDataLookUpInput"/>
<xs:complexType name="WMSStoreDataLookUpInput">
<xs:sequence>
<xs:element name="store" type="/><br /><br /> <xs:element name="keyValue1" type="/>
<xs:element name="module" type="/><br /><br /> <xs:element name="type" type="/>
<xs:element name="addrType" type="/><br /><br /> </xs:sequence><br /><br /></xs:complexType><br /><br /><xs:element name="WMSStoreDataLookUpOutputCollection" type="WMSStoreDataLookUpOutputCollection" nillable="true"/><br /><br /><xs:complexType name="WMSStoreDataLookUpOutputCollection"><br /><br /><xs:sequence><br /><br /><xs:element name="WMSStoreDataLookUpOutput" type="WMSStoreDataLookUpOutput" minOccurs="0" maxOccurs="unbounded"/><br /><br /></xs:sequence><br /><br /></xs:complexType><br /><br /><xs:complexType name="WMSStoreDataLookUpOutput"><br /><br /><xs:sequence><br /><br /><xs:element name="S_STORE" type="xs:decimal" nillable="true"/><br /><br /><xs:element name="S_STORE_NAME" type="xs:string" nillable="true"/><br /><br /><xs:element name="A_ADD_1" type="xs:string" nillable="true"/><br /><br /><xs:element name="A_ADD_2" type="xs:string" nillable="true"/><br /><br /><xs:element name="A_ADD_3" type="xs:string" nillable="true"/><br /><br /><xs:element name="A_CITY" type="xs:string" nillable="true"/><br /><br /><xs:element name="A_STATE" type="xs:string" nillable="true"/><br /><br /><xs:element name="A_POST" type="xs:string" nillable="true"/><br /><br /><xs:element name="A_COUNTRY_ID" type="xs:string" nillable="true"/><br /><br /><xs:element name="A_CONTACT_PHONE" type="xs:string" nillable="true"/><br /><br /><xs:element name="A_CONTACT_NAME" type="xs:string" nillable="true"/><br /><br /><xs:element name="S_STORE_OPEN_DATE" type="xs:dateTime" nillable="true"/><br /><br /><xs:element name="S_STORE_CLOSE_DATE" type="xs:dateTime" nillable="true"/><br /><br /><xs:element name="S_REMODEL_DATE" type="xs:dateTime" nillable="true"/><br /><br /><xs:element name="S_TRANSFER_ZONE" type="xs:decimal" nillable="true"/><br /><br /><xs:element name="S_DISTRICT" type="xs:decimal" nillable="true"/><br /><br /><xs:element name="S" type="xs:string" nillable="true"/><br /><br /><xs:element name="A_PRIMARY_ADDR_IND__addrType" type="xs:string" nillable="true"/><br /><br /></xs:sequence><br /><br /></xs:complexType><br /><br /></xs:schema><br /><br /><br /><br />Please, look at the last few lines of XML and let me know if this is correct.. -
Help needed to tune the Query:Statistics added
Can someone DBA please help me to tune this query:
SELECT DISTINCT K.ATTRIBUTE_VALUE AGENCY_ID,B.PROFILE_NM ,NVL(G.OFFICE_DESC,'--') OFFICE_DESC,f.OFFICE_ID,B.PROFILE_ID,'%' ROLE,'%' LAYOUT,
CASE
WHEN 'flagB' = '%' THEN
NVL(J.ISS_GRP_DESC,'BILLING')
WHEN 'flagO' = '%' THEN
NVL(J.ISS_GRP_DESC,'ORDERING')
WHEN 'flag' = '%' THEN
NVL(J.ISS_GRP_DESC,'BILLING/ORDERING')
ELSE
NVL(J.ISS_GRP_DESC,' ')
END ISS_GRP_DESC,
DECODE(NVL(H.USERID,' ') ,' ','--','<a sbcuid_in=' || H.USERID || ' target=NEW >'||H.FIRSTNAME || ' ' || H.LASTNAME || '( ' || H.USERID || ' )</a>' ) USER_NAME
FROM
PROFILE_PORTAL B ,
TBL_BDA_AGENCY_RESP_REP C ,
TBL_BDA_AGENCY_OFFICE F,
TBL_BDA_OFFICE G,
USERS_PORTAL H,
TBL_BDA_USR_ISS_GRP I ,
TBL_BDA_ISS_GROUP J,
ATTRIBUTE_VALUES_PORTAL K,
PROFILE_TYPE_PORTAL L
WHERE
B.PROFILE_ID = F.AGENCY_ID (+)
AND B.PROFILE_ID = C.AGENCY_ID (+)
AND G.OFFICE_ID (+)= F.OFFICE_ID
AND H.USERID (+)= C.RESP_USR_ID
AND C.ISS_GRP_ID = I.ISS_GRP_ID (+)
AND I.ISS_GRP_ID = J.ISS_GRP_ID(+)
AND 'PROFILE.'||B.PROFILE_ID = K.ENTITY_ID(+)
AND K.ATTRIBUTE_VALUE IS NOT NULL
AND L.PROFILE_TYPE_ID = B.PROFILE_TYPE_ID
AND L.APPLICATION_CD='BDA'
AND NOT EXISTS (SELECT agency_id
FROM TBL_BDA_AGENCY_RESP_REP t
WHERE t.ISS_GRP_ID IN ('%')
AND t.AGENCY_ID = C.AGENCY_ID)
AND K.ATTRIBUTE_VALUE LIKE '%'
AND UPPER(B.PROFILE_NM) LIKE UPPER('%')
AND (to_char(NVL(B.PROFILE_ID,0)) LIKE '%' OR NVL(B.PROFILE_ID,0) IN ('a'))
AND NVL(G.OFFICE_ID,0) IN ('%')
AND (to_char(NVL(C.RESP_USR_ID,'0')) LIKE '%' OR NVL(C.RESP_USR_ID,'0') IN ('k'))
ORDER BY PROFILE_NM
The number of rows in these tables are as follows:
PROFILE_PORTAL -- 2392
TBL_BDA_AGENCY_RESP_REP 3508
TBL_BDA_AGENCY_OFFICE 2151
TBL_BDA_OFFICE 3
USERS_PORTAL 270500
TBL_BDA_USR_ISS_GRP 234
TBL_BDA_ISS_GROUP 2
ATTRIBUTE_VALUES_PORTAL 2790
PROFILE_TYPE_PORTAL 3
The Explain pal nhas given this o/p to me:
SQL> select * from table(dbms_xplan.display) dual;
PLAN_TABLE_OUTPUT
| Id | Operation | Name | Rows | Bytes |TempSpc| Cost |
| 0 | SELECT STATEMENT | | 807 | 102K| | 2533 |
| 1 | SORT UNIQUE | | 807 | 102K| 232K| 82 |
|* 2 | FILTER | | | | | |
|* 3 | HASH JOIN OUTER | | 807 | 102K| | 52 |
|* 4 | HASH JOIN OUTER | | 807 | 95226 | | 40 |
|* 5 | TABLE ACCESS BY INDEX ROWID | ATTRIBUTE_VALUES | 1 | 23 | | 2 |
| 6 | NESTED LOOPS | | 7 | 805 | | 37 |
| 7 | NESTED LOOPS OUTER | | 6 | 552 | | 25 |
|* 8 | FILTER | | | | | |
| 9 | NESTED LOOPS OUTER | | | | | |
|* 10 | FILTER | | | | | |
| 11 | NESTED LOOPS OUTER | | | | | |
| 12 | NESTED LOOPS OUTER | | 3 | 141 | | 10 |
|* 13 | HASH JOIN | | 3 | 120 | | 7 |
|* 14 | TABLE ACCESS FULL | PROFILE | 6 | 198 | | 4 |
|* 15 | TABLE ACCESS FULL | PROFILE_TYPE | 1 | 7 | | 2 |
|* 16 | INDEX RANGE SCAN | SYS_C0019777 | 1 | 7 | | 1 |
| 17 | TABLE ACCESS BY INDEX ROWID| TBL_BDA_OFFICE | 1 | 10 | | 1 |
|* 18 | INDEX UNIQUE SCAN | SYS_C0019800 | 1 | | | |
| 19 | TABLE ACCESS BY INDEX ROWID | TBL_BDA_AGENCY_RESP_REP | 2 | 26 | | 2 |
|* 20 | INDEX RANGE SCAN | IDX_AGECYRESP_AGNCYID | 2 | | | 1 |
| 21 | TABLE ACCESS BY INDEX ROWID | USER_ | 1 | 22 | | 1 |
|* 22 | INDEX UNIQUE SCAN | USER_PK | 1 | | | |
|* 23 | INDEX RANGE SCAN | IDX_ATTVAL_ENTATTID | 1 | | | 1 |
| 24 | TABLE ACCESS FULL | TBL_BDA_USR_ISS_GRP | 234 | 702 | | 2 |
| 25 | TABLE ACCESS FULL | TBL_BDA_ISS_GROUP | 2 | 24 | | 2 |
|* 26 | TABLE ACCESS BY INDEX ROWID | TBL_BDA_AGENCY_RESP_REP | 1 | 7 | | 3 |
|* 27 | INDEX RANGE SCAN | IDX_AGECYRESP_AGNCYID | 2 | | | 1 |
Predicate Information (identified by operation id):
2 - filter( NOT EXISTS (SELECT /*+ */ 0 FROM "TBL_BDA_AGENCY_RESP_REP" "T" WHERE "T"."AGENCY_ID"=:B1
AND "T"."ISS_GRP_ID"=TO_NUMBER('%')))
3 - access("I"."ISS_GRP_ID"="J"."ISS_GRP_ID"(+))
4 - access("SYS_ALIAS_1"."ISS_GRP_ID"="I"."ISS_GRP_ID"(+))
5 - filter("K"."ATTRIBUTE_VALUE" IS NOT NULL AND "K"."ATTRIBUTE_VALUE" LIKE '%')
8 - filter(NVL("SYS_ALIAS_1"."RESP_USR_ID",'0') LIKE '%' OR NVL("SYS_ALIAS_1"."RESP_USR_ID",'0')='k')
10 - filter(NVL("G"."OFFICE_ID",0)=TO_NUMBER('%'))
13 - access("L"."PROFILE_TYPE_ID"="B"."PROFILE_TYPE_ID")
14 - filter(UPPER("B"."PROFILE_NM") LIKE '%' AND (TO_CHAR(NVL("B"."PROFILE_ID",0)) LIKE '%' OR
NVL("B"."PROFILE_ID",0)=TO_NUMBER('a')))
15 - filter("L"."APPLICATION_CD"='BDA')
16 - access("B"."PROFILE_ID"="F"."AGENCY_ID"(+))
18 - access("G"."OFFICE_ID"(+)="F"."OFFICE_ID")
20 - access("B"."PROFILE_ID"="SYS_ALIAS_1"."AGENCY_ID"(+))
22 - access("H"."USERID"(+)="SYS_ALIAS_1"."RESP_USR_ID")
23 - access("K"."ENTITY_ID"='PROFILE.'||TO_CHAR("B"."PROFILE_ID"))
26 - filter("T"."ISS_GRP_ID"=TO_NUMBER('%'))
27 - access("T"."AGENCY_ID"=:B1)
Note: cpu costing is off
57 rows selected.
Elapsed: 00:00:01.08
Please help me.
Aashish S.Hello Eric,
Here is the code:
SELECT DISTINCT
K.ATTRIBUTE_VALUE AGENCY_ID,
B.PROFILE_NM ,
NVL(G.OFFICE_DESC,'--') OFFICE_DESC,
f.OFFICE_ID,
B.PROFILE_ID,
'%' ROLE,
'%' LAYOUT,
case
WHEN 'flagB' = '%' THEN
NVL(J.ISS_GRP_DESC,'BILLING')
WHEN 'flagO' = '%' THEN
NVL(J.ISS_GRP_DESC,'ORDERING')
WHEN 'flag' = '%' THEN
NVL(J.ISS_GRP_DESC,'BILLING/ORDERING')
else
NVL(J.ISS_GRP_DESC,' ')
END ISS_GRP_DESC,
DECODE(NVL(H.USERID,' ') ,' ','--','<a sbcuid_in=' || H.USERID || ' target=NEW >'||H.FIRSTNAME || ' ' || H.LASTNAME ||
'( ' || H.USERID || ' )</a>' ) USER_NAME
from
PROFILE_PORTAL B ,
TBL_BDA_AGENCY_RESP_REP C ,
TBL_BDA_AGENCY_OFFICE F,
TBL_BDA_OFFICE G,
USERS_PORTAL H,
TBL_BDA_USR_ISS_GRP I ,
TBL_BDA_ISS_GROUP J,
ATTRIBUTE_VALUES_PORTAL K,
PROFILE_TYPE_PORTAL L
WHERE
B.PROFILE_ID = F.AGENCY_ID (+)
AND B.PROFILE_ID = C.AGENCY_ID (+)
AND G.OFFICE_ID (+)= F.OFFICE_ID
AND H.USERID (+)= C.RESP_USR_ID
AND C.ISS_GRP_ID = I.ISS_GRP_ID (+)
AND I.ISS_GRP_ID = J.ISS_GRP_ID(+)
AND 'PROFILE.'||B.PROFILE_ID = K.ENTITY_ID(+)
AND K.ATTRIBUTE_VALUE IS NOT NULL
AND L.PROFILE_TYPE_ID = B.PROFILE_TYPE_ID
AND L.APPLICATION_CD='BDA'
AND NOT EXISTS
(SELECT agency_id
FROM TBL_BDA_AGENCY_RESP_REP t
WHERE t.ISS_GRP_ID IN (1)
AND t.AGENCY_ID = C.AGENCY_ID)
AND K.ATTRIBUTE_VALUE LIKE '%'
AND UPPER(B.PROFILE_NM) LIKE UPPER('%')
AND (to_char(NVL(B.PROFILE_ID,0))
LIKE '%'
OR NVL(B.PROFILE_ID,0) IN (1))
AND NVL(G.OFFICE_ID,0) IN (1)
AND (to_char(NVL(C.RESP_USR_ID,'0'))
LIKE '%'
OR NVL(C.RESP_USR_ID,'0') IN ('%'))
ORDER BY PROFILE_NM
This is the Query and the query takes some mins. to run in prod environment.
From the Query plan ,I am not able to get any idea for optimization.
Now,Can you tell me which steps I need to follow to run it faster and which all modifications should be made?
Thanks.
Aashish S. -
Sql Query Tuning. Please help me to tune this query
Hi All ,
I have this problematic Sql . It is taking huge time to execute. It contains a view CIDV, which i think is the bottleneck.
I have pasted the query below. I will be pasting TKPROF and explain plan for the same. Please advice me to tune this query.
SELECT GCC.SEGMENT1 || '.' || GCC.SEGMENT2 || '.' || GCC.SEGMENT3 || '.' ||
GCC.SEGMENT4 || '.' || GCC.SEGMENT5 || '.' || GCC.SEGMENT6 || '.' ||
GCC.SEGMENT7 || '.' || GCC.SEGMENT8 || '.' || GCC.SEGMENT9 OFFSET_ACCOUNT,
OOD.ORGANIZATION_CODE,
CIDV.SUBINVENTORY_CODE OFFSET_SUBINV,
MIL.SEGMENT1 || '.' || MIL.SEGMENT2 || '.' || MIL.SEGMENT3 || '.' ||
MIL.SEGMENT4 || '.' || MIL.SEGMENT5 OFFSET_LOCATOR,
CIDV.LAST_UPDATE_LOGIN
FROM APPS.CST_INV_DISTRIBUTION_V CIDV,
APPS.GL_CODE_COMBINATIONS GCC,
APPS.MTL_ITEM_LOCATIONS MIL,
APPS.ORG_ORGANIZATION_DEFINITIONS OOD
WHERE CIDV.TRANSACTION_ID = :B2
AND CIDV.PRIMARY_QUANTITY = (-1) * :B1
AND CIDV.REFERENCE_ACCOUNT = GCC.CODE_COMBINATION_ID
AND OOD.ORGANIZATION_ID = CIDV.ORGANIZATION_ID
AND MIL.INVENTORY_LOCATION_ID = CIDV.LOCATOR_ID
AND GCC.ACCOUNT_TYPE = 'A'****************
TKPROF
call count cpu elapsed disk query current rows
Parse 1 0.00 0.00 0 0 0 0
Execute 68337 10.32 10.32 0 0 0 0
Fetch 68337 229.75 936.36 58819 6743323 1121 68232
total 136675 240.07 946.69 58819 6743323 1121 68232
Misses in library cache during parse: 1
Misses in library cache during execute: 1
Optimizer mode: ALL_ROWS
Parsing user id: 203 (recursive depth: 1)
Number of plan statistics captured: 1
Rows (1st) Rows (avg) Rows (max) Row Source Operation
1 1 1 MERGE JOIN CARTESIAN (cr=102 pr=15 pw=0 time=193608 us cost=56 size=219 card=1)
1 1 1 NESTED LOOPS (cr=100 pr=15 pw=0 time=193483 us cost=53 size=219 card=1)
1 1 1 NESTED LOOPS (cr=99 pr=15 pw=0 time=193407 us cost=52 size=215 card=1)
1 1 1 NESTED LOOPS (cr=96 pr=15 pw=0 time=193378 us cost=51 size=190 card=1)
1 1 1 NESTED LOOPS (cr=93 pr=15 pw=0 time=193284 us cost=49 size=162 card=1)
1 1 1 NESTED LOOPS (cr=89 pr=14 pw=0 time=185515 us cost=46 size=138 card=1)
1 1 1 NESTED LOOPS (cr=85 pr=12 pw=0 time=157975 us cost=44 size=81 card=1)
1 1 1 NESTED LOOPS (cr=83 pr=12 pw=0 time=157925 us cost=43 size=73 card=1)
1 1 1 NESTED LOOPS (cr=81 pr=12 pw=0 time=157641 us cost=43 size=132 card=2)
1 1 1 VIEW CST_INV_DISTRIBUTION_V (cr=78 pr=12 pw=0 time=156386 us cost=41 size=118 card=2)
1 1 1 UNION-ALL (cr=78 pr=12 pw=0 time=156378 us)
0 0 0 NESTED LOOPS OUTER (cr=44 pr=9 pw=0 time=124997 us cost=20 size=291 card=1)
0 0 0 NESTED LOOPS (cr=44 pr=9 pw=0 time=124993 us cost=18 size=255 card=1)
0 0 0 NESTED LOOPS (cr=44 pr=9 pw=0 time=124990 us cost=18 size=251 card=1)
33 33 33 MERGE JOIN CARTESIAN (cr=25 pr=6 pw=0 time=98544 us cost=14 size=192 card=1)
1 1 1 NESTED LOOPS OUTER (cr=22 pr=5 pw=0 time=85754 us cost=12 size=156 card=1)
1 1 1 NESTED LOOPS (cr=19 pr=4 pw=0 time=79830 us cost=10 size=120 card=1)
1 1 1 NESTED LOOPS OUTER (cr=17 pr=4 pw=0 time=79813 us cost=9 size=113 card=1)
1 1 1 NESTED LOOPS (cr=15 pr=4 pw=0 time=79752 us cost=8 size=106 card=1)
1 1 1 NESTED LOOPS (cr=11 pr=2 pw=0 time=43120 us cost=6 size=93 card=1)
1 1 1 NESTED LOOPS (cr=7 pr=2 pw=0 time=43087 us cost=4 size=83 card=1)
1 1 1 NESTED LOOPS (cr=6 pr=2 pw=0 time=43072 us cost=4 size=80 card=1)
1 1 1 TABLE ACCESS BY INDEX ROWID MTL_MATERIAL_TRANSACTIONS (cr=5 pr=2 pw=0 time=43042 us cost=4 size=76 card=1)
1 1 1 INDEX UNIQUE SCAN MTL_MATERIAL_TRANSACTIONS_U1 (cr=4 pr=2 pw=0 time=43011 us cost=3 size=0 card=1)(object id 12484094)
1 1 1 INDEX UNIQUE SCAN MTL_TRANSACTION_TYPES_U1 (cr=1 pr=0 pw=0 time=20 us cost=0 size=764 card=191)(object id 9983)
1 1 1 INDEX UNIQUE SCAN MTL_TXN_SOURCE_TYPES_U1 (cr=1 pr=0 pw=0 time=7 us cost=0 size=54 card=18)(object id 9987)
1 1 1 INDEX UNIQUE SCAN MTL_SYSTEM_ITEMS_B_U1 (cr=4 pr=0 pw=0 time=27 us cost=2 size=736324450 card=73632445)(object id 12484155)
1 1 1 INDEX UNIQUE SCAN MTL_SYSTEM_ITEMS_TL_U1 (cr=4 pr=2 pw=0 time=36626 us cost=2 size=957481070 card=73652390)(object id 12484137)
1 1 1 TABLE ACCESS BY INDEX ROWID MTL_PARAMETERS (cr=2 pr=0 pw=0 time=42 us cost=1 size=3290 card=470)
1 1 1 INDEX UNIQUE SCAN MTL_PARAMETERS_U1 (cr=1 pr=0 pw=0 time=28 us cost=0 size=0 card=1)(object id 9847)
1 1 1 TABLE ACCESS BY INDEX ROWID MTL_PARAMETERS (cr=2 pr=0 pw=0 time=12 us cost=1 size=3290 card=470)
1 1 1 INDEX UNIQUE SCAN MTL_PARAMETERS_U1 (cr=1 pr=0 pw=0 time=7 us cost=0 size=0 card=1)(object id 9847)
0 0 0 INDEX RANGE SCAN FND_LOOKUP_VALUES_U1 (cr=3 pr=1 pw=0 time=5915 us cost=2 size=36 card=1)(object id 705891)
33 33 33 BUFFER SORT (cr=3 pr=1 pw=0 time=12713 us cost=12 size=36 card=1)
33 33 33 INDEX RANGE SCAN FND_LOOKUP_VALUES_U1 (cr=3 pr=1 pw=0 time=12582 us cost=2 size=36 card=1)(object id 705891)
0 0 0 TABLE ACCESS BY INDEX ROWID MTL_TRANSACTION_ACCOUNTS (cr=19 pr=3 pw=0 time=26591 us cost=4 size=59 card=1)
66 66 66 INDEX RANGE SCAN MTL_TRANSACTION_ACCOUNTS_N1 (cr=18 pr=2 pw=0 time=13607 us cost=3 size=0 card=3)(object id 12484127)
0 0 0 INDEX UNIQUE SCAN MTL_PARAMETERS_U1 (cr=0 pr=0 pw=0 time=0 us cost=0 size=4 card=1)(object id 9847)
0 0 0 INDEX RANGE SCAN FND_LOOKUP_VALUES_U1 (cr=0 pr=0 pw=0 time=0 us cost=2 size=36 card=1)(object id 705891)
1 1 1 NESTED LOOPS (cr=34 pr=3 pw=0 time=31269 us cost=21 size=288 card=1)
1 1 1 NESTED LOOPS (cr=30 pr=3 pw=0 time=31161 us cost=19 size=275 card=1)
1 1 1 NESTED LOOPS (cr=26 pr=3 pw=0 time=31105 us cost=17 size=265 card=1)
1 1 1 NESTED LOOPS (cr=25 pr=3 pw=0 time=31082 us cost=17 size=261 card=1)
1 1 1 NESTED LOOPS OUTER (cr=23 pr=3 pw=0 time=31027 us cost=16 size=254 card=1)
1 1 1 NESTED LOOPS (cr=21 pr=3 pw=0 time=30980 us cost=15 size=247 card=1)
1 1 1 NESTED LOOPS (cr=20 pr=3 pw=0 time=30957 us cost=15 size=243 card=1)
1 1 1 NESTED LOOPS OUTER (cr=19 pr=3 pw=0 time=30926 us cost=15 size=240 card=1)
1 1 1 NESTED LOOPS (cr=16 pr=3 pw=0 time=30389 us cost=13 size=204 card=1)
1 1 1 NESTED LOOPS (cr=11 pr=0 pw=0 time=665 us cost=9 size=131 card=1)
1 1 1 NESTED LOOPS OUTER (cr=8 pr=0 pw=0 time=306 us cost=7 size=95 card=1)
1 1 1 TABLE ACCESS BY INDEX ROWID MTL_TRANSACTION_ACCOUNTS (cr=5 pr=0 pw=0 time=37 us cost=5 size=59 card=1)
2 2 2 INDEX RANGE SCAN MTL_TRANSACTION_ACCOUNTS_N1 (cr=4 pr=0 pw=0 time=17 us cost=4 size=0 card=3)(object id 12484127)
1 1 1 INDEX RANGE SCAN FND_LOOKUP_VALUES_U1 (cr=3 pr=0 pw=0 time=216 us cost=2 size=36 card=1)(object id 705891)
1 1 1 INDEX RANGE SCAN FND_LOOKUP_VALUES_U1 (cr=3 pr=0 pw=0 time=352 us cost=2 size=36 card=1)(object id 705891)
1 1 1 TABLE ACCESS BY INDEX ROWID MTL_MATERIAL_TRANSACTIONS (cr=5 pr=3 pw=0 time=29716 us cost=4 size=73 card=1)
1 1 1 INDEX RANGE SCAN MTL_MATERIAL_TRANSACTIONS_N23 (cr=4 pr=3 pw=0 time=29588 us cost=3 size=0 card=1)(object id 12484133)
0 0 0 INDEX RANGE SCAN FND_LOOKUP_VALUES_U1 (cr=3 pr=0 pw=0 time=520 us cost=2 size=36 card=1)(object id 705891)
1 1 1 INDEX UNIQUE SCAN MTL_TXN_SOURCE_TYPES_U1 (cr=1 pr=0 pw=0 time=22 us cost=0 size=3 card=1)(object id 9987)
1 1 1 INDEX UNIQUE SCAN MTL_TRANSACTION_TYPES_U1 (cr=1 pr=0 pw=0 time=16 us cost=0 size=4 card=1)(object id 9983)
1 1 1 TABLE ACCESS BY INDEX ROWID MTL_PARAMETERS (cr=2 pr=0 pw=0 time=34 us cost=1 size=7 card=1)
1 1 1 INDEX UNIQUE SCAN MTL_PARAMETERS_U1 (cr=1 pr=0 pw=0 time=19 us cost=0 size=0 card=1)(object id 9847)
1 1 1 TABLE ACCESS BY INDEX ROWID MTL_PARAMETERS (cr=2 pr=0 pw=0 time=44 us cost=1 size=7 card=1)
1 1 1 INDEX UNIQUE SCAN MTL_PARAMETERS_U1 (cr=1 pr=0 pw=0 time=14 us cost=0 size=0 card=1)(object id 9847)
1 1 1 INDEX UNIQUE SCAN MTL_PARAMETERS_U1 (cr=1 pr=0 pw=0 time=13 us cost=0 size=4 card=1)(object id 9847)
1 1 1 INDEX UNIQUE SCAN MTL_SYSTEM_ITEMS_B_U1 (cr=4 pr=0 pw=0 time=49 us cost=2 size=10 card=1)(object id 12484155)
1 1 1 INDEX UNIQUE SCAN MTL_SYSTEM_ITEMS_TL_U1 (cr=4 pr=0 pw=0 time=96 us cost=2 size=13 card=1)(object id 12484137)
1 1 1 TABLE ACCESS BY INDEX ROWID HR_ALL_ORGANIZATION_UNITS (cr=3 pr=0 pw=0 time=1246 us cost=1 size=7 card=1)
1 1 1 INDEX UNIQUE SCAN HR_ORGANIZATION_UNITS_PK (cr=2 pr=0 pw=0 time=24 us cost=0 size=0 card=1)(object id 250158)
1 1 1 INDEX UNIQUE SCAN HR_ALL_ORGANIZATION_UNTS_TL_PK (cr=2 pr=0 pw=0 time=275 us cost=0 size=7 card=1)(object id 689101)
1 1 1 TABLE ACCESS BY INDEX ROWID MTL_PARAMETERS (cr=2 pr=0 pw=0 time=38 us cost=1 size=8 card=1)
1 1 1 INDEX UNIQUE SCAN MTL_PARAMETERS_U1 (cr=1 pr=0 pw=0 time=15 us cost=0 size=0 card=1)(object id 9847)
1 1 1 TABLE ACCESS BY INDEX ROWID GL_CODE_COMBINATIONS (cr=4 pr=2 pw=0 time=27531 us cost=2 size=57 card=1)
1 1 1 INDEX UNIQUE SCAN GL_CODE_COMBINATIONS_U1 (cr=3 pr=1 pw=0 time=19925 us cost=1 size=0 card=1)(object id 51426)
1 1 1 TABLE ACCESS BY INDEX ROWID MTL_ITEM_LOCATIONS (cr=4 pr=1 pw=0 time=7758 us cost=3 size=24 card=1)
1 1 1 INDEX RANGE SCAN MTL_ITEM_LOCATIONS_U1 (cr=3 pr=0 pw=0 time=51 us cost=2 size=0 card=1)(object id 9761)
1 1 1 TABLE ACCESS BY INDEX ROWID HR_ORGANIZATION_INFORMATION (cr=3 pr=0 pw=0 time=85 us cost=2 size=28 card=1)
1 1 1 INDEX RANGE SCAN HR_ORGANIZATION_INFORMATIO_FK2 (cr=2 pr=0 pw=0 time=29 us cost=1 size=0 card=2)(object id 5379798)
1 1 1 TABLE ACCESS BY INDEX ROWID HR_ORGANIZATION_INFORMATION (cr=3 pr=0 pw=0 time=25 us cost=1 size=25 card=1)
1 1 1 INDEX RANGE SCAN HR_ORGANIZATION_INFORMATIO_FK2 (cr=2 pr=0 pw=0 time=11 us cost=1 size=0 card=1)(object id 5379798)
1 1 1 INDEX FULL SCAN GL_SETS_OF_BOOKS_U2 (cr=1 pr=0 pw=0 time=69 us cost=1 size=4 card=1)(object id 1380842)
1 1 1 BUFFER SORT (cr=2 pr=0 pw=0 time=110 us cost=55 size=0 card=1)
1 1 1 TABLE ACCESS FULL FND_PRODUCT_GROUPS (cr=2 pr=0 pw=0 time=59 us cost=3 size=0 card=1)
Elapsed times include waiting on following events:
Event waited on Times Max. Wait Total Waited
---------------------------------------- Waited ---------- ------------
library cache lock 2 0.00 0.00
library cache pin 2 0.00 0.00
Disk file operations I/O 249 0.00 0.00
db file sequential read 58819 2.61 714.28
gc cr grant 2-way 5198 0.16 4.52
gc current grant busy 1 0.00 0.00
KJC: Wait for msg sends to complete 517 0.00 0.05
library cache: mutex X 433 0.01 0.04
gc cr grant congested 28 0.08 0.18
latch: ges resource hash list 5 0.00 0.00
gc current block 2-way 513 0.11 0.61
gc current block congested 2 0.00 0.00
latch: gc element 16 0.00 0.01
latch: cache buffers chains 4 0.00 0.00
latch: object queue header operation 3 0.00 0.00
********************************************************************************Explain Plan for the query
SELECT STATEMENT, GOAL = ALL_ROWS Cost=56 Cardinality=1 Bytes=219
MERGE JOIN CARTESIAN Cost=56 Cardinality=1 Bytes=219
NESTED LOOPS Cost=53 Cardinality=1 Bytes=219
NESTED LOOPS Cost=52 Cardinality=1 Bytes=215
NESTED LOOPS Cost=51 Cardinality=1 Bytes=190
NESTED LOOPS Cost=49 Cardinality=1 Bytes=162
NESTED LOOPS Cost=46 Cardinality=1 Bytes=138
NESTED LOOPS Cost=44 Cardinality=1 Bytes=81
NESTED LOOPS Cost=43 Cardinality=1 Bytes=73
NESTED LOOPS Cost=43 Cardinality=2 Bytes=132
VIEW Object owner=APPS Object name=CST_INV_DISTRIBUTION_V Cost=41 Cardinality=2 Bytes=118
UNION-ALL
NESTED LOOPS OUTER Cost=20 Cardinality=1 Bytes=291
NESTED LOOPS Cost=18 Cardinality=1 Bytes=255
NESTED LOOPS Cost=18 Cardinality=1 Bytes=251
MERGE JOIN CARTESIAN Cost=14 Cardinality=1 Bytes=192
NESTED LOOPS OUTER Cost=12 Cardinality=1 Bytes=156
NESTED LOOPS Cost=10 Cardinality=1 Bytes=120
NESTED LOOPS OUTER Cost=9 Cardinality=1 Bytes=113
NESTED LOOPS Cost=8 Cardinality=1 Bytes=106
NESTED LOOPS Cost=6 Cardinality=1 Bytes=93
NESTED LOOPS Cost=4 Cardinality=1 Bytes=83
NESTED LOOPS Cost=4 Cardinality=1 Bytes=80
TABLE ACCESS BY INDEX ROWID Object owner=INV Object name=MTL_MATERIAL_TRANSACTIONS Cost=4 Cardinality=1 Bytes=76
INDEX UNIQUE SCAN Object owner=INV Object name=MTL_MATERIAL_TRANSACTIONS_U1 Cost=3 Cardinality=1
INDEX UNIQUE SCAN Object owner=INV Object name=MTL_TRANSACTION_TYPES_U1 Cost=0 Cardinality=191 Bytes=764
INDEX UNIQUE SCAN Object owner=INV Object name=MTL_TXN_SOURCE_TYPES_U1 Cost=0 Cardinality=18 Bytes=54
INDEX UNIQUE SCAN Object owner=INV Object name=MTL_SYSTEM_ITEMS_B_U1 Cost=2 Cardinality=73632445 Bytes=736324450
INDEX UNIQUE SCAN Object owner=INV Object name=MTL_SYSTEM_ITEMS_TL_U1 Cost=2 Cardinality=73652390 Bytes=957481070
TABLE ACCESS BY INDEX ROWID Object owner=INV Object name=MTL_PARAMETERS Cost=1 Cardinality=470 Bytes=3290
INDEX UNIQUE SCAN Object owner=INV Object name=MTL_PARAMETERS_U1 Cost=0 Cardinality=1
TABLE ACCESS BY INDEX ROWID Object owner=INV Object name=MTL_PARAMETERS Cost=1 Cardinality=470 Bytes=3290
INDEX UNIQUE SCAN Object owner=INV Object name=MTL_PARAMETERS_U1 Cost=0 Cardinality=1
INDEX RANGE SCAN Object owner=APPLSYS Object name=FND_LOOKUP_VALUES_U1 Cost=2 Cardinality=1 Bytes=36
BUFFER SORT Cost=12 Cardinality=1 Bytes=36
INDEX RANGE SCAN Object owner=APPLSYS Object name=FND_LOOKUP_VALUES_U1 Cost=2 Cardinality=1 Bytes=36
TABLE ACCESS BY INDEX ROWID Object owner=INV Object name=MTL_TRANSACTION_ACCOUNTS Cost=4 Cardinality=1 Bytes=59
INDEX RANGE SCAN Object owner=INV Object name=MTL_TRANSACTION_ACCOUNTS_N1 Cost=3 Cardinality=3
INDEX UNIQUE SCAN Object owner=INV Object name=MTL_PARAMETERS_U1 Cost=0 Cardinality=1 Bytes=4
INDEX RANGE SCAN Object owner=APPLSYS Object name=FND_LOOKUP_VALUES_U1 Cost=2 Cardinality=1 Bytes=36
NESTED LOOPS Cost=21 Cardinality=1 Bytes=288
NESTED LOOPS Cost=19 Cardinality=1 Bytes=275
NESTED LOOPS Cost=17 Cardinality=1 Bytes=265
NESTED LOOPS Cost=17 Cardinality=1 Bytes=261
NESTED LOOPS OUTER Cost=16 Cardinality=1 Bytes=254
NESTED LOOPS Cost=15 Cardinality=1 Bytes=247
NESTED LOOPS Cost=15 Cardinality=1 Bytes=243
NESTED LOOPS OUTER Cost=15 Cardinality=1 Bytes=240
NESTED LOOPS Cost=13 Cardinality=1 Bytes=204
NESTED LOOPS Cost=9 Cardinality=1 Bytes=131
NESTED LOOPS OUTER Cost=7 Cardinality=1 Bytes=95
TABLE ACCESS BY INDEX ROWID Object owner=INV Object name=MTL_TRANSACTION_ACCOUNTS Cost=5 Cardinality=1 Bytes=59
INDEX RANGE SCAN Object owner=INV Object name=MTL_TRANSACTION_ACCOUNTS_N1 Cost=4 Cardinality=3
INDEX RANGE SCAN Object owner=APPLSYS Object name=FND_LOOKUP_VALUES_U1 Cost=2 Cardinality=1 Bytes=36
INDEX RANGE SCAN Object owner=APPLSYS Object name=FND_LOOKUP_VALUES_U1 Cost=2 Cardinality=1 Bytes=36
TABLE ACCESS BY INDEX ROWID Object owner=INV Object name=MTL_MATERIAL_TRANSACTIONS Cost=4 Cardinality=1 Bytes=73
INDEX RANGE SCAN Object owner=INV Object name=MTL_MATERIAL_TRANSACTIONS_N23 Cost=3 Cardinality=1
INDEX RANGE SCAN Object owner=APPLSYS Object name=FND_LOOKUP_VALUES_U1 Cost=2 Cardinality=1 Bytes=36
INDEX UNIQUE SCAN Object owner=INV Object name=MTL_TXN_SOURCE_TYPES_U1 Cost=0 Cardinality=1 Bytes=3
INDEX UNIQUE SCAN Object owner=INV Object name=MTL_TRANSACTION_TYPES_U1 Cost=0 Cardinality=1 Bytes=4
TABLE ACCESS BY INDEX ROWID Object owner=INV Object name=MTL_PARAMETERS Cost=1 Cardinality=1 Bytes=7
INDEX UNIQUE SCAN Object owner=INV Object name=MTL_PARAMETERS_U1 Cost=0 Cardinality=1
TABLE ACCESS BY INDEX ROWID Object owner=INV Object name=MTL_PARAMETERS Cost=1 Cardinality=1 Bytes=7
INDEX UNIQUE SCAN Object owner=INV Object name=MTL_PARAMETERS_U1 Cost=0 Cardinality=1
INDEX UNIQUE SCAN Object owner=INV Object name=MTL_PARAMETERS_U1 Cost=0 Cardinality=1 Bytes=4
INDEX UNIQUE SCAN Object owner=INV Object name=MTL_SYSTEM_ITEMS_B_U1 Cost=2 Cardinality=1 Bytes=10
INDEX UNIQUE SCAN Object owner=INV Object name=MTL_SYSTEM_ITEMS_TL_U1 Cost=2 Cardinality=1 Bytes=13
TABLE ACCESS BY INDEX ROWID Object owner=HR Object name=HR_ALL_ORGANIZATION_UNITS Cost=1 Cardinality=1 Bytes=7
INDEX UNIQUE SCAN Object owner=HR Object name=HR_ORGANIZATION_UNITS_PK Cost=0 Cardinality=1
INDEX UNIQUE SCAN Object owner=HR Object name=HR_ALL_ORGANIZATION_UNTS_TL_PK Cost=0 Cardinality=1 Bytes=7
TABLE ACCESS BY INDEX ROWID Object owner=INV Object name=MTL_PARAMETERS Cost=1 Cardinality=1 Bytes=8
INDEX UNIQUE SCAN Object owner=INV Object name=MTL_PARAMETERS_U1 Cost=0 Cardinality=1
TABLE ACCESS BY INDEX ROWID Object owner=GL Object name=GL_CODE_COMBINATIONS Cost=2 Cardinality=1 Bytes=57
INDEX UNIQUE SCAN Object owner=GL Object name=GL_CODE_COMBINATIONS_U1 Cost=1 Cardinality=1
TABLE ACCESS BY INDEX ROWID Object owner=INV Object name=MTL_ITEM_LOCATIONS Cost=3 Cardinality=1 Bytes=24
INDEX RANGE SCAN Object owner=INV Object name=MTL_ITEM_LOCATIONS_U1 Cost=2 Cardinality=1
TABLE ACCESS BY INDEX ROWID Object owner=HR Object name=HR_ORGANIZATION_INFORMATION Cost=2 Cardinality=1 Bytes=28
INDEX RANGE SCAN Object owner=HR Object name=HR_ORGANIZATION_INFORMATIO_FK2 Cost=1 Cardinality=2
TABLE ACCESS BY INDEX ROWID Object owner=HR Object name=HR_ORGANIZATION_INFORMATION Cost=1 Cardinality=1 Bytes=25
INDEX RANGE SCAN Object owner=HR Object name=HR_ORGANIZATION_INFORMATIO_FK2 Cost=1 Cardinality=1
INDEX FULL SCAN Object owner=GL Object name=GL_SETS_OF_BOOKS_U2 Cost=1 Cardinality=1 Bytes=4
BUFFER SORT Cost=55 Cardinality=1
TABLE ACCESS FULL Object owner=APPLSYS Object name=FND_PRODUCT_GROUPS Cost=3 Cardinality=1 -
How do tune sql query? Can somebody help me in this? Atleast prescribe book
how do tune sql query? Can somebody help me in this? Atleast prescribe a reference book.
I am not able understand How to analyze tkproof output.Check out asktom.oracle.com
Lot's of threads on interpreting tkprof output - no simple easy solution here.
You need to understand what is happening and THINK. Then you can be a good engineer.
As for good books...
Tom Kyte's books are really, really good.
http://www.amazon.com/Effective-Oracle-Design-Osborne-ORACLE/dp/0072230657/ref=sr_1_3?ie=UTF8&s=books&qid=1266783471&sr=8-3
http://www.amazon.com/Expert-Oracle-Database-Architecture-Programming/dp/1590595300/ref=sr_1_1?ie=UTF8&s=books&qid=1266783471&sr=8-1
Good luck! -
Plz help Either new idea nor tune this query
Hi,
I had two queries like below(1 &2).And As per my requirement i need to merge two queries to as one query and i wrote that one using decode(please see Resulted query3).But it's taking too much time .PLease help to tune the
3rd query or suggest me a new idea.
1)
select ts.institution_id,tsd.test_alias,count(1) from test_detail td,test_session_detail tsd,test_session ts where td.test_detail_id=tsd.test_detail_id and tsd.test_session_id=ts.test_session_id and TRUNC(test_start_date) BETWEEN to_date('02/01/2009', 'MM/DD/YYYY') AND to_date('08/04/2009', 'MM/DD/YYYY') group by ts.institution_id,tsd.test_alias
2)
select a.INST_SITE_ID, a.INSTITUTION_ID_DISPLAY, a.institution_name, a.SITE_ID_DISPLAY, a.site_name, a.region_name,CASE WHEN a.state_name = 'Other' THEN a.OTHER ELSE a.state_name END state_name from vueinstitutionsite a,(select distinct institution_id from test_session a,test_session_detail b where a.test_session_id=b.test_session_id and trunc(test_start_date) between to_date('08/01/2009','MM/DD/YYYY') and to_date('08/04/2009','MM/DD/YYYY'))b where a.inst_site_id=b.institution_id order by a.INSTITUTION_ID_DISPLAY
Resulted query
*3)*
SELECT max(a.institution_id_display)institution_id
,max(a.institution_name)institution_name,max(a.site_id_display)site_id,
max(a.site_name)site_name,max(a.region_name)region_name,
count(decode(tsd.test_alias,'rd',tsd.test_alias))rd,
count(decode(tsd.test_alias,'ss',tsd.test_alias))ss,
count(decode(tsd.test_alias,'resk',tsd.test_alias))resk,
count(decode(tsd.test_alias,'snmn',tsd.test_alias))snmn,
count(decode(tsd.test_alias,'clm',tsd.test_alias))clm,
count(decode(tsd.test_alias,'lgus',tsd.test_alias))lgus,
count(decode(tsd.test_alias,'loeplis',tsd.test_alias))loeplis,
count(decode(tsd.test_alias,'arit',tsd.test_alias))arit,
count(decode(tsd.test_alias,'alge',tsd.test_alias))alge,
count(decode(tsd.test_alias,'wp_i3',tsd.test_alias))wp_i3,
count(decode(tsd.test_alias,'wp_esl',tsd.test_alias))wp_esl,
count(decode(tsd.test_alias,'css',tsd.test_alias))css,
count(decode(tsd.test_alias,'crd',tsd.test_alias))crd,
count(decode(tsd.test_alias,'carit',tsd.test_alias))carit,
count(decode(tsd.test_alias,'calge',tsd.test_alias))calge,
count(decode(tsd.test_alias,'cclm',tsd.test_alias))cclm,
count(decode(tsd.test_alias,'cresk',tsd.test_alias))cresk,
count(decode(tsd.test_alias,'csnmn',tsd.test_alias))csnmn,
count(decode(tsd.test_alias,'clgus',tsd.test_alias))clgus,
count(decode(tsd.test_alias,'csp',tsd.test_alias))csp,
count(decode(tsd.test_alias,'cspb',tsd.test_alias))cspb,
count(decode(tsd.test_alias,'localtest',tsd.test_alias))localtest
FROM test_detail td,test_session_detail tsd,test_session ts,vueinstitutionsite a
WHERE td.test_detail_id = tsd.test_detail_id
AND tsd.test_session_id = ts.test_session_id
and a.inst_site_id = ts.institution_id
AND TRUNC(test_start_date) BETWEEN to_date('08/27/2009', 'MM/DD/YYYY') AND to_date('09/02/2009', 'MM/DD/YYYY')
GROUP BY ts.institution_id
order by institution_id
Plz help me ASAP
thanks,
RajI'm posting DDL scripts as a two posts due to maximum exceeding length
*5 tables are in Underlying view*
1)INSTITUTION
CREATE TABLE "CATTEMP"."INSTITUTION"
( "INSTITUTION_ID" NUMBER NOT NULL ENABLE,
"LEVEL_TYPE_ID" NUMBER NOT NULL ENABLE,
"REGION_CODE" VARCHAR2(4 BYTE) NOT NULL ENABLE,
"BELONGS_TO" NUMBER NOT NULL ENABLE,
"NAME" VARCHAR2(200 BYTE) NOT NULL ENABLE,
"DESCRIPTION" VARCHAR2(200 BYTE),
"ADDRESS_1" VARCHAR2(100 BYTE),
"ADDRESS_2" VARCHAR2(100 BYTE),
"CITY" VARCHAR2(30 BYTE),
"STATE" VARCHAR2(30 BYTE),
"ZIP" VARCHAR2(20 BYTE),
"COUNTRY" VARCHAR2(30 BYTE),
"LOCATION" VARCHAR2(30 BYTE),
"PHONE" VARCHAR2(20 BYTE),
"FAX" VARCHAR2(20 BYTE),
"OTHER" VARCHAR2(30 BYTE),
"INSTITUTION_CATEGORY" VARCHAR2(100 BYTE),
"INSTITUTION_TYPE" VARCHAR2(30 BYTE),
"IS_CB_MEMBER" CHAR(1 BYTE),
"ATB_TESTING" CHAR(1 BYTE),
"HOW_DID_YOU_HEAR" VARCHAR2(100 BYTE),
"FIRST_LOGIN_DATE" DATE,
"ACTIVE_STATUS" VARCHAR2(20 BYTE),
"AVAILABLE_TEST_UNITS" NUMBER,
"STUDENT_BODY_SIZE" VARCHAR2(30 BYTE),
"CREATED_ON" DATE DEFAULT SYSDATE,
"MODIFIED_ON" DATE DEFAULT SYSDATE,
"CREATED_BY" NUMBER,
"MODIFIED_BY" NUMBER,
"ACCUPLACER_USER" CHAR(1 BYTE),
"RESEND_MAIL_DATE" DATE,
"LAST_ACTIVITY_DATE" DATE,
"ACCT_ACTIVATION_DATE" DATE,
"INSTITUTION_ID_DISPLAY" VARCHAR2(10 BYTE),
"LAST_CB_UPDATE" DATE,
CONSTRAINT "PK_INSTITUTION" PRIMARY KEY ("INSTITUTION_ID")
USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255
STORAGE(
BUFFER_POOL DEFAULT) LOCAL
(PARTITION "SYS_P8001"
TABLESPACE "CAT_IDX_TB1",
PARTITION "SYS_P8002"
TABLESPACE "CAT_IDX_TB2",
PARTITION "SYS_P8003"
TABLESPACE "CAT_IDX_TB3",
PARTITION "SYS_P8004"
TABLESPACE "CAT_IDX_TB4",
PARTITION "SYS_P8005"
TABLESPACE "CAT_IDX_TB5") ENABLE,
CONSTRAINT "UK_INSTITUTION" UNIQUE ("INSTITUTION_ID_DISPLAY")
USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS
STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT)
TABLESPACE "CAT" ENABLE,
CONSTRAINT "FK_INSTITUTION1" FOREIGN KEY ("LEVEL_TYPE_ID")
REFERENCES "CATTEMP"."LEVEL_TYPE_MASTER" ("LEVEL_TYPE_ID") ENABLE,
CONSTRAINT "FK_INSTITUTION2" FOREIGN KEY ("REGION_CODE")
REFERENCES "CATTEMP"."REGION" ("REGION_CODE") ENABLE,
CONSTRAINT "FK_INSTITUTION3" FOREIGN KEY ("BELONGS_TO")
REFERENCES "CATTEMP"."INSTITUTION" ("INSTITUTION_ID") ENABLE
) PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255
STORAGE(
BUFFER_POOL DEFAULT)
TABLESPACE "CAT_DATA"
PARTITION BY HASH ("INSTITUTION_ID")
(PARTITION "SYS_P8001"
TABLESPACE "CAT_DATA",
PARTITION "SYS_P8002"
TABLESPACE "CAT_DATA",
PARTITION "SYS_P8003"
TABLESPACE "CAT_DATA",
PARTITION "SYS_P8004"
TABLESPACE "CAT_DATA",
PARTITION "SYS_P8005"
TABLESPACE "CAT_DATA") ;
COMMENT ON COLUMN "CATTEMP"."INSTITUTION"."LEVEL_TYPE_ID" IS 'IDENTIFIES WHETHER THIS IS AN INSTITUTION OR SITE';
COMMENT ON COLUMN "CATTEMP"."INSTITUTION"."REGION_CODE" IS 'REGION TO WHICH THE INSTITUTION BELONGS TO';
COMMENT ON COLUMN "CATTEMP"."INSTITUTION"."PHONE" IS 'PHONE NUMBER';
COMMENT ON COLUMN "CATTEMP"."INSTITUTION"."FAX" IS 'FAX NUMBER';
COMMENT ON COLUMN "CATTEMP"."INSTITUTION"."HOW_DID_YOU_HEAR" IS 'HOW DID YOU HEAR INFORMATION';
COMMENT ON COLUMN "CATTEMP"."INSTITUTION"."FIRST_LOGIN_DATE" IS 'USED TO FIND FIRST LOGIN DATE INFORMATION';
COMMENT ON COLUMN "CATTEMP"."INSTITUTION"."ACTIVE_STATUS" IS 'CURRENT ACTIVATION STATUS';
COMMENT ON COLUMN "CATTEMP"."INSTITUTION"."AVAILABLE_TEST_UNITS" IS 'AVAILABLE TEST UNITS WITH THE INSITUTION';
COMMENT ON COLUMN "CATTEMP"."INSTITUTION"."STUDENT_BODY_SIZE" IS 'STUDENT SIZE UNDER THE INSTITUTION';
COMMENT ON COLUMN "CATTEMP"."INSTITUTION"."CREATED_ON" IS 'INSITUTION CREATION DATE';
COMMENT ON COLUMN "CATTEMP"."INSTITUTION"."MODIFIED_ON" IS 'LAST MODIFIED DATE';
COMMENT ON TABLE "CATTEMP"."INSTITUTION" IS 'USED TO STORE THE DETAILS OF AN INSTITUTE (INSTITUTION, SITE)';
CREATE INDEX "CATTEMP"."FK_INSTITUTION1_I" ON "CATTEMP"."INSTITUTION" ("LEVEL_TYPE_ID")
PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS
STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT)
TABLESPACE "CAT" ;
CREATE INDEX "CATTEMP"."FK_INSTITUTION2_I" ON "CATTEMP"."INSTITUTION" ("REGION_CODE")
PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS
STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT)
TABLESPACE "CAT" ;
CREATE INDEX "CATTEMP"."INSTITUTION_IDX1" ON "CATTEMP"."INSTITUTION" ("BELONGS_TO", "LEVEL_TYPE_ID", "ACTIVE_STATUS")
PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS
STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT)
TABLESPACE "CAT" ;
CREATE INDEX "CATTEMP"."INSTI_ID_NAME_COUN_DISP_IDX" ON "CATTEMP"."INSTITUTION" ("INSTITUTION_ID", "NAME", "COUNTRY", "INSTITUTION_ID_DISPLAY")
PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS
STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT)
TABLESPACE "CAT_DATA" ;
CREATE INDEX "CATTEMP"."INSTUTITION_NC_IDX" ON "CATTEMP"."INSTITUTION" ("NAME")
PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS
STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT)
TABLESPACE "CAT_DATA" ;
CREATE INDEX "CATTEMP"."INST_ID_DISP_IDX" ON "CATTEMP"."INSTITUTION" (SUBSTR("INSTITUTION_ID_DISPLAY",8,3))
PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS
STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT)
TABLESPACE "CAT_DATA" ;
CREATE UNIQUE INDEX "CATTEMP"."PK_INSTITUTION" ON "CATTEMP"."INSTITUTION" ("INSTITUTION_ID")
PCTFREE 10 INITRANS 2 MAXTRANS 255
STORAGE(
BUFFER_POOL DEFAULT) LOCAL
(PARTITION "SYS_P8001"
TABLESPACE "CAT_IDX_TB1",
PARTITION "SYS_P8002"
TABLESPACE "CAT_IDX_TB2",
PARTITION "SYS_P8003"
TABLESPACE "CAT_IDX_TB3",
PARTITION "SYS_P8004"
TABLESPACE "CAT_IDX_TB4",
PARTITION "SYS_P8005"
TABLESPACE "CAT_IDX_TB5") ;
CREATE UNIQUE INDEX "CATTEMP"."UK_INSTITUTION" ON "CATTEMP"."INSTITUTION" ("INSTITUTION_ID_DISPLAY")
PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS
STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT)
TABLESPACE "CAT" ;2)COUNTRY
CREATE TABLE "CATTEMP"."COUNTRY"
( "COUNTRY_CODE" VARCHAR2(10 BYTE) NOT NULL ENABLE,
"COUNTRY_NAME" VARCHAR2(30 BYTE),
"CREATED_ON" DATE DEFAULT SYSDATE,
"MODIFIED_ON" DATE DEFAULT SYSDATE,
"CREATED_BY" NUMBER,
"MODIFIED_BY" NUMBER,
CONSTRAINT "PK_COUNTRY" PRIMARY KEY ("COUNTRY_CODE")
USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255
STORAGE(
BUFFER_POOL DEFAULT) LOCAL
(PARTITION "SYS_P7936"
TABLESPACE "CAT_IDX_TB1",
PARTITION "SYS_P7937"
TABLESPACE "CAT_IDX_TB2",
PARTITION "SYS_P7938"
TABLESPACE "CAT_IDX_TB3",
PARTITION "SYS_P7939"
TABLESPACE "CAT_IDX_TB4",
PARTITION "SYS_P7940"
TABLESPACE "CAT_IDX_TB5") ENABLE,
CONSTRAINT "UK_COUNTRY" UNIQUE ("COUNTRY_NAME")
USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS
STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT)
TABLESPACE "CAT" ENABLE
) PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255
STORAGE(
BUFFER_POOL DEFAULT)
TABLESPACE "CAT_DATA"
PARTITION BY HASH ("COUNTRY_CODE")
(PARTITION "SYS_P7936"
TABLESPACE "CAT_DATA",
PARTITION "SYS_P7937"
TABLESPACE "CAT_DATA",
PARTITION "SYS_P7938"
TABLESPACE "CAT_DATA",
PARTITION "SYS_P7939"
TABLESPACE "CAT_DATA",
PARTITION "SYS_P7940"
TABLESPACE "CAT_DATA") ;
CREATE UNIQUE INDEX "CATTEMP"."PK_COUNTRY" ON "CATTEMP"."COUNTRY" ("COUNTRY_CODE")
PCTFREE 10 INITRANS 2 MAXTRANS 255
STORAGE(
BUFFER_POOL DEFAULT) LOCAL
(PARTITION "SYS_P7936"
TABLESPACE "CAT_IDX_TB1",
PARTITION "SYS_P7937"
TABLESPACE "CAT_IDX_TB2",
PARTITION "SYS_P7938"
TABLESPACE "CAT_IDX_TB3",
PARTITION "SYS_P7939"
TABLESPACE "CAT_IDX_TB4",
PARTITION "SYS_P7940"
TABLESPACE "CAT_IDX_TB5") ;
CREATE UNIQUE INDEX "CATTEMP"."UK_COUNTRY" ON "CATTEMP"."COUNTRY" ("COUNTRY_NAME")
PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS
STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT)
TABLESPACE "CAT" ;
3)REGION
CREATE TABLE "CATTEMP"."REGION"
( "REGION_CODE" VARCHAR2(4 BYTE) NOT NULL ENABLE,
"REGION_NAME" VARCHAR2(50 BYTE) NOT NULL ENABLE,
"CREATED_ON" DATE DEFAULT SYSDATE,
"MODIFIED_ON" DATE DEFAULT SYSDATE,
"CREATED_BY" NUMBER,
"MODIFIED_BY" NUMBER,
CONSTRAINT "PK_REGION" PRIMARY KEY ("REGION_CODE")
USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255
STORAGE(
BUFFER_POOL DEFAULT) LOCAL
(PARTITION "SYS_P8101"
TABLESPACE "CAT_IDX_TB1",
PARTITION "SYS_P8102"
TABLESPACE "CAT_IDX_TB2",
PARTITION "SYS_P8103"
TABLESPACE "CAT_IDX_TB3",
PARTITION "SYS_P8104"
TABLESPACE "CAT_IDX_TB4",
PARTITION "SYS_P8105"
TABLESPACE "CAT_IDX_TB5") ENABLE,
CONSTRAINT "UK_REGION" UNIQUE ("REGION_NAME")
USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS
STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT)
TABLESPACE "CAT" ENABLE
) PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255
STORAGE(
BUFFER_POOL DEFAULT)
TABLESPACE "CAT_DATA"
PARTITION BY HASH ("REGION_CODE")
(PARTITION "SYS_P8101"
TABLESPACE "CAT_DATA",
PARTITION "SYS_P8102"
TABLESPACE "CAT_DATA",
PARTITION "SYS_P8103"
TABLESPACE "CAT_DATA",
PARTITION "SYS_P8104"
TABLESPACE "CAT_DATA",
PARTITION "SYS_P8105"
TABLESPACE "CAT_DATA") ;
CREATE UNIQUE INDEX "CATTEMP"."PK_REGION" ON "CATTEMP"."REGION" ("REGION_CODE")
PCTFREE 10 INITRANS 2 MAXTRANS 255
STORAGE(
BUFFER_POOL DEFAULT) LOCAL
(PARTITION "SYS_P8101"
TABLESPACE "CAT_IDX_TB1",
PARTITION "SYS_P8102"
TABLESPACE "CAT_IDX_TB2",
PARTITION "SYS_P8103"
TABLESPACE "CAT_IDX_TB3",
PARTITION "SYS_P8104"
TABLESPACE "CAT_IDX_TB4",
PARTITION "SYS_P8105"
TABLESPACE "CAT_IDX_TB5") ;
CREATE UNIQUE INDEX "CATTEMP"."UK_REGION" ON "CATTEMP"."REGION" ("REGION_NAME")
PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS
STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT)
TABLESPACE "CAT" ;
4)
LEVEL_TYPE_MASTER
CREATE TABLE "CATTEMP"."LEVEL_TYPE_MASTER"
( "LEVEL_TYPE_ID" NUMBER NOT NULL ENABLE,
"LEVEL_TYPE_NAME" VARCHAR2(50 BYTE) NOT NULL ENABLE,
"DESCRIPTION" VARCHAR2(100 BYTE),
"CREATED_ON" DATE DEFAULT SYSDATE,
"MODIFIED_ON" DATE DEFAULT SYSDATE,
"CREATED_BY" NUMBER,
"MODIFIED_BY" NUMBER,
CONSTRAINT "PK_LEVEL_TYPE_MASTER" PRIMARY KEY ("LEVEL_TYPE_ID")
USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255
STORAGE(
BUFFER_POOL DEFAULT) LOCAL
(PARTITION "SYS_P8031"
TABLESPACE "CAT_IDX_TB1",
PARTITION "SYS_P8032"
TABLESPACE "CAT_IDX_TB2",
PARTITION "SYS_P8033"
TABLESPACE "CAT_IDX_TB3",
PARTITION "SYS_P8034"
TABLESPACE "CAT_IDX_TB4",
PARTITION "SYS_P8035"
TABLESPACE "CAT_IDX_TB5") ENABLE,
CONSTRAINT "UK_LEVEL_TYPE_MASTER" UNIQUE ("LEVEL_TYPE_NAME")
USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS
STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT)
TABLESPACE "CAT" ENABLE
) PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255
STORAGE(
BUFFER_POOL DEFAULT)
TABLESPACE "CAT_DATA"
PARTITION BY HASH ("LEVEL_TYPE_ID")
(PARTITION "SYS_P8031"
TABLESPACE "CAT_DATA",
PARTITION "SYS_P8032"
TABLESPACE "CAT_DATA",
PARTITION "SYS_P8033"
TABLESPACE "CAT_DATA",
PARTITION "SYS_P8034"
TABLESPACE "CAT_DATA",
PARTITION "SYS_P8035"
TABLESPACE "CAT_DATA") ;
CREATE UNIQUE INDEX "CATTEMP"."PK_LEVEL_TYPE_MASTER" ON "CATTEMP"."LEVEL_TYPE_MASTER" ("LEVEL_TYPE_ID")
PCTFREE 10 INITRANS 2 MAXTRANS 255
STORAGE(
BUFFER_POOL DEFAULT) LOCAL
(PARTITION "SYS_P8031"
TABLESPACE "CAT_IDX_TB1",
PARTITION "SYS_P8032"
TABLESPACE "CAT_IDX_TB2",
PARTITION "SYS_P8033"
TABLESPACE "CAT_IDX_TB3",
PARTITION "SYS_P8034"
TABLESPACE "CAT_IDX_TB4",
PARTITION "SYS_P8035"
TABLESPACE "CAT_IDX_TB5") ;
CREATE UNIQUE INDEX "CATTEMP"."UK_LEVEL_TYPE_MASTER" ON "CATTEMP"."LEVEL_TYPE_MASTER" ("LEVEL_TYPE_NAME")
PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS
STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT)
TABLESPACE "CAT" ;
5)STATE
CREATE TABLE "CATTEMP"."STATE"
( "STATE_NAME" VARCHAR2(30 BYTE) NOT NULL ENABLE,
"STATE_CODE" VARCHAR2(10 BYTE),
"COUNTRY_CODE" VARCHAR2(10 BYTE) NOT NULL ENABLE,
"REGION_CODE" VARCHAR2(4 BYTE),
"CREATED_ON" DATE DEFAULT SYSDATE,
"MODIFIED_ON" DATE DEFAULT SYSDATE,
"CREATED_BY" NUMBER,
"MODIFIED_BY" NUMBER,
CONSTRAINT "PK_STATE" PRIMARY KEY ("STATE_NAME", "COUNTRY_CODE")
USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255
STORAGE(
BUFFER_POOL DEFAULT) LOCAL
(PARTITION "SYS_P8131"
TABLESPACE "CAT_IDX_TB1",
PARTITION "SYS_P8132"
TABLESPACE "CAT_IDX_TB2",
PARTITION "SYS_P8133"
TABLESPACE "CAT_IDX_TB3",
PARTITION "SYS_P8134"
TABLESPACE "CAT_IDX_TB4",
PARTITION "SYS_P8135"
TABLESPACE "CAT_IDX_TB5") ENABLE,
CONSTRAINT "UK_STATE" UNIQUE ("STATE_CODE")
USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS
STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT)
TABLESPACE "CAT" ENABLE,
CONSTRAINT "FK_STATE1" FOREIGN KEY ("COUNTRY_CODE")
REFERENCES "CATTEMP"."COUNTRY" ("COUNTRY_CODE") ENABLE,
CONSTRAINT "FK_STATE2" FOREIGN KEY ("REGION_CODE")
REFERENCES "CATTEMP"."REGION" ("REGION_CODE") ENABLE
) PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255
STORAGE(
BUFFER_POOL DEFAULT)
TABLESPACE "CAT_DATA"
PARTITION BY HASH ("STATE_NAME","COUNTRY_CODE")
(PARTITION "SYS_P8131"
TABLESPACE "CAT_DATA",
PARTITION "SYS_P8132"
TABLESPACE "CAT_DATA",
PARTITION "SYS_P8133"
TABLESPACE "CAT_DATA",
PARTITION "SYS_P8134"
TABLESPACE "CAT_DATA",
PARTITION "SYS_P8135"
TABLESPACE "CAT_DATA") ;
CREATE INDEX "CATTEMP"."FK_STATE1_I" ON "CATTEMP"."STATE" ("COUNTRY_CODE")
PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS
STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT)
TABLESPACE "CAT" ;
CREATE INDEX "CATTEMP"."FK_STATE2_I" ON "CATTEMP"."STATE" ("REGION_CODE")
PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS
STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT)
TABLESPACE "CAT" ;
CREATE UNIQUE INDEX "CATTEMP"."PK_STATE" ON "CATTEMP"."STATE" ("STATE_NAME", "COUNTRY_CODE")
PCTFREE 10 INITRANS 2 MAXTRANS 255
STORAGE(
BUFFER_POOL DEFAULT) LOCAL
(PARTITION "SYS_P8131"
TABLESPACE "CAT_IDX_TB1",
PARTITION "SYS_P8132"
TABLESPACE "CAT_IDX_TB2",
PARTITION "SYS_P8133"
TABLESPACE "CAT_IDX_TB3",
PARTITION "SYS_P8134"
TABLESPACE "CAT_IDX_TB4",
PARTITION "SYS_P8135"
TABLESPACE "CAT_IDX_TB5") ;
CREATE INDEX "CATTEMP"."STATE_NAME_CODE_IDX" ON "CATTEMP"."STATE" ("STATE_NAME", "STATE_CODE")
PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS
STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT)
TABLESPACE "CAT_DATA" ;
CREATE INDEX "CATTEMP"."STATE_NAME_STATE_IDX" ON "CATTEMP"."STATE" ("STATE_NAME")
PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS
STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT)
TABLESPACE "CAT_DATA" ;
CREATE UNIQUE INDEX "CATTEMP"."UK_STATE" ON "CATTEMP"."STATE" ("STATE_CODE")
PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS
STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT)
TABLESPACE "CAT" ;
-
Executing nested query contains ORDER BY:Help Needed
I have a database in ORACLE 8.0 enterprise
edition in HP-UX. I am trying to execute the following query
"select * from ( select * from temptable order by value desc) where rownum < 5"
and I am getting the following error
"missing right parenthesis"
This syntax is given in the Oracle user guide
under sql commands section and it is not
working.
Similar query is working on Oracle 8.1 running on Win NT.
Does any body throw some light.
Thanks in advance
-rajYour query works fine in Oracle 8i:
SELECT *
FROM (SELECT *
FROM temptable
ORDER BY value DESC)
WHERE ROWNUM < 5;
However, prior to Oracle 8i, in Oracle 8.0, it is not allowed to have an ORDER BY clause within a nested query. So, in Oracle 8.0, a query like the above cannot work. However, the following, with the ORDER BY clause in the outer query will work:
SELECT *
FROM temptable a
WHERE 5 >=
(SELECT COUNT (*) + 1
FROM temptable b
WHERE b.value > a.value)
ORDER BY a.value DESC;
null
Maybe you are looking for
-
New i7 Macbook Pro does not shut down with Nokia Internet Modem CS-15
Hello everyone! It is unfortunate that my first post here is regarding a problem! I am completely new to the whole Apple Mac thing but decided to buy a new 17 inch i7 Macbook Pro. Unfortunately a problem occurred when using the Nokia Internet Stick (
-
Can I install a Samsung 840 Pro 256GB into the new iMac late 2013?
Hi There, 1) Can a Samsung 840 Pro 256GB SSD be installed in the new iMac late 2013 model? (My plan is to remove the existing 1TB HDD and replace with the Samsung SSD) 1.1) I have heard somewhere, even though it will fit, Apple's logic board firm
-
Hi there, I'm busy with a documentary (90min cinema/tv production) since one year. I started with CS06 on a Macbook pro (maverick, 15' 2,8GHZ). Everything was fine and I barely never had a problem - despite the fact that the computer was quiet slow.
-
can I remove adobe acrobat x standard and install adobe acrobat 7 on Windows 7
-
[sloved] groups problem
I accidentally removed my groups with usermod, so that now I'm only in group archnildon: -G, --groups GROUP1[,GROUP2,...[,GROUPN]]] A list of supplementary groups which the user is also a member of. Each group is separated from the next by