问候溢出者,
是否有一个 SQL DBMS 允许我创建一个索引视图,我可以在其中插入新行而不修改视图的原始表?在执行仅视图内插入后,我将需要查询此视图。如果答案是否定的,还有什么其他方法可以完成这项工作?我只是想将来自另一台服务器的一组行与创建的视图中的一组行合并 - 以特定顺序 - 以便能够对合并的集合(即索引视图)执行快速查询,而不必持久化磁盘中接收到的集合。我不确定使用内存数据库是否会因为合并集变得荒谬而表现良好?
你们觉得怎么样?
亲切的问候
问候溢出者,
是否有一个 SQL DBMS 允许我创建一个索引视图,我可以在其中插入新行而不修改视图的原始表?在执行仅视图内插入后,我将需要查询此视图。如果答案是否定的,还有什么其他方法可以完成这项工作?我只是想将来自另一台服务器的一组行与创建的视图中的一组行合并 - 以特定顺序 - 以便能够对合并的集合(即索引视图)执行快速查询,而不必持久化磁盘中接收到的集合。我不确定使用内存数据库是否会因为合并集变得荒谬而表现良好?
你们觉得怎么样?
亲切的问候
好吧,没有支持的方法来做到这一点,因为视图必须基于某些表。
除此之外,索引视图并不意味着像那样使用。您不必将任何数据推送到索引视图中,以为您将使数据检索更快。
我建议你保持原来的观点。然后有一个临时表,上面创建了适当的索引,您可以在其中插入来自外部系统的数据。
临时表应该在您想要删除数据的任何时候被截断(所以在您插入新数据之前)。这应该在SNAPSHOT ISOLATION
事务中完成,因此您现有的查询不会读取脏数据或死锁。
然后你有两个选择:
UNION ALL
当您要检索数据时,请使用子句合并视图和临时表的结果。