Can somebody please help me enhance this sql statement to run faster.
[code=oracle]CREATE VIEW tryView AS
(SELECT ser_id, (SELECT dy_id FROM dy WHERE ser.dsy_id=dy_r id) as new_dy_id FROM sequence ser
WHERE dsy_id IN (SELECT dy_rid FROM dy WHERE dy_id IN (SELECT dy_id FROM lookuptab GROUP BY dy_id HAVING count(*) = 1)))
UNION
(SELECT
ser_id,
substr(
concat(
concat((SELECT dy_id FROM dy WHERE ser.dsy_id=dy_r id), '.'),
(SELECT count(*) FROM lookuptab am
WHERE
isused='YES' and
am.dy_id=(SELEC T dy_id FROM dy WHERE dy_rid = ser.dsy_id)
)
),
1,
64
)
as new_dy_id
FROM series ser
WHERE dsy_id IN (SELECT dy_rid FROM study WHERE dy_id IN (SELECT dy_id FROM lookuptab GROUP BY dy_id HAVING count(*) > 1)));[/code]
[code=oracle]CREATE VIEW tryView AS
(SELECT ser_id, (SELECT dy_id FROM dy WHERE ser.dsy_id=dy_r id) as new_dy_id FROM sequence ser
WHERE dsy_id IN (SELECT dy_rid FROM dy WHERE dy_id IN (SELECT dy_id FROM lookuptab GROUP BY dy_id HAVING count(*) = 1)))
UNION
(SELECT
ser_id,
substr(
concat(
concat((SELECT dy_id FROM dy WHERE ser.dsy_id=dy_r id), '.'),
(SELECT count(*) FROM lookuptab am
WHERE
isused='YES' and
am.dy_id=(SELEC T dy_id FROM dy WHERE dy_rid = ser.dsy_id)
)
),
1,
64
)
as new_dy_id
FROM series ser
WHERE dsy_id IN (SELECT dy_rid FROM study WHERE dy_id IN (SELECT dy_id FROM lookuptab GROUP BY dy_id HAVING count(*) > 1)));[/code]
Comment