Test2 Schema is Range by Week.
Test3 Schema is Range by Month and then subpartition Hashed by Org_id
PHP Code:
********************************************************************************

SELECT /* getFilteredForecast */
  
MIN(f.intvl_nbr) AS intvl_nbr,
  
SUM(f.usage_nbr 4) * 0.0 AS usage_nbr,
  
COUNT(*) AS sample_count
FROM
  test2
.ACTIVE_DEVICE_MV ad,
  
test2.USAGE_FORECAST f
WHERE
  ad
.org_id'4' AND
  
ad.svc_type_cd 'E' AND
  
EXISTS
  
(SELECT mi.end_dt
   FROM test2
.METER_INTERVAL mi
   WHERE mi
.org_id ad.org_id AND
         
mi.device_id ad.device_id AND
         
mi.end_dt >= SYSDATE-3) AND
  
f.org_id ad.org_id AND
  
f.cust_id ad.cust_id AND
  
f.day_type_cd 'WD'
GROUP BY f.intvl_nbr

call     count       cpu    elapsed       disk      query    current        rows
------- ------  -------- ---------- ---------- ---------- ----------  ----------
Parse        1      0.59       0.56          0        772          0           0
Execute      1      0.00       0.00          0          0          0           0
Fetch       49      0.77       0.79         74       1626          0          96
------- ------  -------- ---------- ---------- ---------- ----------  ----------
total       51      1.36       1.36         74       2398          0          96

Misses in library cache during parse
1
Optimizer goal
CHOOSE
Parsing user id
46

Rows     Row Source Operation
-------  ---------------------------------------------------
     
96  SORT GROUP BY (cr=1626 r=74 w=0 time=794353 us)
   
3744   HASH JOIN SEMI (cr=1626 r=74 w=0 time=756400 us)
   
4224    HASH JOIN  (cr=112 r=74 w=0 time=191241 us)
     
44     INDEX RANGE SCAN ACTIVE_DEVICE_MV3_IX (cr=1 r=0 w=0 time=418 us)(object id 135464)
   
4704     INDEX FAST FULL SCAN USG_FCST_USAGE_NBR_IX (cr=111 r=74 w=0 time=97762 us)(object id 134420)
   
3978    PARTITION RANGE ITERATOR PARTITIONKEY 9 (cr=1514 r=0 w=0 time=161343 us)
   
3978     TABLE ACCESS BY LOCAL INDEX ROWID METER_INTERVAL PARTITIONKEY 9 (cr=1514 r=0 w=0 time=152088 us)
   
3978      INDEX RANGE SCAN MTRINT_ORG_ID_IX PARTITIONKEY 9 (cr=19 r=0 w=0 time=69281 us)(object id 134946)

********************************************************************************

SELECT
  MIN
(mi.end_dt) AS end_dt,
  
SUM(mi.usage_nbr*4) AS usage_nbr,
  
COUNT(*) AS sample_count
FROM
  test2
.ACTIVE_DEVICE_MV ad,
  
test2.METER_INTERVAL mi
WHERE
  ad
.org_id='ME' AND
  
ad.svc_type_cd 'E'   AND
  
mi.org_id ad.org_id   AND
  
mi.device_id ad.device_id   AND
  
mi.end_dt >= ad.created_dt   AND
  
mi.end_dt >= SYSDATE-AND
  
mi.end_dt <= SYSDATE
GROUP BY mi
.end_dt

call     count       cpu    elapsed       disk      query    current        rows
------- ------  -------- ---------- ---------- ---------- ----------  ----------
Parse        1      0.03       0.02          0          0          0           0
Execute      1      0.00       0.00          0          0          0           0
Fetch       52      0.34       0.31          0       1642          0         102
------- ------  -------- ---------- ---------- ---------- ----------  ----------
total       54      0.37       0.34          0       1642          0         102

Misses in library cache during parse
1
Optimizer goal
CHOOSE
Parsing user id
46

Rows     Row Source Operation
-------  ---------------------------------------------------
    
102  SORT GROUP BY (cr=1642 r=0 w=0 time=314837 us)
   
5503   FILTER  (cr=1642 r=0 w=0 time=233585 us)
   
5503    HASH JOIN  (cr=1642 r=0 w=0 time=219382 us)
     
58     INDEX RANGE SCAN ACTIVE_DEVICE_MV3_IX (cr=1 r=0 w=0 time=405 us)(object id 135464)
   
5503     PARTITION RANGE ITERATOR PARTITIONKEY KEY (cr=1641 r=0 w=0 time=144495 us)
   
