SQL Store视图快照和更改

时间:2018-09-15 19:10:41

标签: sql sql-server database

当我在SQL中使用SELECT查询时,据我了解,它正在从基础表中生成一种临时视图。我需要能够存储对此视图的更改,就像存储将应用于此临时视图的INSERT,UPDATE和DELETE语句一样。目标是在预设的时间戳记下存储视图的所有信息,这些将是快照。然后将带有时间戳的更改存储到视图中,并能够将这些更改有效地应用于最新快照,以便我可以在给定时间使用视图。

做我需要的任何方式吗?

谢谢

1 个答案:

答案 0 :(得分:0)

  

...我的理解是它正在从基础表中生成一种临时视图...

否。

数据库引擎以最合适的方式从基础表中生成“结果集”。

如果查询可以“流水线化”,则引擎通常一次生成一行并分批交付(以提高效率)。

如果查询无法进行流水线处理,那么它可能会生成内部的物化结果集,这些结果集可以完全或部分覆盖表。

最重要的是,您实际上无法控制细节。根据定义,SQL是一种“声明性”语言,而不是一种“命令性”语言。您说出需要的内容,然后数据库引擎(不管是好是坏)找出获取它的最佳方法。

如果您真的想深入了解,我建议您获取查询的“执行计划”。这就告诉您引擎为获得您所要的内容而执行的所有技巧。