某个查询正在从 ASP .NET 页面调用。我在 Management Studio 中研究了该查询的执行计划,87% 用于排序。我非常需要排序,否则显示的数据将毫无意义。
无论如何,我是否可以请求 SQL Server 缓存排序的结果集,以便它在后续运行中更快地返回数据?
或者 SQL Server 是否足够智能来进行缓存处理,如果可能的话,我尝试强制它缓存结果是否犯了错误?
任何相关信息将不胜感激,并提前致谢:)
UPDATE:
我刚刚在一篇文章中读到,使用聚集索引创建视图将提高性能,因为索引会将视图中的数据保存到磁盘。这是真的?我该如何去做呢?有文章吗?
当你can创建一个索引视图 http://msdn.microsoft.com/en-us/library/ms191432.aspx正如您在更新中提到的,您应该注意:
- 在创建视图时以及更新视图所基于的表时,您必须遵循很多规则,并且,
- 仅仅因为有一个(聚集)索引,并不意味着排序顺序 - 查询此表时您仍然需要使用 ORDER BY,并且,
- 除非您使用企业版,否则必须使用WITH (NOEXPAND) 查询视图查询提示 http://msdn.microsoft.com/en-us/library/ms181714.aspx
- 您可以通过在 CREATE INDEX 语句中而不是在 CREATE VIEW 中指定 ASC 和 DESC 来指定索引的顺序。允许在视图中进行 ORDER BY 的“hack”(通过指定前 100%)不会产生任何效果。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)