use*_*003 2 oracle database-design oracle-11g archive
我无法访问分区功能,但考虑一个支持工单系统,每天打开数万张工单,解决问题需要大约一周到几个月的时间。显然,如果我从一开始就试图将它们全部放在一张桌子上,那么这张桌子就会变得很大。
我的问题是:
UNION 每次寻求未解决的查询时执行某种操作?桌子变大有什么问题?通常,任何类型的 OLTP 查询都将使用适当的索引访问表,在这种情况下,表的大小或多或少无关。使用索引的成本会以一定的速度增长O(log(n))——实际上,对于任何实际大小的表,ab*-tree 索引只会增加一个或两个级别。您可以通过使用基于函数的索引来进一步限制索引的大小,方法是仅对活动行进行索引。
唯一应该关心表大小的查询是您想要对表进行完整扫描的查询,以便执行诸如生成有关自时间开始以来已打开的票数(或至少,在历史的很大一部分)。如果您担心这些类型的报告查询,您可以执行诸如使用物化视图来预聚合数据之类的操作。
通常,我建议保留一个表并确保存在适当的索引和/或物化视图,以支持有关您关心的性能的查询。