I am working on Oracle SQL Developer and have created tables with Wikipedia data, so size of data is very huge and have 7 tables. I have created a search engine which fetches and display data using JSP, but the problem is that for each query the application has to access 4 tables making my application very time consuming.
I have added indexes to all tables but still it takes more time, so any suggestion on how to optimize my app and reduce time it is taking to display result.
There are several approaches you can take to tune your application. And it could be either tuning at the database end, front end or a combination of the two.
At the database end you could be looking at say a materialized view to summarize the more commonly searched data. This could either be for your search purposes only or to reduce the size and complexity of the resultset. You might also look at tuning the query itself – perhaps placing indexes on the relevant WHERE clauses of your search or look at denormalizing your tables.
At the application end – the retrieval of vast recordsets – can always cause problems where a single record is large (multi-columned) and the number or records in the resultset – numerous.
What you are probably looking for is a rapid response time from your application so your user doesn’t feel they are waiting … and waiting.
A technique I have seen and used is to retrieve the resultset either as
1) a recordset of ROWIDs and to page through these ROWIDs on the display
2) a simulated “paged” recordset. Retrieving the recordset in chunks.