在我们的数据库中,我们有一个单独的中心表,其中有数百万行不断被插入和更新。 此表有一个列作为唯一标识符,用于将此表的内容与具有一对多关系的多个表链接。
这意味着我们在同一个事务中插入USERS表的条目,USERS_PETS和USERS_PARENTS(以及另外10个)将根据主表中相同的唯一标识符填充多行。
由于使用此DB的应用程序不断插入新条目并更新现有条目,因此这些表之间的关系仅保留在应用程序级别(即逻辑ERD,而不是通过FK / PK减速处理)。
问题:
答案 0 :(得分:4)
这是最糟糕的方法,我保证最终会出现数据完整性问题。数据完整性远比性能更重要。这是愚蠢和短视的。
答案 1 :(得分:2)
DISABLE NOVALIDATE
。 答案 2 :(得分:2)
您希望以数据完整性为基础。希望不能很好地扩展。
并没有“纯粹的表现观点”这样的东西。除非,也就是说,您从未从数据库中读取过。如果您只插入,永不更新,永不删除,从不阅读,您可以认为存在“纯粹的性能观点”。但是如果你曾经更新,删除或阅读,那么性能不是一个点 - 它更像是一个表面或一个实体,你所能做的就是在插入之间移动平衡点,更新,删除和读取。
而且,因为阅读此内容的人仍然无法得到它,读取表现的最关键部分正在取回正确答案 。如果你不能保证得到正确的答案,那么明智的人不会关心你的插页有多快。