我有多个产品,每个产品都有自己的产品表和价值表。现在我必须创建一个通用屏幕来验证这些产品,我不想为每个产品创建经过验证的表。我想创建一个通用表,它将包含所有Products详细信息和一个名为ProductIdentifier的额外列。但问题是,在这个通用表中,我可能最终会输出数百万条记录,而在获取数据时需要时间。
还有其他更好的解决方案???
答案 0 :(得分:0)
“数百万条记录”听起来像是一个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