背景
我的数据库中有一个巨大的表(Table A
)。从中,我根据业务规则应用了一些过滤器。然后,我将这些过滤器应用于另一个表(Table B
)。
因此,Table B
将始终包含来自A的数据,并且总是小得多。 Table A
包含500,000个条目,Table B
包含3000个条目。
两个表都具有相同的结构。
问题
巨大的表(Table A
)可以随时更新,恕不另行通知。因此,为确保Table B
包含最新的业务数据,需要定期刷新。在这种情况下,我每周执行一次。
解决方案
如何解决这个问题,是通过设置一个简单的存储过程来执行以下操作:
截断表B
将Table A
和INSERT
数据上的过滤器应用到Table B
这个问题是我每周必须截断表的事实。我想知道是否有一种更有效的方法,而不是删除所有数据并将数据重新插入表中?
有没有一种方法可以检查A中哪些值在B中丢失并相应地添加它们?
谢谢
答案 0 :(得分:0)
创建一个View,而不是在存储过程中执行此操作。视图与表保持同步,因为表A中的数据更改,视图将自动更新。 以下是您可能需要阅读的有关Views and how they work.
的一些详细信息