【问题标题】:cacheable observable view in sql server?sql server中的可缓存可观察视图?
【发布时间】:2018-03-13 18:04:23
【问题描述】:

SQL Server 是否提供任何类型的内置方法来创建可缓存、可观察的视图?

“可缓存”是指在选择视图一次后,SQL Server 会针对该数据的缓存表示重定向针对该视图的后续选择,而不是重新执行基础查询。

“可观察”是指 SQL Server 将继续从缓存中选择视图结果,直到它检测到视图查询的一个基础表中存在数据更改。

【问题讨论】:

  • 查询计划被缓存和重用,因此如果您在视图上运行完全相同或足够相似的查询,后续查询可能会比第一次更快地返回结果。也许这是您的问题所关注的地方,思想是物化视图,它们是另一个主题,但可以提高查询性能。
  • 索引视图的行为完全符合您的要求,只是它是在创建索引时而不是在第一次 SELECT 时实现的。除此之外,SQL Server 将确保预先计算的视图结果与基础数据更改保持同步。但是索引视图的查询有很多限制。

标签: sql sql-server


【解决方案1】:

您已经在描述 SQL Server 的工作原理了。当您运行查询以从磁盘检索数据时,它会将数据页加载到缓存/缓冲池中。针对该数据的任何后续查询都是从缓存中的数据页中读取的。当您在缓存中修改页面上的数据时,它会将其写回磁盘。

https://technet.microsoft.com/en-us/library/aa337525(v=sql.105).aspx

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-05-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-02-19
    • 2011-01-07
    • 1970-01-01
    • 2019-09-09
    相关资源
    最近更新 更多