需求: 在进行多表关联时,所涉及的关联表行数巨大,关联速度达不到要求。
解决方案: §在所有大表中建立 PARTITION_KEY字段, 按照该键的键值对表进行物理分区。PARTITION_KEY从PARTITION_CONFIG表中获得。分区策略是按照分公司进行分区。
PARTITION_KEY表的数据结构:
Name Type Nullable Default Comments
------------------- ------------- -------- ------- --------
PARTITION_CONFIG_ID INTEGER
TYPE_ID INTEGER
DESCR VARCHAR2(254) Y
BRANCH_COMPANY_ID INTEGER
STORAGE_PARTITION INTEGER
EFFECTIVE_FROM_DATE DATE Y
EFFECTIVE_TO_DATE DATE Y
--BRANCH_COMPANY_ID为分公司代码
--STORAGE_PARTITION为PARTITION_KEY
使用示例: 表 A 与表 B 进行关联时,如下进行
select A.column1, B.column2 from A, B
where A.foreign_key=B.Primary_key
and A.partition_key in (select Storage partition from Partition config where Branch company id=xxxx)
and B.partition_key in (select Storage partition from Partition config where Branch company id=xxxxxxx)