A lot of the queries in our application involve joins between a large (+ frequently updated) tables with small (+ constant tables). By large I mean > 1 million rows and by small table I mean < 5000 rows.
I am looking for ways to utilize some feature/optimization technique in Oracle (not at application layer) so that these joins can be made more efficient. After reading on this matter, I found result caching and materialized views to suit my scenario.
I am weighing the cons for each of these 2 methods:
Results Cache: Because the large tables are volatile hence I don't think if result cache can help me in making the JOINs efficient. But what if I put the small tables in the result cache -- will it help in JOINs in a way that Oracle won't read the disk for fetching data from the small tables when performing a JOIN?
Materialized views: I think this can cause stale data issues again because the large tables are updated frequently
I wanted to know which method people have found useful in similar scenarios.