I have a set of tables that look similar to this:

Time\_Table (relatively small):

```
Time      (TIMESTAMP)
timeId    (NUMBER)
Data...   (NUMBER)

```

Table2 (large, about 30 rows per time\_table row):

```
timeId    (NUMBER)
table2Id  (NUMBER)
Data...   (NUMBER)

```

Table3 (very large, around 10 rows per table2 row, currently 1.4 billion rows after a couple of hundred days):

```
timeId    (NUMBER)
table2Id  (NUMBER)
table3Id  (NUMBER)
Data...   (NUMBER)

```

My queries ALWAYS join on timeId at the very least, and each query is broken up into days (10 day read will result in 10 smaller queries). New data is written to all tables every day. We need to store (and query) years of data from these tables.

How do I partition these tables into daily chunks when the Time information is only known through a JOIN? Should I be looking at partitioning in ways not reliant on Time? Can this be done automatically, or does it have to be a manual process?

Oracle version 11.2