Help to rewrite delete query
delete from load.load_instance l where l.activity_id is null or l.activity_id not in ( select activity_id from activity a where a.reported_activity_flag = 'Y' )Edited by: vijayp on Dec 8, 2010 12:13 PM
So, it's a tuning request.
Then you need to post relevant details, like your database version, indexes, execution plan, trace/tkprof results and so on.
Here are two step by step instructions:
HOW TO: Post a SQL statement tuning request - template posting
When your query takes too long ...
And a wild shot, without knowing your database version: perhaps using not exists instead of not in makes a difference...
delete
from load.load_instance l
where l.activity_id is null
or not exists ( select null
from activity a
where a.reported_activity_flag = 'Y'
and l.activity_id = a.activity_id
);However, this might give different results regarding the number of records that will get deleted, so you need to test that thoroughly.
See http://asktom.oracle.com/pls/apex/f?p=100:11:0::::P11_QUESTION_ID:442029737684
Similar Messages
-
Help to rewrite the query --performance issue
Hi ,
Please help to rewrite the query since it's performance is not good.Especially second inline query(CASE statements are therein select caluse ..)is taking more cost.
Database Oracle Database 10g Enterprise Edition Release 10.2.0.2.0 - 64bi
SELECT *
FROM
(SELECT q.*,
COUNT(*) OVER() AS record_count,
ROWNUM AS row_num
FROM
(SELECT ExName.examiner_code,
examiner_name,
:v_year,
:v_month,
count_fb,
NVL(count_entered_fb, 0) count_entered_fb,
NVL(count_sent_fb, 0) count_sent_fb,
NVL(count_edited_fb, 0) count_edited_fb,
NVL(count_complete_fb, 0) count_complete_fb,
NVL(count_withibcardiff_fb, 0) count_withibcardiff_fb
FROM
(SELECT examiner_code,
COUNT(*) AS count_fb
FROM
(SELECT
examiner_code,
paper_code,
assessment_school
FROM
( SELECT DISTINCT ce.examiner_code,
ce.paper_code,
ce.assessment_school
FROM
(SELECT
DISTINCT assessment_school,
paper_code,
examiner_code
FROM candidate_examiner_allocation cea
WHERE cea.element = 'Moderation of IA'
AND cea.year = :v_year
AND cea.month = :v_month
) ce,
subject_group sg,
subject_component sc
WHERE (:v_padded_examiner_code IS NULL
OR ce.examiner_code = :v_padded_examiner_code)
AND (:v_subject_group IS NULL
OR sg.group_number = :v_subject_group)
AND sg.year = :v_year
AND sg.month = :v_month
AND sc.year = :v_year
AND sc.month = :v_month
AND sc.paper_code = ce.paper_code
AND sc.subject = sg.subject
AND sc.lvl = sg.lvl
AND (:v_subject IS NULL
OR sc.subject = :v_subject)
AND (:v_lvl IS NULL
OR sc.lvl = :v_lvl)
) ea
GROUP BY examiner_code
) ExName,
(SELECT examiner_code,
COUNT(
CASE
WHEN UPPER(wfi.status) = 'ENTERED'
THEN 1
ELSE NULL
END) AS count_entered_fb,
COUNT(
CASE
WHEN UPPER(wfi.status) = 'SENT'
THEN 1
ELSE NULL
END) AS count_sent_fb,
COUNT(
CASE
WHEN UPPER(wfi.status) = 'EDITED'
THEN 1
ELSE NULL
END) AS count_edited_fb,
COUNT(
CASE
WHEN UPPER(wfi.status) = 'COMPLETE'
THEN 1
ELSE NULL
END) AS count_complete_fb,
COUNT(
CASE
WHEN UPPER(wfi.status) = 'WITH IBCARDIFF'
THEN 1
ELSE NULL
END) AS count_withibcardiff_fb
FROM ia_instances ia1,
workflow_instance wfi
WHERE wfi.instance_id = ia1.workflow_instance_id
AND ia1.year = :v_year
AND ia1.month = :v_month
GROUP BY ia1.year,
ia1.month,
examiner_code
) iaF,
(SELECT person_code,
title
|| ' '
|| firstname
|| ' '
|| lastname AS examiner_name
FROM person
WHERE :v_examiner_name IS NULL
OR UPPER(title
|| ' '
|| firstname
|| ' '
|| lastname) LIKE :v_search_examiner_name
) P
WHERE ExName.examiner_code = iaF.examiner_code (+)
AND ExName.examiner_code = p.person_code
ORDER BY ExName.examiner_code
) q
) rc
WHERE row_num >= :v_start_row
AND row_num <= (:v_start_row+(:v_max_row-1));explain plan
line 1: SQLPLUS Command Skipped: set linesize 130
line 2: SQLPLUS Command Skipped: set pagesize 0
PLAN_TABLE_OUTPUT
Plan hash value: 1581970599
| Id | Operation | Name | Rows | Bytes |TempSpc| Cost (%CPU)| Time |
| 0 | SELECT STATEMENT | | 1 | 276 | | 2187 (6)| 00:00:34 |
|* 1 | FILTER | | | | | | |
|* 2 | VIEW | | 1 | 276 | | 2187 (6)| 00:00:34 |
| 3 | WINDOW BUFFER | | 1 | 250 | | 2187 (6)| 00:00:34 |
| 4 | COUNT | | | | | | |
| 5 | VIEW | | 1 | 250 | | 2187 (6)| 00:00:34 |
| 6 | SORT ORDER BY | | 1 | 119 | | 2187 (6)| 00:00:34 |
| 7 | NESTED LOOPS | | 1 | 119 | | 2186 (6)| 00:00:34 |
|* 8 | HASH JOIN OUTER | | 1 | 92 | | 2185 (6)| 00:00:34 |
| 9 | VIEW | | 1 | 20 | | 51 (4)| 00:00:01 |
| 10 | SORT GROUP BY | | 1 | 7 | | 51 (4)| 00:00:01 |
| 11 | VIEW | | 1 | 7 | | 51 (4)| 00:00:01 |
| 12 | SORT UNIQUE | | 1 | 127 | | 51 (4)| 00:00:01 |
| 13 | NESTED LOOPS | | 1 | 127 | | 50 (2)| 00:00:01 |
|* 14 | HASH JOIN | | 1 | 68 | | 44 (3)| 00:00:01 |
|* 15 | TABLE ACCESS BY INDEX ROWID| SUBJECT_COMPONENT | 13 | 520 | | 40 (0)| 00:00:01 |
|* 16 | INDEX RANGE SCAN | SUBJECT_COMPONENT_ASSESS_TYPE | 1059 | | | 9 (0)| 00:00:01 |
|* 17 | INDEX RANGE SCAN | SUBJECT_GROUP_PK | 41 | 1148 | | 3 (0)| 00:00:01 |
|* 18 | INDEX RANGE SCAN | CEA_AUTOMATIC_ALLOCATION_STATS | 5 | 295 | | 6 (0)| 00:00:01 |
| 19 | VIEW | | 679 | 48888 | | 2133 (6)| 00:00:33 |
| 20 | SORT GROUP BY | | 679 | 25123 | | 2133 (6)| 00:00:33 |
|* 21 | HASH JOIN | | 52408 | 1893K| 1744K| 2126 (6)| 00:00:33 |
| 22 | TABLE ACCESS BY INDEX ROWID | IA_INSTANCES | 52408 | 1125K| | 688 (1)| 00:00:11 |
|* 23 | INDEX RANGE SCAN | IND_IA_INSTANCES | 49077 | | | 137 (2)| 00:00:03 |
| 24 | TABLE ACCESS FULL | WORKFLOW_INSTANCE | 1075K| 15M| | 960 (7)| 00:00:15 |
|* 25 | TABLE ACCESS BY INDEX ROWID | PERSON | 1 | 27 | | 1 (0)| 00:00:01 |
|* 26 | INDEX UNIQUE SCAN | PERSON_PK | 1 | | | 0 (0)| 00:00:01 |
Predicate Information (identified by operation id):
1 - filter(TO_NUMBER(:V_START_ROW)<=TO_NUMBER(:V_START_ROW)+(TO_NUMBER(:V_MAX_ROW)-1))
2 - filter("ROW_NUM">=TO_NUMBER(:V_START_ROW) AND "ROW_NUM"<=TO_NUMBER(:V_START_ROW)+(TO_NUMBER(:V_MAX_ROW)-1))
8 - access("EXNAME"."EXAMINER_CODE"="IAF"."EXAMINER_CODE"(+))
14 - access("SC"."SUBJECT"="SG"."SUBJECT" AND "SC"."LVL"="SG"."LVL")
15 - filter((:V_SUBJECT IS NULL OR "SC"."SUBJECT"=:V_SUBJECT) AND ("SC"."LVL"=:V_LVL OR :V_LVL IS NULL))
16 - access("SC"."YEAR"=TO_NUMBER(:V_YEAR) AND "SC"."MONTH"=:V_MONTH)
17 - access("SG"."YEAR"=TO_NUMBER(:V_YEAR) AND "SG"."MONTH"=:V_MONTH)
filter(:V_SUBJECT_GROUP IS NULL OR "SG"."GROUP_NUMBER"=TO_NUMBER(:V_SUBJECT_GROUP))
18 - access("CEA"."YEAR"=TO_NUMBER(:V_YEAR) AND "CEA"."MONTH"=:V_MONTH AND "SC"."PAPER_CODE"="PAPER_CODE" AND
"CEA"."ELEMENT"='Moderation of IA')
filter("CEA"."ELEMENT"='Moderation of IA' AND (:V_PADDED_EXAMINER_CODE IS NULL OR
"EXAMINER_CODE"=:V_PADDED_EXAMINER_CODE))
21 - access("WFI"."INSTANCE_ID"="IA1"."WORKFLOW_INSTANCE_ID")
23 - access("IA1"."YEAR"=TO_NUMBER(:V_YEAR) AND "IA1"."MONTH"=:V_MONTH)
25 - filter(:V_EXAMINER_NAME IS NULL OR UPPER("TITLE"||' '||"FIRSTNAME"||' '||"LASTNAME") LIKE :V_SEARCH_EXAMINER_NAME)
26 - access("EXNAME"."EXAMINER_CODE"="PERSON_CODE")
53 rows selectedHi,
please find the below rigjt explan paln.
PLAN_TABLE_OUTPUT
SQL_ID 2ct41vyyzqyh7, child number 0
SELECT * FROM (SELECT q.*, COUNT(*) OVER() AS record_count, ROWNUM AS row_num FROM (SELECT
ExName.examiner_code, examiner_name, :v_year, :v_month, count_fb, NVL(count_entered_fb,
0) count_entered_fb, NVL(count_sent_fb, 0) count_sent_fb, NVL(count_edited_fb, 0) count_edited_fb,
NVL(count_complete_fb, 0) count_complete_fb, NVL(count_withibcardiff_fb, 0) count_withibcardiff_fb FROM
(SELECT examiner_code, COUNT(*) AS count_fb FROM (SELECT
examiner_code, paper_code, assessment_school FROM ( SELECT DISTINCT
ce.examiner_code, ce.paper_code, ce.assessment_school FROM (SELECT
DISTINCT assessment_school,
paper_code, examiner
Plan hash value: 651311258
| Id | Operation | Name | Rows | Bytes |TempSpc| Cost (%CPU)| Time |
| 0 | SELECT STATEMENT | | | | | 2785 (100)| |
|* 1 | FILTER | | | | | | |
|* 2 | VIEW | | 4 | 1104 | | 2785 (7)| 00:00:43 |
| 3 | WINDOW BUFFER | | 4 | 1000 | | 2785 (7)| 00:00:43 |
| 4 | COUNT | | | | | | |
| 5 | VIEW | | 4 | 1000 | | 2785 (7)| 00:00:43 |
| 6 | NESTED LOOPS | | 4 | 476 | | 2785 (7)| 00:00:43 |
| 7 | MERGE JOIN OUTER | | 4 | 368 | | 2781 (7)| 00:00:43 |
| 8 | VIEW | | 4 | 80 | | 72 (3)| 00:00:02 |
| 9 | SORT GROUP BY | | 4 | 28 | | 72 (3)| 00:00:02 |
| 10 | VIEW | | 4 | 28 | | 72 (3)| 00:00:02 |
| 11 | SORT UNIQUE | | 4 | 508 | | 72 (3)| 00:00:02 |
| 12 | NESTED LOOPS | | 4 | 508 | | 71 (2)| 00:00:02 |
|* 13 | HASH JOIN | | 1 | 68 | | 44 (3)| 00:00:01 |
|* 14 | TABLE ACCESS BY INDEX ROWID| SUBJECT_COMPONENT | 13 | 520 | | 40 (0)| 00:00:01 |
|* 15 | INDEX RANGE SCAN | SUBJECT_COMPONENT_ASSESS_TYPE | 1059 | | | 9 (0)| 00:00:01 |
|* 16 | INDEX RANGE SCAN | SUBJECT_GROUP_PK | 41 | 1148 | | 3 (0)| 00:00:01 |
|* 17 | INDEX RANGE SCAN | CEA_AUTOMATIC_ALLOCATION_STATS | 30 | 1770 | | 27 (0)| 00:00:01 |
|* 18 | SORT JOIN | | 576 | 41472 | | 2709 (7)| 00:00:42 |
| 19 | VIEW | | 576 | 41472 | | 2708 (7)| 00:00:42 |
| 20 | SORT GROUP BY | | 576 | 21312 | | 2708 (7)| 00:00:42 |
|* 21 | HASH JOIN | | 52408 | 1893K| 1744K| 2701 (7)| 00:00:41 |
|* 22 | TABLE ACCESS FULL | IA_INSTANCES | 52408 | 1125K| | 1263 (6)| 00:00:20 |
| 23 | TABLE ACCESS FULL | WORKFLOW_INSTANCE | 1075K| 15M| | 960 (7)| 00:00:15 |
|* 24 | TABLE ACCESS BY INDEX ROWID | PERSON | 1 | 27 | | 1 (0)| 00:00:01 |
|* 25 | INDEX UNIQUE SCAN | PERSON_PK | 1 | | | 0 (0)| |
Predicate Information (identified by operation id):
1 - filter(TO_NUMBER(:V_START_ROW)<=TO_NUMBER(:V_START_ROW)+(TO_NUMBER(:V_MAX_ROW)-1))
2 - filter(("ROW_NUM">=TO_NUMBER(:V_START_ROW) AND "ROW_NUM"<=TO_NUMBER(:V_START_ROW)+(TO_NUMBER(:V_MAX_ROW)-1)))
13 - access("SC"."SUBJECT"="SG"."SUBJECT" AND "SC"."LVL"="SG"."LVL")
14 - filter(((:V_SUBJECT IS NULL OR "SC"."SUBJECT"=:V_SUBJECT) AND ("SC"."LVL"=:V_LVL OR :V_LVL IS NULL)))
15 - access("SC"."YEAR"=TO_NUMBER(:V_YEAR) AND "SC"."MONTH"=:V_MONTH)
16 - access("SG"."YEAR"=TO_NUMBER(:V_YEAR) AND "SG"."MONTH"=:V_MONTH)
filter((:V_SUBJECT_GROUP IS NULL OR "SG"."GROUP_NUMBER"=TO_NUMBER(:V_SUBJECT_GROUP)))
17 - access("CEA"."YEAR"=TO_NUMBER(:V_YEAR) AND "CEA"."MONTH"=:V_MONTH AND "SC"."PAPER_CODE"="PAPER_CODE" AND
"CEA"."ELEMENT"='Moderation of IA')
filter(("CEA"."ELEMENT"='Moderation of IA' AND (:V_PADDED_EXAMINER_CODE IS NULL OR
"EXAMINER_CODE"=:V_PADDED_EXAMINER_CODE)))
18 - access("EXNAME"."EXAMINER_CODE"="IAF"."EXAMINER_CODE")
filter("EXNAME"."EXAMINER_CODE"="IAF"."EXAMINER_CODE")
21 - access("WFI"."INSTANCE_ID"="IA1"."WORKFLOW_INSTANCE_ID")
22 - filter(("IA1"."MONTH"=:V_MONTH AND "IA1"."YEAR"=TO_NUMBER(:V_YEAR)))
24 - filter((:V_EXAMINER_NAME IS NULL OR UPPER("TITLE"||' '||"FIRSTNAME"||' '||"LASTNAME") LIKE :V_SEARCH_EXAMINER_NAME))
25 - access("EXNAME"."EXAMINER_CODE"="PERSON_CODE")
66 rows selected -
Hello
I have one query taking time to fetch the records. Table contains just 40,000 thousands records but lots of case statement in the query, I just remove lots of case statement there are lot more...
Can you please help me out to rewrite the query to fetch the records faster. Also Right now there are no indexes on the table....
SELECT O.cn,
O.BEN_LAST_NAME,
O.BEN_FIRST_NAME,
O.BEN_MI,
O.SSN,
O.DOB,
O.SEX,
CASE
WHEN O.SEX = 'F' AND O.AGE BETWEEN 00 AND 34 THEN
1
ELSE
0
END AS AGE_GROUP0_34_F,
CASE
WHEN O.SEX = 'F' AND O.AGE BETWEEN 35 AND 44 THEN
1
ELSE
0
END AS AGE_GROUP35_44_F,
CASE
WHEN O.SEX = 'F' AND O.AGE BETWEEN 45 AND 54 THEN
1
ELSE
0
END AS AGE_GROUP45_54_F,
CASE
WHEN O.SEX = 'F' AND O.AGE BETWEEN 55 AND 59 THEN
1
ELSE
0
END AS AGE_GROUP55_59_F,
CASE
WHEN O.SEX = 'F' AND O.AGE BETWEEN 60 AND 64 THEN
1
ELSE
0
END AS AGE_GROUP60_64_F,
CASE
WHEN O.SEX = 'F' AND O.AGE BETWEEN 65 AND 69 THEN
1
ELSE
0
END AS AGE_GROUP65_69_F,
CASE
WHEN O.SEX = 'F' AND O.AGE BETWEEN 70 AND 74 THEN
1
ELSE
0
END AS AGE_GROUP70_74_F,
CASE
WHEN O.SEX = 'F' AND O.AGE BETWEEN 75 AND 79 THEN
1
ELSE
0
END AS AGE_GROUP75_79_F,
CASE
WHEN O.SEX = 'F' AND O.AGE BETWEEN 80 AND 84 THEN
1
ELSE
0
END AS AGE_GROUP80_84_F,
CASE
WHEN O.SEX = 'F' AND O.AGE BETWEEN 85 AND 89 THEN
1
ELSE
0
END AS AGE_GROUP85_89_F,
CASE
WHEN O.SEX = 'F' AND O.AGE BETWEEN 90 AND 94 THEN
1
ELSE
0
END AS AGE_GROUP90_94_F,
CASE
WHEN O.SEX = 'F' AND O.AGE BETWEEN 95 AND 00 THEN
1
ELSE
0
END AS AGE_GROUP95_GT_F,
CASE
WHEN O.SEX = 'M' AND O.AGE BETWEEN 00 AND 34 THEN
1
ELSE
0
END AS AGE_GROUP0_34_M,
CASE
WHEN O.SEX = 'M' AND O.AGE BETWEEN 35 AND 44 THEN
1
ELSE
0
END AS AGE_GROUP35_44_M,
CASE
WHEN O.SEX = 'M' AND O.AGE BETWEEN 45 AND 54 THEN
1
ELSE
0
END AS AGE_GROUP45_54_M,
CASE
WHEN O.SEX = 'M' AND O.AGE BETWEEN 45 AND 59 THEN
1
ELSE
0
END AS AGE_GROUP55_59_M,
CASE
WHEN O.SEX = 'M' AND O.AGE BETWEEN 60 AND 64 THEN
1
ELSE
0
END AS AGE_GROUP60_64_M,
CASE
WHEN O.SEX = 'M' AND O.AGE BETWEEN 65 AND 69 THEN
1
ELSE
0
END AS AGE_GROUP65_69_M,
CASE
WHEN O.SEX = 'M' AND O.AGE BETWEEN 70 AND 74 THEN
1
ELSE
0
END AS AGE_GROUP70_74_M,
CASE
WHEN O.SEX = 'M' AND O.AGE BETWEEN 75 AND 79 THEN
1
ELSE
0
END AS AGE_GROUP75_79_M,
CASE
WHEN O.SEX = 'M' AND O.AGE BETWEEN 80 AND 84 THEN
1
ELSE
0
END AS AGE_GROUP80_84_M,
CASE
WHEN O.SEX = 'M' AND O.AGE BETWEEN 85 AND 89 THEN
1
ELSE
0
END AS AGE_GROUP85_89_M,
CASE
WHEN O.SEX = 'M' AND O.AGE BETWEEN 90 AND 94 THEN
1
ELSE
0
END AS AGE_GROUP90_94_M,
CASE
WHEN O.SEX = 'M' AND O.AGE BETWEEN 95 AND 00 THEN
1
ELSE
0
END AS AGE_GROUP95_GT_M,
O.YEAR,
CASE WHEN EXISTS (SELECT m1.hcc_model_category1 FROM HCC_MODEL_DIAGNOSIS M1 , HCC_MODEL_DIAGNOSIS_MAPPING HM
,mor222 m2 WHERE m1.map_id = hm.map_id_ref
AND m2.YEAR = hm.YEAR
AND o.cn = m2.cn
AND o.YEAR = hm.YEAR
AND m1.hcc_model_category1 = 1
AND m2.diag_code = m1.icd9cmscode) THEN 1 ELSE 0 END AS DISEASE_COEF_HCC1,
CASE WHEN EXISTS (SELECT m1.hcc_model_category1 FROM HCC_MODEL_DIAGNOSIS M1 , HCC_MODEL_DIAGNOSIS_MAPPING HM
,mor222 m2 WHERE m1.map_id = hm.map_id_ref
AND m2.YEAR = hm.YEAR
AND o.cn = m2.cn
AND o.YEAR = hm.YEAR
AND m1.hcc_model_category1 = 2
AND m2.diag_code = m1.icd9cmscode) THEN 1 ELSE 0 END AS DISEASE_COEF_HCC2,
CASE WHEN EXISTS (SELECT m1.hcc_model_category1 FROM HCC_MODEL_DIAGNOSIS M1 , HCC_MODEL_DIAGNOSIS_MAPPING HM
,mor222 m2 WHERE m1.map_id = hm.map_id_ref
AND m2.YEAR = hm.YEAR
AND o.cn = m2.cn
AND o.YEAR = hm.YEAR
AND m1.hcc_model_category1 = 5
AND m2.diag_code = m1.icd9cmscode) THEN 1 ELSE 0 END AS DISEASE_COEF_HCC5,
CASE WHEN EXISTS (SELECT m1.hcc_model_category1 FROM HCC_MODEL_DIAGNOSIS M1 , HCC_MODEL_DIAGNOSIS_MAPPING HM
,mor222 m2 WHERE m1.map_id = hm.map_id_ref
AND m2.YEAR = hm.YEAR
AND o.cn = m2.cn
AND o.YEAR = hm.YEAR
AND m1.hcc_model_category1 = 7
AND m2.diag_code = m1.icd9cmscode) THEN 1 ELSE 0 END AS DISEASE_COEF_HCC7,
CASE WHEN EXISTS (SELECT m1.hcc_model_category1 FROM HCC_MODEL_DIAGNOSIS M1 , HCC_MODEL_DIAGNOSIS_MAPPING HM
,mor222 m2 WHERE m1.map_id = hm.map_id_ref
AND m2.YEAR = hm.YEAR
AND o.cn = m2.cn
AND o.YEAR = hm.YEAR
AND m1.hcc_model_category1 = 8
AND m2.diag_code = m1.icd9cmscode) THEN 1 ELSE 0 END AS DISEASE_COEF_HCC8
FROM (SELECT T.cn,
T.BEN_LAST_NAME,
T.BEN_FIRST_NAME,
T.BEN_MI,
T.SSN,
TO_DATE(T.DOB, 'YYYYMMDD') AS DOB,
T.SEX,
TRUNC(MONTHS_BETWEEN(TO_DATE('01/01/' || T.YEAR, 'MM/DD/YYYY'),
TO_DATE(T.DOB, 'YYYYMMDD')) / 12) AS AGE,
T.YEAR
FROM mor111 T ) O Thanks in advance!
Kind regards,
NikOk, so I am going to be a little bit kinder then your first reply, but not much.
From what can tell you are doing medical management and are trying to select by AGE/GENDER CELLS and this is common when trying to deal with RBRVS.
This is by far some of the worst sql I have ever seen, sorry but it just is.
So please report this either as a new post or as a reply and:
1. At least post the table definitions and if you can some sample data.
2. Get rid of almost all the case selectors.
3. Describe the output you need.
As it is this is unreadable.
After that we can talk more.
Edited by: FlyingGuy on Oct 11, 2011 5:13 PM -
Help!! -- DELETE query
Hi There
I need your help in creating a SQL query. The situation is as follows:
I have three tables in a database (Team, Entry, Athlete). They are linked as follows:
TEAM ATHLETE ENTRY
TeamID ... AthleteID ... EntryID
Name . LastName . EventID
Sname . FirstName ....AthleteID
Tel .......TeamID LaneI need to do a DELETE query where I delete all records where the TeamID field equals a variable named A.
Both Team and Athlete includes a field named TeamID so that part is easy.
The trick is where I need to delete the records in the table named Entry. This table does not include a field named TeamID. It does include a field named AthleteID though. So, what needs to happen is I have to first do a query to find a list of records in Athlete whose TeamID is equal to A. From that list it needs to return all the AthleteID values. Then I need a query that will delete all the records in Event that contain those AthleteID's.
I hope this makes sense. Please tell me if I need to explain something better!
Hope to hear from you soon.
Kind regards,
ComlinkProbably depends on the actual database....
delete from entry
where athleteID in (select AtheletID from athelete where TeamId=A) -
Help Required(Rewriting the query to reduce steps)
With and Without Group ID,I am populating a value into a column,Can anyone please help to write the same query in an other way.This is a sample column.Likewise,there are 5 more columns to be populated.So that I have to write 2 left outer joins for a single column with a little difference.
SELECT
CASE
WHEN T6.ACTUAL_FUNCTION IS NOT NULL
THEN T6.ACTUAL_FUNCTION
WHEN T10.ACTUAL_FUNCTION IS NOT NULL
THEN T10.ACTUAL_FUCNTION
ELSE T5.ACTUAL_FUCNTION
END AF_NOM_PRE_GTEES
FROM
ABC_WT17 T1
INNER JOIN
ABC_CUSTOMER_WT01 T3
ON T1.ORIGINAL_SDS_PARTY_IDR=T3.ORIGINAL_SDS_PARTY_IDR
AND T1.IDR_TYPE_CODE=T3.IDR_TYPE_CODE
LEFT OUTER JOIN /* This is the condition with group ID*/
RESIDUAL_CONTROL T6
ON
T1.NOM_PRE_GTEES = T6.VALUE_MAX
OR
T1.NOM_PRE_GTEES > T6.VALUE_GREATER_THAN
AND
T1.NOM_PRE_GTEES < T6.VALUE_MAX
AND
_ T1.GROUP_ID = T6.GROUP_ID_
AND
T6.FALLBACK_IND = ‘N’
LEFT OUTER JOIN /* this is the condition without Group ID*/
RESIDUAL_CONTROL T10
ON
T1.NOM_PRE_GTEES = T10.VALUE_MAX
OR
T1.NOM_PRE_GTEES > T10.VALUE_GREATER_THAN
AND
T1.NOM_PRE_GTEES < T10.VALUE_MAX
AND
T10.FALLBACK_IND = ‘N’
CROSS JOIN
RESIDUAL_CONTROL T5
ON T5.FALLBACK_IND = ‘Y’
Thanks in advance.KVB wrote:
With and Without Group ID,I am populating a value into a column,Can anyone please help to write the same query in an other way.This is a sample column.Likewise,there are 5 more columns to be populated.So that I have to write 2 left outer joins for a single column with a little difference.
SELECT
CASE
WHEN T6.ACTUAL_FUNCTION IS NOT NULL
THEN T6.ACTUAL_FUNCTION
WHEN T10.ACTUAL_FUNCTION IS NOT NULL
THEN T10.ACTUAL_FUCNTION
ELSE T5.ACTUAL_FUCNTION
END AF_NOM_PRE_GTEES
FROM
ABC_WT17 T1
INNER JOIN
ABC_CUSTOMER_WT01 T3
ON T1.ORIGINAL_SDS_PARTY_IDR=T3.ORIGINAL_SDS_PARTY_IDR
AND T1.IDR_TYPE_CODE=T3.IDR_TYPE_CODE
LEFT OUTER JOIN /* This is the condition with group ID*/
RESIDUAL_CONTROL T6
ON
T1.NOM_PRE_GTEES = T6.VALUE_MAX
OR
T1.NOM_PRE_GTEES > T6.VALUE_GREATER_THAN
AND
T1.NOM_PRE_GTEES < T6.VALUE_MAX
AND
_ T1.GROUP_ID = T6.GROUP_ID_
AND
T6.FALLBACK_IND = ‘N’
LEFT OUTER JOIN /* this is the condition without Group ID*/
RESIDUAL_CONTROL T10
ON
T1.NOM_PRE_GTEES = T10.VALUE_MAX
OR
T1.NOM_PRE_GTEES > T10.VALUE_GREATER_THAN
AND
T1.NOM_PRE_GTEES < T10.VALUE_MAX
AND
T10.FALLBACK_IND = ‘N’
CROSS JOIN
RESIDUAL_CONTROL T5
ON T5.FALLBACK_IND = ‘Y’
Thanks in advance.Thread: HOW TO: Post a SQL statement tuning request - template posting
HOW TO: Post a SQL statement tuning request - template posting -
I need a help on Join please or anybody help to rewrite the query
select
x.QUEST_DESC,y.QUES_RESPONSE, y.user_id from
(select c.QUES_CODE, c.QUEST_DESC, null user_id from CLINICAL_HISTORY_QUESTIONS c where c.CLINICAL_TYPE_CODE=2) x,
(select a.QUEST_CODE, a.QUEST_RESPONSE, a.user_id from PATIENT_CLINICAL_HISTORIES a where a.CLINICAL_TYPE_CODE=2 and a.user_ID=88) y
where x.QUEST_CODE =y.QUEST_CODE(+)
Is there any way I can display same user_ID 88 on the null USER_ID (Joined one)
my result is
QUEST_DESC QUEST_RESPONSE USER_ID
Fibrostenotic U 88
Inflammatory U 88
Int Penetrating/Perforating U 88
Perianal Perforating Disease U 88
Uc Like U 88
Iv Therapy
Fistula
Bleeding
Osteopenia
Sibo
Urgency
Extraintestinal Sx
Steroid Dependent
Immunosuppressive Tx
Fever/Chills
Obstructive Sx
Stool Consistency
Adb Pain
Other
Growth
Osteoporosis
Stool Frequency
Flare Of Disease
Edited by: Paul Vellackel on Jul 2, 2010 3:20 PM
Edited by: Paul Vellackel on Jul 2, 2010 3:55 PMsigh
What we were asking you is to post data we can work with rightaway, so CREATE TABLE statement, and INSERT INTO statement. So: not output, but statements...
Since I'm in a good mood (we're in the semi finals ;) ), here's an example of how you should post your data:
create table a1 as
select 1 quest_code, 'Fibrostenotic' quest_desc from dual union
select 2, 'Inflammatory' from dual union
select 3, 'Int Penetrating/Perforating' from dual union
select 4, 'Perianal Perforating Disease' from dual union
select 5, 'Uc Like' from dual union
select 6, 'Flare Of Disease' from dual union
select 7, 'Immunosuppressive Tx' from dual union
select 8, 'Iv Therapy' from dual union
select 9, 'Stool Consistency' from dual union
select 10, 'Urgency' from dual union
select 11, 'Stool Frequency' from dual union
select 12, 'Bleeding' from dual union
select 13, 'Adb Pain' from dual union
select 14, 'Fever/Chills' from dual union
select 15, 'Fistula' from dual union
select 16, 'Obstructive Sx' from dual union
select 17, 'Extraintestinal Sx' from dual union
select 18, 'Steroid Dependent' from dual union
select 19, 'Sibo' from dual union
select 20, 'Osteoporosis' from dual union
select 21, 'Osteopenia' from dual union
select 22, 'Growth' from dual union
select 23, 'Other' from dual;
create table a2 as
select 1 quest_code, 'U' quest_response, 88 user_id from dual union
select 2, 'U', 88 from dual union
select 3, 'U', 88 from dual union
select 4, 'U', 88 from dual union
select 5, 'U', 88 from dual;
create table a3 as
select 'testuserb' user_name, 88 user_id from dual;Posted like that, we can copy+paste and try to help you rightaway instead of waisting time formatting, putting quotes right etc. etc.
Also use the {noformat}{noformat} tag when you post an example.
That way it will stay formatted and indented.
So, when you type: {noformat}select *
from dual;{noformat}
it will appear as: select *
from dual;when you post it.
Finally, perhaps you could try something like this:SQL> select a1.quest_desc
2 , a2.quest_response
3 , case
4 when (select a3.user_id
5 from a3
6 where a3.user_id = a2.user_id) is not null
7 then (select a3.user_id
8 from a3
9 where a3.user_id = a2.user_id)
10 else (select a3.user_id
11 from a3
12 where a3.user_name = 'testuserb')
13 end user_id
14 from a1
15 , a2
16 where a1.quest_code = a2.quest_code(+);
QUEST_DESC Q USER_ID
Fibrostenotic U 88
Inflammatory U 88
Int Penetrating/Perforating U 88
Perianal Perforating Disease U 88
Uc Like U 88
Iv Therapy 88
Fistula 88
Bleeding 88
Osteopenia 88
Sibo 88
Urgency 88
Extraintestinal Sx 88
Steroid Dependent 88
Immunosuppressive Tx 88
Fever/Chills 88
Obstructive Sx 88
Stool Consistency 88
Adb Pain 88
Other 88
Growth 88
Osteoporosis 88
Stool Frequency 88
Flare Of Disease 88
23 rows selected. -
Pls help to rewrite the query in another method .
Insert into bl_voyage_details (BVD_COMPANY,BVD_REFERENCE,BVD_SERIAL,BVD_CARRIER,BVD_VESSEL,BVD_VOY,BVD_LOCATION,BVD_TYPE,BVD_CRT_BY,BVD_CRT_ON,
BVD_UPD_BY,BVD_UPD_ON,BVD_STATUS,BVD_STATUS_DATE,BVD_STATUS_BY )
Values (Select bdl_company,bdl_reference,
*(select nvl(max(bvd_serial),0)+1 from bl_voyage_details)*
,bdl_carrier,bdl_vessel,bdl_voy,bdl_location,bdl_type,user,sysdate,user,'0',sysdate,sysdate from bl_details)
Insert into bl_voyage_details (BVD_COMPANY,BVD_REFERENCE,BVD_SERIAL,BVD_CARRIER,BVD_VESSEL,BVD_VOY,BVD_LOCATION,BVD_TYPE,BVD_CRT_BY,BVD_CRT_ON,
BVD_UPD_BY,BVD_UPD_ON,BVD_STATUS,BVD_STATUS_DATE,BVD_STATUS_BY )
Values (Select bdl_company,bdl_reference,
*(select nvl(max(bvd_serial),0)+1 from bl_voyage_details where (BVD_COMPANY,BVD_REFERENCE)in (bdl_company,bdl_reference)* )
,bdl_carrier,bdl_vessel,bdl_voy,bdl_location,bdl_type,user,sysdate,user,'0',sysdate,sysdate from bl_details)
Edited by: Rinz on Apr 27, 2010 3:57 PM
Edited by: Rinz on Apr 27, 2010 3:57 PMSeems related to your previous question ( Procedure creation )
Is there any reason why you couldn't just use a sequence:
insert into bl_voyage_details
(bvd_company,
bvd_reference,
bvd_serial,
bvd_carrier,
bvd_vessel,
bvd_voy,
bvd_location,
bvd_type,
bvd_crt_by,
bvd_crt_on,
bvd_upd_by,
bvd_upd_on,
bvd_status,
bvd_status_date,
bvd_status_by
select bdl_company,
bdl_reference,
some_sequence.nextval, --<< use a sequence
bdl_carrier,
bdl_vessel,
bdl_voy,
bdl_location,
bdl_type,
user,
sysdate,
user,
sysdate,
'0',
sysdate,
sysdate
from bl_details;Also:
To post formatted code, put the {noformat} {noformat}- tag before and after your examples.
When you post:
{noformat} select *
from dual;
{noformat}
it will appear as: select *
from dual;
on the forum.
The FAQ will tell you more: http://forums.oracle.com/forums/help.jspa -
Help with rewriting the query for faster execution.
Hello Everybody,
We are on Version
Oracle Database 10g Enterprise Edition Release 10.2.0.5.0 - 64bi
I am trying to get data from tab1 where col8 is equal to ' ' at the same time If we 2 or 3 records matched on col1 and col2 with different dates(col3) i am only interested in getting one record with the least date....
Here is the sample data...
Col1 col2 col3 COL4 COl5 Col6 COL7 COL8 COL9
12 1 17-JAN-13 1 5 7 9 1233333 25
10 2 16-JAN-13 2 5 7 9 1233333 25
10 2 14-JAN-13 2 5 7 9 1233333 25
16 6 16-JAN-13 6 5 7 9 1233333 28
16 6 09-OCT-12 5 5 7 9 1233333 29
16 6 15-JAN-13 6 5 7 9 1233333 28
17 5 09-OCT-12 5 5 7 9 1233333 29
17 5 16-JAN-13 6 5 7 9 1233333 28
17 5 10-OCT-12 5 5 7 9 1233333 29
I am expecting output like this only should pull records...with min or least date
Col1 col2 col3 COL4 COl5 Col6 COL7 COL8 COL9
10 2 14-JAN-13 2 5 7 9 1233333 25
16 6 09-OCT-12 5 5 7 9 1233333 29
17 5 09-OCT-12 5 5 7 9 1233333 29
Below query works and we have close to billion rows in a table but the where clause would filter out to 100 mill records.
and i am trying to see if there is an effecient way of writing this....we have an index on COL3.
Select col1,col2,col3,col4,col5,col6,col7,col8,col9 from(Selct of.,row_number() over (partition by col1,col2 order by col3 asc) as rnk
from tabl of where of.col8 = '1233333') where rnk = 1*
From the above query i get the below explain plan
| Id | Operation | Name | Rows | Bytes |TempSpc| Cost (%CPU)| Time | Pstart| Pstop |
| 0 | SELECT STATEMENT | | 1016M| 118G| | 13M (2)| 45:46:43 | | |
|* 1 | VIEW | | 1016M| 118G| | 13M (2)| 45:46:43 | | |
|* 2 | WINDOW SORT PUSHED RANK| | 1016M| 43G| 64G| 13M (2)| 45:46:43 | | |
| 3 | PARTITION LIST SINGLE | | 1016M| 43G| | 1878K (3)| 06:15:47 | 4 | 4 |
| 4 | TABLE ACCESS FULL | TAB1 | 1016M| 43G| | 1878K (3)| 06:15:47 | 4 | 4 |
Predicate Information (identified by operation id):
1 - filter("RNK"=1)
2 - filter(ROW_NUMBER() OVER ( PARTITION BY "COL1","COl2" ORDER BY "COl3")<=1)
17 rows selected
Thanks In Advance!
Edited by: 983949 on Jan 24, 2013 11:50 AM983949 wrote:
Hello Everybody,
I am trying to get data from tab1 where col8 is equal to ' ' at the same time.
If we 2 or 3 records matched on col1 and col2 with different dates(col3)
i am only interested in getting one record with the least date...
Below query works and we have close to billion rows in a table but the where clause would filter out to 100 mill records.
and i am trying to see if there is an effecient way of writing this....we have an index on COL3.
Select col1,col2,col3,col4,col5,col6,col7,col8,col9
from(Selct of.*,row_number() over (partition by col1,col2 order by col3 asc) as rnk
from tabl of where of.col8 = '1233333') where rnk = 1
Thanks In Advance!How do I ask a question on the forums?
SQL and PL/SQL FAQ -
Hi ,
Below query is taking more time (4mins) for 41 rows returning and there is no full table scan .Can some one help to rewrite the query.
SELECT
esma.candidate AS candidate_additional_sample,
ccr.raw_mark,
ccr.split_session_year AS year,
ccr.split_session_month AS month,
ccr.paper_code,
ccr.assessment_school AS school_code,
get_cand_session_number(ccr.split_session_year,ccr.split_session_month,ccr.candidate) AS candidate_session_number,
ccr.candidate AS candidate_code,
c.firstname AS candidate_firstname,
c.lastname AS candidate_lastname,
ema.moderator_code,
ema.examiner_code,
csr.self_taught
FROM
ibis.candidate_component_reg ccr
INNER JOIN ibis.candidate_examiner_allocation cea
ON ccr.split_session_year= cea.year
AND ccr.split_session_month=cea.month
AND ccr.assessment_school=cea.assessment_school
AND ccr.paper_code= cea.paper_code
AND ccr.candidate = cea.candidate
INNER JOIN ibis.examination_paper ep
ON ccr.split_session_year= ep.year
AND ccr.split_session_month=ep.month
AND ccr.paper_code=ep.paper_code
INNER JOIN ibis.examiner_moderator_allocation ema
ON ema.year =cea.year
AND ema.month =cea.month
AND ema.no_lang_code=ep.no_lang_code
AND ema.examiner_code=cea.examiner_code
AND ema.year =ccr.split_session_year
AND ema.month =ccr.split_session_month
INNER JOIN ibis.candidate_subject_registration csr
ON ccr.split_session_year=csr.year
AND ccr.split_session_month=csr.month
AND ccr.main_school=csr.main_school
AND ccr.candidate=csr.candidate
AND ccr.subject=csr.subject
AND ccr.subject_option=csr.subject_option
AND ccr.lvl=csr.lvl
AND ccr.language=csr.language
INNER JOIN ibis.candidate c
ON ccr.candidate=c.candidate
LEFT OUTER JOIN ibis.exam_sample_mark_additional esma
ON ccr.split_session_year = esma.year
AND ccr.split_session_month = esma.month
AND ep.no_lang_code = esma.nolang_code
AND ccr.candidate = esma.candidate
WHERE
ccr.split_session_year=:v_year
AND ccr.split_session_month=:v_month
AND ccr.subject=:v_subject
AND ccr.subject_option=nvl(:v_subject_option,ccr.subject_option)
AND ccr.language=nvl(:v_language, ccr.language)
AND ccr.component=:v_component
AND ccr.lvl=:v_lvl
AND ccr.raw_mark IS NOT NULL
AND cea.examiner_code = :v_examiner_code
AND ((ccr.sampled='Y'
AND csr.self_taught='N'
AND EXISTS (SELECT 1 FROM ibis.subject_component sc
WHERE sc.assessment_method_id = 11
AND sc.assessment_type='INTERNAL'
AND ccr.split_session_year=sc.year
AND ccr.split_session_month=sc.month
AND ccr.paper_code=sc.paper_code
AND ccr.subject=sc.subject
AND ccr.subject_option=sc.subject_option
AND ccr.lvl=sc.lvl
AND ccr.language=sc.language
AND ccr.component=sc.component)
AND NOT EXISTS (SELECT 1 FROM ibis.cw_portfolio_template cpt
WHERE ccr.split_session_year = cpt.year
AND ccr.split_session_month = cpt.month
AND ccr.subject = cpt.subject
AND ccr.subject_option = cpt.subject_option
AND ccr.component = cpt.component
AND cpt.combined = 'Y')
AND NOT EXISTS (SELECT 1 FROM ibis.school_sample_mark ssm
WHERE ssm.year= ccr.split_session_year
AND ssm.month = ccr.split_session_month
AND ssm.paper_code = ccr.paper_code
AND ssm.candidate =ccr.candidate
AND ssm.examiner_sample = 'Y'))
OR (ccr.sampled='N'
AND csr.self_taught='Y'
AND EXISTS (SELECT 1 FROM ibis.subject_component sc
WHERE sc.assessment_method_id = 11
AND ccr.split_session_year=sc.year
AND ccr.split_session_month=sc.month
AND ccr.paper_code=sc.paper_code
AND ccr.subject=sc.subject
AND ccr.subject_option=sc.subject_option
AND ccr.lvl=sc.lvl
AND ccr.language=sc.language
AND ccr.component=sc.component)
AND NOT EXISTS (SELECT 1 FROM ibis.cw_portfolio_template cpt
WHERE ccr.split_session_year = cpt.year
AND ccr.split_session_month = cpt.month
AND ccr.subject = cpt.subject
AND ccr.subject_option = cpt.subject_option
AND ccr.component = cpt.component
AND cpt.combined = 'Y'))
OR (ccr.sampled='N'
AND EXISTS (SELECT 1 FROM ibis.subject_component sc
WHERE sc.assessment_method_id = 11
AND ccr.split_session_year=sc.year
AND ccr.split_session_month=sc.month
AND ccr.paper_code=sc.paper_code
AND ccr.subject=sc.subject
AND ccr.subject_option=sc.subject_option
AND ccr.lvl=sc.lvl
AND ccr.language=sc.language
AND ccr.component=sc.component)
AND EXISTS (SELECT 1 FROM ibis.cw_portfolio_template cpt
WHERE ccr.split_session_year = cpt.year
AND ccr.split_session_month = cpt.month
AND ccr.subject = cpt.subject
AND ccr.subject_option = cpt.subject_option
AND ccr.component = cpt.component
AND cpt.combined = 'Y')));
explain plan
line 1: SQLPLUS Command Skipped: set linesize 130
line 2: SQLPLUS Command Skipped: set pagesize 0
PLAN_TABLE_OUTPUT
Plan hash value: 2594643366
| Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time |
| 0 | SELECT STATEMENT | | 2 | 1036 | 34 (3)| 00:00:01 |
|* 1 | FILTER | | | | | |
|* 2 | HASH JOIN OUTER | | 2 | 1036 | 34 (3)| 00:00:01 |
| 3 | VIEW | | 2 | 974 | 32 (0)| 00:00:01 |
| 4 | CONCATENATION | | | | | |
|* 5 | FILTER | | | | | |
|* 6 | TABLE ACCESS BY INDEX ROWID | CANDIDATE_SUBJECT_REGISTRATION | 1 | 58 | 3 (0)| 00:00:01 |
| 7 | NESTED LOOPS | | 1 | 485 | 16 (0)| 00:00:01 |
| 8 | NESTED LOOPS | | 1 | 427 | 13 (0)| 00:00:01 |
| 9 | NESTED LOOPS | | 1 | 357 | 11 (0)| 00:00:01 |
| 10 | NESTED LOOPS | | 1 | 129 | 8 (0)| 00:00:01 |
| 11 | NESTED LOOPS | | 1 | 80 | 5 (0)| 00:00:01 |
|* 12 | INDEX RANGE SCAN | PK_EXAMINER_MODERATOR_ALLOC | 1 | 39 | 3 (0)| 00:00:01 |
|* 13 | INDEX RANGE SCAN | RFL_EP1 | 1 | 41 | 2 (0)| 00:00:01 |
| 14 | TABLE ACCESS BY INDEX ROWID| CANDIDATE_EXAMINER_ALLOCATION | 1 | 49 | 3 (0)| 00:00:01 |
|* 15 | INDEX RANGE SCAN | CANDIDATE_ALLOCATION_EXAMINER | 1 | | 2 (0)| 00:00:01 |
|* 16 | TABLE ACCESS BY INDEX ROWID | CANDIDATE_COMPONENT_REG | 1 | 228 | 3 (0)| 00:00:01 |
|* 17 | INDEX RANGE SCAN | SPLIT_SESSION_CANDIDATE | 1 | | 2 (0)| 00:00:01 |
| 18 | TABLE ACCESS BY INDEX ROWID | CANDIDATE | 1 | 70 | 2 (0)| 00:00:01 |
|* 19 | INDEX UNIQUE SCAN | CANDIDATE_PK | 1 | | 1 (0)| 00:00:01 |
|* 20 | INDEX RANGE SCAN | Y_M_CAND_SUBJ_LVL_OPTION | 1 | | 2 (0)| 00:00:01 |
|* 21 | FILTER | | | | | |
|* 22 | TABLE ACCESS BY INDEX ROWID | CANDIDATE_SUBJECT_REGISTRATION | 1 | 58 | 3 (0)| 00:00:01 |
| 23 | NESTED LOOPS | | 1 | 485 | 16 (0)| 00:00:01 |
| 24 | NESTED LOOPS | | 1 | 427 | 13 (0)| 00:00:01 |
| 25 | NESTED LOOPS | | 1 | 357 | 11 (0)| 00:00:01 |
| 26 | NESTED LOOPS | | 1 | 129 | 8 (0)| 00:00:01 |
| 27 | NESTED LOOPS | | 1 | 80 | 5 (0)| 00:00:01 |
|* 28 | INDEX RANGE SCAN | PK_EXAMINER_MODERATOR_ALLOC | 1 | 39 | 3 (0)| 00:00:01 |
|* 29 | INDEX RANGE SCAN | RFL_EP1 | 1 | 41 | 2 (0)| 00:00:01 |
| 30 | TABLE ACCESS BY INDEX ROWID| CANDIDATE_EXAMINER_ALLOCATION | 1 | 49 | 3 (0)| 00:00:01 |
|* 31 | INDEX RANGE SCAN | CANDIDATE_ALLOCATION_EXAMINER | 1 | | 2 (0)| 00:00:01 |
|* 32 | TABLE ACCESS BY INDEX ROWID | CANDIDATE_COMPONENT_REG | 1 | 228 | 3 (0)| 00:00:01 |
|* 33 | INDEX RANGE SCAN | SPLIT_SESSION_CANDIDATE | 1 | | 2 (0)| 00:00:01 |
| 34 | TABLE ACCESS BY INDEX ROWID | CANDIDATE | 1 | 70 | 2 (0)| 00:00:01 |
|* 35 | INDEX UNIQUE SCAN | CANDIDATE_PK | 1 | | 1 (0)| 00:00:01 |
|* 36 | INDEX RANGE SCAN | Y_M_CAND_SUBJ_LVL_OPTION | 1 | | 2 (0)| 00:00:01 |
|* 37 | INDEX RANGE SCAN | EXAM_SAMP_MARK_ADD_IOT_PK | 36 | 1116 | 1 (0)| 00:00:01 |
|* 38 | TABLE ACCESS BY INDEX ROWID | CW_PORTFOLIO_TEMPLATE | 1 | 46 | 4 (0)| 00:00:01 |
|* 39 | INDEX RANGE SCAN | YEAR_MON_PORTFOLIO_TEMPLATE | 1 | | 3 (0)| 00:00:01 |
|* 40 | TABLE ACCESS BY INDEX ROWID | SCHOOL_SAMPLE_MARK | 1 | 34 | 4 (0)| 00:00:01 |
|* 41 | INDEX RANGE SCAN | CAND_PAPER_YEAR_MONTH | 1 | | 3 (0)| 00:00:01 |
|* 42 | TABLE ACCESS BY INDEX ROWID | SUBJECT_COMPONENT | 1 | 96 | 4 (0)| 00:00:01 |
|* 43 | INDEX RANGE SCAN | SUBJECT_COMPONENT_PK | 1 | | 3 (0)| 00:00:01 |
|* 44 | TABLE ACCESS BY INDEX ROWID | CW_PORTFOLIO_TEMPLATE | 1 | 46 | 4 (0)| 00:00:01 |
|* 45 | INDEX RANGE SCAN | YEAR_MON_PORTFOLIO_TEMPLATE | 1 | | 3 (0)| 00:00:01 |
|* 46 | TABLE ACCESS BY INDEX ROWID | SUBJECT_COMPONENT | 1 | 87 | 4 (0)| 00:00:01 |
|* 47 | INDEX RANGE SCAN | SUBJECT_COMPONENT_PK | 1 | | 3 (0)| 00:00:01 |
|* 48 | TABLE ACCESS BY INDEX ROWID | SUBJECT_COMPONENT | 1 | 87 | 4 (0)| 00:00:01 |
|* 49 | INDEX RANGE SCAN | SUBJECT_COMPONENT_PK | 1 | | 3 (0)| 00:00:01 |
|* 50 | TABLE ACCESS BY INDEX ROWID | CW_PORTFOLIO_TEMPLATE | 1 | 46 | 4 (0)| 00:00:01 |
|* 51 | INDEX RANGE SCAN | YEAR_MON_PORTFOLIO_TEMPLATE | 1 | | 3 (0)| 00:00:01 |
Predicate Information (identified by operation id):
1 - filter("from$_subquery$_011"."SAMPLED"='Y' AND "from$_subquery$_011"."SELF_TAUGHT"='N' AND NOT EXISTS
(SELECT /*+ */ 0 FROM "IBIS"."CW_PORTFOLIO_TEMPLATE" "CPT" WHERE "CPT"."COMPONENT"=:B1 AND
"CPT"."SUBJECT_OPTION"=:B2 AND "CPT"."SUBJECT"=:B3 AND "CPT"."MONTH"=:B4 AND "CPT"."YEAR"=:B5 AND
"CPT"."COMBINED"='Y') AND NOT EXISTS (SELECT /*+ */ 0 FROM "IBIS"."SCHOOL_SAMPLE_MARK" "SSM" WHERE
"SSM"."MONTH"=:B6 AND "SSM"."YEAR"=:B7 AND "SSM"."PAPER_CODE"=:B8 AND "SSM"."CANDIDATE"=:B9 AND
"SSM"."EXAMINER_SAMPLE"='Y') AND EXISTS (SELECT /*+ */ 0 FROM "IBIS"."SUBJECT_COMPONENT" "SC" WHERE
"SC"."COMPONENT"=:B10 AND "SC"."SUBJECT_OPTION"=:B11 AND "SC"."LANGUAGE"=:B12 AND "SC"."LVL"=:B13 AND
"SC"."SUBJECT"=:B14 AND "SC"."MONTH"=:B15 AND "SC"."YEAR"=:B16 AND "SC"."PAPER_CODE"=:B17 AND
"SC"."ASSESSMENT_METHOD_ID"=11 AND "SC"."ASSESSMENT_TYPE"='INTERNAL') OR "from$_subquery$_011"."SAMPLED"='N'
AND "from$_subquery$_011"."SELF_TAUGHT"='Y' AND NOT EXISTS (SELECT /*+ */ 0 FROM
"IBIS"."CW_PORTFOLIO_TEMPLATE" "CPT" WHERE "CPT"."COMPONENT"=:B18 AND "CPT"."SUBJECT_OPTION"=:B19 AND
"CPT"."SUBJECT"=:B20 AND "CPT"."MONTH"=:B21 AND "CPT"."YEAR"=:B22 AND "CPT"."COMBINED"='Y') AND EXISTS (SELECT
/*+ */ 0 FROM "IBIS"."SUBJECT_COMPONENT" "SC" WHERE "SC"."COMPONENT"=:B23 AND "SC"."SUBJECT_OPTION"=:B24 ANDEdited byCan you please post the following scripts:
1. Tables structure (with all indexes & constraints)
2. Tables data
3. SQL trace file
possibly everything that one can need to regenerate the scenario on his own DB...
OR
spend some time with Oracle Docs on Performance Tuning and then resolve it yourself.
Regards,
Ankit Rathi
http://theoraclelog.blogspot.in -
Please help to modifiy this query for better performance
Please help to rewrite this query for better performance. This is taking long time to execute.
Table t_t_bil_bil_cycle_change contains 1200000 rows and table t_acctnumberTab countains 200000 rows.
I have created index on ACCOUNT_ID
Query is shown below
update rbabu.t_t_bil_bil_cycle_change a
set account_number =
( select distinct b.account_number
from rbabu.t_acctnumberTab b
where a.account_id = b.account_id
Table structure is shown below
SQL> DESC t_acctnumberTab;
Name Type Nullable Default Comments
ACCOUNT_ID NUMBER(10)
ACCOUNT_NUMBER VARCHAR2(24)
SQL> DESC t_t_bil_bil_cycle_change;
Name Type Nullable Default Comments
ACCOUNT_ID NUMBER(10)
ACCOUNT_NUMBER VARCHAR2(24) YIshan's solution is good. I would avoid updating rows which already have the right value - it's a waste of time.
You should have a UNIQUE or PRIMARY KEY constraint on t_acctnumberTab.account_id
merge rbabu.t_t_bil_bil_cycle_change a
using
( select distinct account_number, account_id
from rbabu.t_acctnumberTab
) t
on ( a.account_id = b.account_id
and decode(a.account_number, b.account_number, 0, 1) = 1
when matched then
update set a.account_number = b.account_number -
How to rewrite this query without sub query please help me
Hello All Good Evening,
Could you please help me with this query, how can i write this query without sub query, or how can write this query another ways
please help me
select planno, status1, count(*) Counts from
select a.ValetNO PlanNo ,
case
when JoinCode in ('00', '01', '02') then 'Actcess'
when JoinCode in ('20', '21', '22', '23','38', '39') then
'Secured' else 'Other' end Status1 ---, COUNT (*)
from dbo.ppt a(NOLOCK) left join dbo.acts b on a.P_ID = b.P_ID and a.ValetNO = b.ValetNO
--group by a.ValetNO
a group by planno, status1
order by 2
Thank you in Advance
MilanWhats your objective here? Sorry, am not able to understand the reason for this change.
Try the below:(Not tested)
;With cte
As
select a.ValetNO PlanNo ,
case
when JoinCode in ('00', '01', '02') then 'Actcess'
when JoinCode in ('20', '21', '22', '23','38', '39') then
'Secured' else 'Other' end Status1 ---, COUNT (*)
from dbo.ppt a(NOLOCK) left join dbo.acts b on a.P_ID = b.P_ID and a.ValetNO = b.ValetNO
select planno, status1, count(*) Counts from cte
a group by planno, status1
order by 2
Even below:
select a.ValetNO PlanNo ,
case
when JoinCode in ('00', '01', '02') then 'Actcess'
when JoinCode in ('20', '21', '22', '23','38', '39') then
'Secured' else 'Other' end Status1 , COUNT (1)
from dbo.ppt a(NOLOCK) left join dbo.acts b on a.P_ID = b.P_ID and a.ValetNO = b.ValetNO
Group by a.ValetNO ,
case
when JoinCode in ('00', '01', '02') then 'Actcess'
when JoinCode in ('20', '21', '22', '23','38', '39') then
'Secured' else 'Other' end -
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. -
SAP BW query view deletion in Web/ "Delete Query view" in web
Dear All,
We are using the standard template: BW web analyzer (0ANALYZER). In this standard template, SAP provided two links "Save View" and "Open View" for creating new query views and opening existing query views respectively. However, no oppurtunity was provided to "delete query views".
We would like to have an oppurtunity to delete the query views as well from Web. (currently we are deleting the unwanted query views from Bex analyzer, as per the request from business users - who have access only to the web reports).
Would be great if you can suggest some solution to this problem.
By the way, We would not like to use the standard "Query view selection" web item. (as it creates user specic local views only).
best regards.Hi atlaj
There is a Function Module called
CALL FUNCTION 'RZX2_OBJECT_DELETE'
you can make yourselves a little ABAP with.
Hope this Helps.
Best Regards
Armin Baggenstos -
Delete query is taking too much time...
Hi All,
Below delete query is taking at least 1hrs. !!!!
DELETE aux_current_link aux
WHERE EXISTS (
SELECT *
FROM link_trans_cons link2
WHERE aux.tr_leu_id = link2.tr_leu_id
AND aux.kind_of_link = link2.kind_of_link
AND link2.TYPE = 'H');
table aux_current_link has record - 284279 and has 6 normal index.
pls help me.
SubirNot even close to enough information.
Look here to see if you can tune the operation.
When your query takes too long ...
But for a delete you need to understand that the indexes need to be maintained, you have 6 of them, that requires effort. ALSO, foreign keys need to be checked to make sure you don't violate any enabled foreign keys (so maybe you need an index on a table where a column from this table you deleting from is being referenced).
If you are deleting a HIGH percentage of the table you may be better off doing a create table as select ....query to keep all rows from your table....then drop your current table, rename the new one you made, and add all the indexes to it.
Otherwise, once you've tuned the operation (query), assuming it can be tuned, it's going to take as long as it needs to take.....
Message was edited by:
Tubby
Maybe you are looking for
-
Apple 21" studio Display monitor-help
I have a G4 and just got an apple 21" studio display monitor I work in photoshop CS2 what do I put the resolution at? Color and refresh? what should the white point and gamman be? what should the profile on themonitor display? I WENT INTO THE PREFERE
-
How to stop a scheduled job using OMB*Plus ?
Hello everyone, I use a OMB*Plus script to deploy a project in various environments. This includes scheduled jobs. In this context, I need to stop the schedules of the previous versions to avoid a script crash. I found the OMBSTOP command thad could
-
How can a user (user edition) see a saved worksheet by other user
how can a user (user edition) see a saved worksheet that was saved by another if it was saved in the database? thnx Endre
-
Populating Multiple Page PDF with FDF
Hi - We have a need to populate a multiple page PDF (i.e., 40 fields across two distinct pages) with a FDF that we are creating in a separate scripting language (basically we are taking a user populated spreadsheet and want to populate the thousands
-
I am a new iPad user. I installed iTunes on my PC, opened it OK & then attempted to transfer a movie to my iPad. iTunes hung and now I can't open it anymore. I have uninstalled & reinstalled it but it still hangs when trying to open it. Any suggestio