«Миллионы записей» звучит как проблема VLDB.Я бы поместил данные в многораздельную таблицу:
CREATE TABLE myproducts (
productIdentifier NUMBER,
value1 VARCHAR2(30),
value2 DATE
) PARTITION BY LIST (productIdentifier)
( PARTITION p1 VALUES (1),
PARTITION p2 VALUES (2),
PARTITION p5to9 VALUES (5,6,7,8,9)
);
Для запросов, связанных только с одним продуктом, укажите раздел:
SELECT * FROM myproducts PARTITION FOR (9);
Для общего отчета просто опуститераздел и вы получите все номера:
SELECT * FROM myproducts;
Документация здесь: https://docs.oracle.com/en/database/oracle/oracle-database/12.2/vldbg/toc.htm