应该是一个非常简单的问题。我可以将一个INDEX添加到公用表表达式(CTE)吗?向CTE添加索引
向CTE添加索引
回答
号
甲CTE是一个临时的,“内联”视图 - 你不能索引添加到这样的构建体。
如果您需要索引,请使用CTE的SELECT创建常规视图,并将其设置为索引视图(通过将聚集索引添加到视图中)。您需要遵守这里列出的一组规则:Creating an Indexed View。
谢谢。我不确定Binging是什么也没有显示,Googl也没有。 – 2010-10-22 11:29:44
Lycos-ing怎么样? – 2013-03-06 22:30:54
对我来说,索引视图首先尝试18秒,然后16秒,然后14秒第三次尝试。 CTE首先尝试了16秒。我会坚持CTE。顺便说一句,对于我索引表(暂时使用)是最好的整体下降到10秒。 – Todd 2017-03-28 11:58:27
我有同样的要求。索引不能添加到CTE。但是,在CTE中,选择在连接字段上添加ORDER BY子句将执行时间从20分钟或更长时间减少到10秒以下。
(您还需要添加SELECT TOP 100%,至允许ORDER BY的CTE选择。)
[编辑从注释下添加转述报价]:
如果你有不同之处在CTE然后TOP 100 PERCENT不起作用。这种骗子方法总是可用的:在选择时不需要TOP,将ORDER BY语句改为:
ORDER BY [Blah] OFFSET 0 ROWS
你从哪里学到这样的伏都教?它对我们有长时间运行的查询有显着的影响。前100,000比PERCENT 100的效果更好。我将开始深入查询分析器,看看发生了什么。谢谢! – BlackjacketMack 2012-09-08 01:35:05
这是非常有趣,很好知道。我将我的查询从最高1000000改为最高100 PERCENT。我会改回它。在尝试为CTE建立索引时,我在MSDN上遇到了这个提示。 – 2012-09-08 05:14:15
TOP 100 PERCENT可能会使用估计记录数返回。 TOP 1000000可能会认为会有更多的内存并预留更多的内存,以便没有排序警告和泄漏到TempDB。 – milivojeviCH 2012-10-22 10:17:32
@BH - 解决使用TOP的DISTINCT问题100%或TOP 1000000,你总是可以使用GROUP BY。实现相同的目的,有时比DISTINCT更快。
- 1. 如何向索引添加索引
- 2. 向多维数组添加新索引
- 3. mysql索引添加
- 4. 数组:向索引5添加数字并向右推
- 5. 通过索引向向量添加值 - 提高速度
- 6. TCL foreach正在向我的索引添加引号
- 7. Rails:添加列后添加索引
- 8. 添加索引的表
- 9. 错误添加索引到
- 10. 要添加哪个索引?
- 11. 添加索引(db_index = True)
- 12. 添加到特定索引
- 13. 添加索引gerrund表
- 14. 索引负向索引的std ::向量
- 15. 向分层索引熊猫数据框添加空行
- 16. 是否向SQL Server添加索引是一个坏主意?
- 17. 向gridview添加行时索引超出范围
- 18. UNNEST向量数据帧,但添加列表索引列
- 19. 在postgres中,如何向现有表添加索引?
- 20. 通过索引向数组添加元素,增量?
- 21. 向表中添加大量索引是否有缺点?
- 22. SOLR向现有索引添加新数据
- 23. 通过python/pymongo向MongoDB添加一个GEO2D索引失败
- 24. 301重定向 - 添加斜线索引页
- 25. 向模式添加已编入索引的非存储字段
- 26. 防止hibernate向mysql表中添加唯一索引
- 27. 如何在向NSOperationQueue添加内容时获取索引?
- 28. 向指定索引处的ListGrid添加行智能GWT
- 29. 添加索引后执行计划SqlServer不断提示索引
- 30. 修改现有的索引或添加一个新的索引
这可能是一些可能与一些搞乱计划指南。 [本文](http://explainextended.com/2009/05/28/generating-xml-in-subqueries/)[Quassnoi](http://stackoverflow.com/users/55159/quassnoi)展示了如何使用计划指南通过向计划添加EagerSpool来获取缓存的CTE结果。这会在tempdb中为它们构建一个临时索引。 – 2010-10-22 12:08:49
@Martin Smith:哇!我将有一个很好的阅读,并尝试让我的头围绕这一切:) – 2010-10-22 12:51:19