I have the SQL query shown here, indexes are present on the join columns. If I removed those table from my SQL query so it turns fast:
select *
from student st, studentheader sh, studentversion sv
where st.rollnumber = sh.rollnumber
and sh.rollnumber = sv.rollnumber
and sh.latestversionid = sv.versionid;
Below are the indexes created on my tables.
- unique index on
studentheader (rollnumber, latestversionid)
- non-unique index on
studentheader (sh.latestversionid)
- unique index on
studentversion (sv.rollnumber,sv.versionid)
Studentversion.version
column has many versions for a roll number.