Hi,
I have written bellow query to extract xml data. In XML i have 16000 rows and i need to compare these rows with existing data in xxtl_employee_master_t table then i will update employee master table with latest data which is extracted by using bellow query but the bellow query is taking too much time. Can anyone please suggest some tips to improve performance.
SELECT xd.*
FROM
(SELECT ExtractValue(VALUE(t),'/G_EMP/A1') BU_ID,
ExtractValue(VALUE(t),'/G_EMP/A2') EMPLOYEE_ID,
ExtractValue(VALUE(t),'/G_EMP/A3') EMPLOYEE_TYPE,
ExtractValue(VALUE(t),'/G_EMP/A4') EMPLOYEE_NUMBER,
ExtractValue(VALUE(t),'/G_EMP/A5') EMPLOYEE_NAME,
ExtractValue(VALUE(t),'/G_EMP/A6') USERNAME,
ExtractValue(VALUE(t),'/G_EMP/A7') USER_ID,
ExtractValue(VALUE(t),'/G_EMP/A8') JOB_ID,
ExtractValue(VALUE(t),'/G_EMP/A9') HOURLY_RATE,
TO_TIMESTAMP_TZ(ExtractValue(VALUE(t),'/G_EMP/A10'),'YYYY-MM-DD"T"HH24:MI:SS.FFTZH:TZM') START_DATE,
TO_TIMESTAMP_TZ(ExtractValue(VALUE(t),'/G_EMP/A11'),'YYYY-MM-DD"T"HH24:MI:SS.FFTZH:TZM') END_DATE,
ExtractValue(VALUE(t),'/G_EMP/A12') STATUS,
ExtractValue(VALUE(t),'/G_EMP/A13') START_DAY,
ExtractValue(VALUE(t),'/G_EMP/A14') END_DAY,
ExtractValue(VALUE(t),'/G_EMP/A15') START_TIME,
ExtractValue(VALUE(t),'/G_EMP/A16') END_TIME,
ExtractValue(VALUE(t),'/G_EMP/A17') PAYROLL_ID,
ExtractValue(VALUE(t),'/G_EMP/A18') OT_ELIGIBILITY,
ExtractValue(VALUE(t),'/G_EMP/A19') ASSIGNMENT_ID,
ExtractValue(VALUE(t),'/G_EMP/A20') ASSIGNMENT_NUMBER,
ExtractValue(VALUE(t),'/G_EMP/A21') DIVISION_CODE,
ExtractValue(VALUE(t),'/G_EMP/A22') DEPARTMENT_ID,
ExtractValue(VALUE(t),'/G_EMP/A23') EMP_NO,
ExtractValue(VALUE(t),'/G_EMP/A24') WORK_TERMS_NUMBER
FROM TABLE(xmlsequence(EXTRACT(xmltype(
(SELECT NVL(table_clob_data,'<DUMMY></DUMMY>')
FROM xxtl_clob_data_t
WHERE table_name='Employee Master'
)), '/DATA_DS/G_EMP')) ) t
)xd
WHERE EXISTS
(SELECT 1
FROM xxtl_employee_master_t xemt
WHERE xemt.employee_id=xd.employee_id
AND xemt.bu_id =xd.bu_id
AND xemt.employee_type=xd.employee_type
);
Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 - 64bit Production
PL/SQL Release 11.2.0.3.0 - Production
"CORE 11.2.0.3.0 Production"
TNS for Linux: Version 11.2.0.3.0 - Production
NLSRTL Version 11.2.0.3.0 - Production
Thanks,
Srinadh.