c# - 我可以请求 SQL Server 缓存某个结果集吗?

标签 c# asp.net sql-server-2008 caching

某个查询正在从 ASP .NET 页面调用。我在 Management Studio 中研究了该查询的执行计划,87% 用于排序。我非常需要排序,否则显示的数据将毫无意义。

我是否可以请求 SQL Server 缓存排序的结果集,以便在后续运行中更快地返回数据?

或者 SQL Server 是否足够智能来进行缓存处理,如果可能的话,我试图强制它缓存结果是不是犯了错误?

任何相关信息将不胜感激,并提前致谢:)

更新:
我刚刚在一篇文章中读到,使用聚簇索引创建 View 会提高性能,因为索引会将 View 中的数据持久保存到磁盘。这是真的?我该怎么做?有文章吗?

最佳答案

虽然您可以创建一个 indexed view ,正如您在更新中提到的那样,您应该知道:

  1. 无论是在创建 View 时,还是在更新 View 所基于的表时,您都必须遵循很多规则,并且,
  2. 仅仅因为有一个(聚集的)索引,并不意味着排序顺序 - 您在查询此表时仍然必须使用 ORDER BY,并且,
  3. 除非您使用的是企业版,否则您必须使用 WITH (NOEXPAND) query hint 查询 View
  4. 您可以通过在 CREATE INDEX 语句中指定 ASC 和 DESC 来指定索引的顺序,而不是在 CREATE VIEW 中。允许在 View 中使用 ORDER BY(通过指定前 100%)的“hack”不会有任何效果。

关于c# - 我可以请求 SQL Server 缓存某个结果集吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4095762/

相关文章:

c# -++(或--)运算符返回什么?

asp.net - 启动项目不断恢复到 IIS Express 进行调试

sql-server - 我们如何更改SQL Server 的页面大小?

简单联合的情况下的SQL查询性能

c# - 在 SQLite 和 Dapper 中映射 TimeSpan

c# - 如何在更新查询中将格式为 test@test1.com 的电子邮件地址传递给 Access DB

c# - 使用 selenium 和 NUnit 在多个浏览器上测试框架

c# - 文本框输入从右到左,左侧为负号 "-"

asp.net - 从项目中的一个 ASP.NET 页面中删除主题

c# - 多用户连接并同时进行 CRUD