通常,优化程序会始终尝试避免创建临时表以返回查询结果,因为必须填充整个临时表后才能返回第一行。如果索引已存在,优化程序会尝试首先使用索引,然后作为最后一个手段仅创建临时表。
访问计划使用临时表在其执行过程中在瞬时性或临时工作表中存储数据。此表仅在访问计划执行时存在。通常在中间结果无法放置在可用内存中时使用临时表,例如:
需要在访问计划早期计算子查询时。
临时表中的数据只针对一个连接而保存时。
查询包含的 ORDER BY 是在列上而不是在索引中时。
查询包含的 GROUP BY 是在列上而不是在索引中时。
很难预料创建的索引是否可避免使用临时表。因此,应检查查询计划以确保 UltraLite 查询优化程序实际使用了创建的索引。
通过对用于 ORDER BY 或 GROUP BY 子句中的列使用索引可以避免使用临时表。
![]() |
使用DocCommentXchange讨论此页。
|
版权 © 2013, SAP 股份公司或其关联公司. - SAP Sybase SQL Anywhere 16.0 |