5503      TABLE ACCESS BY LOCAL INDEX ROWID METER_INTERVAL PARTITIONKEY KEY (cr=1641 r=0 w=0 time=131264 us)
   
5503       INDEX RANGE SCAN MTRINT_ORG_ID_IX PARTITIONKEY KEY (cr=19 r=0 w=0 time=38819 us)(object id 134946)

********************************************************************************

SELECT /* getFilteredForecast */
  
MIN(f.intvl_nbr) AS intvl_nbr,
  
SUM(f.usage_nbr 4) * 0.0 AS usage_nbr,
  
COUNT(*) AS sample_count
FROM
  test3
.ACTIVE_DEVICE_MV ad,
  
test3.USAGE_FORECAST f
WHERE
  ad
.org_id'4' AND
  
ad.svc_type_cd 'E' AND
  
EXISTS
  
(SELECT mi.end_dt
   FROM test3
.METER_INTERVAL mi
   WHERE mi
.org_id ad.org_id AND
         
mi.device_id ad.device_id AND
         
mi.end_dt >= SYSDATE-3) AND
  
f.org_id ad.org_id AND
  
f.cust_id ad.cust_id AND
  
f.day_type_cd 'WD'
GROUP BY f.intvl_nbr

call     count       cpu    elapsed       disk      query    current        rows
------- ------  -------- ---------- ---------- ---------- ----------  ----------
Parse        1      0.03       0.03          0          0          0           0
Execute      1      0.00       0.00          0          0          0           0
Fetch       49      0.08       0.08          2        147          0          96
------- ------  -------- ---------- ---------- ---------- ----------  ----------
total       51      0.11       0.11          2        147          0          96

Misses in library cache during parse
1
Optimizer goal
CHOOSE
Parsing user id
46

Rows     Row Source Operation
-------  ---------------------------------------------------
     
96  SORT GROUP BY (cr=147 r=2 w=0 time=83726 us)
   
3744   NESTED LOOPS  (cr=147 r=2 w=0 time=44485 us)
     
39    NESTED LOOPS SEMI (cr=91 r=2 w=0 time=21272 us)
     
44     INDEX RANGE SCAN ACTIVE_DEVICE_MV3_IX (cr=1 r=0 w=0 time=433 us)(object id 135473)
     
39     INDEX RANGE SCAN MTRINT_END_DT_PK (cr=90 r=2 w=0 time=19877 us)(object id 135244)
   
3744    INDEX RANGE SCAN USG_FCST_USAGE_NBR_IX (cr=56 r=0 w=0 time=13994 us)(object id 135419)

********************************************************************************

SELECT
  MIN
(mi.end_dt) AS end_dt,
  
SUM(mi.usage_nbr*4) AS usage_nbr,
  
COUNT(*) AS sample_count
FROM
  test3
.ACTIVE_DEVICE_MV ad,
  
test3.METER_INTERVAL mi
WHERE
  ad
.org_id='ME' AND
  
ad.svc_type_cd 'E'   AND
  
mi.org_id ad.org_id   AND
  
mi.device_id ad.device_id   AND
  
mi.end_dt >= ad.created_dt   AND
  
mi.end_dt >= SYSDATE-AND
  
mi.end_dt <= SYSDATE
GROUP BY mi
.end_dt

call     count       cpu    elapsed       disk      query    current        rows
------- ------  -------- ---------- ---------- ---------- ----------  ----------
Parse        1      0.03       0.02          0          0          0           0
Execute      1      0.00       0.00          0          0          0           0
Fetch       52      1.34       1.31          0       6654          0         102
------- ------  -------- ---------- ---------- ---------- ----------  ----------
total       54      1.37       1.33          0       6654          0         102

Misses in library cache during parse
1
Optimizer goal
CHOOSE
Parsing user id
46

Rows     Row Source Operation
-------  ---------------------------------------------------
    
102  SORT GROUP BY (cr=6654 r=0 w=0 time=1310898 us)
   
5503   FILTER  (cr=6654 r=0 w=0 time=1217410 us)
   
5503    TABLE ACCESS BY GLOBAL INDEX ROWID OBJ#(134989) PARTITION: ROW LOCATION ROW LOCATION (cr=6654 r=0 w=0 time=1186406 us)
   
5562     NESTED LOOPS  (cr=1540 r=0 w=0 time=1033466 us)
     
58      INDEX RANGE SCAN OBJ#(135473) (cr=1 r=0 w=0 time=975 us)(object id 135473)
   
5503      INDEX RANGE SCAN OBJ#(135244) (cr=1539 r=0 w=0 time=1002721 us)(object id 135244)