包含UNION ALL的JOIN VIEW:性能灾难?

时间:2014-06-19 09:59:30

标签: sql sql-server database join union-all

在MS SQL Server DB中考虑以下标准表/子表关系:

PARENT
-ID (PK)
-OTHER_FIELD

CHILD
-ID (PK)
-PARENT_ID (FK)
-OTHER_FIELD

现在还要考虑在DB中存在这些表的其他版本(具有相同的结构):PARENT_2 / CHILD_2,PARENT_3 / CHILD_3,PARENT_4 / CHILD_4。

我想创建一个标准机制来从简单查询中组合的所有表中选择数据。首先想到的是:

PARENT_VIEW = PARENT UNION ALL PARENT_2 UNION ALL PARENT_3 UNION ALL PARENT_4
CHILD_VIEW = CHILD UNION ALL CHILD_2 UNION ALL CHILD_3 UNION ALL CHILD_4

但是我担心由于PARENT_VIEW中的每一行必须扫描每个JOIN的CHILD_VIEW中的每一行,因此对这些视图包含JOIN的查询将是可怕的。实际上有多个不同的CHILD表(导致多个JOIN),并且我将在适当的时候处理大量数据。我认为这不会扩展。

理想情况下,我想保留表格的结构(而不​​是将它们展平)。

总是使用WHERE条件过滤对组合表进行的查询。

我知道为每个PARENT / CHILD表分别编写查询并在每个结果集上使用UNION ALL的替代方法,因此JOIN会更有效率。

我也考虑过条件联接,但还没有进一步探讨过这个问题。

有关如何继续的任何建议(理想情况下有一些DBMS科学支持)?

0 个答案:

没有答案