Click here to view and discuss this page in DocCommentXchange. In the future, you will be sent there automatically.

SQL Anywhere 12.0.1 » UltraLite - 数据库管理和参考 » UltraLite 性能提示 » 查询性能提示 » UltraLite 中的执行计划

 

确定优化程序使用的访问方法

为查询优化选择索引时,UltraLite 优化程序使用复杂的优化策略。但是,您无法使用简单查询轻易地预先确定优化程序用来优化查询性能的索引,或是否使用了某个索引。复杂程度增加时,选择的索引取决于查询所需的子句。通常,FOR READ ONLY 子句的出现可能导致优化程序选择直接表扫描,而不是选择能提供更好查询性能的索引。

优化查询时,优化程序将查看查询的要求,并检查是否存在可用来提高性能的任何索引。如果使用任何索引都无法提高性能,优化程序将不扫描索引,而是使用临时表或直接页扫描。因此,您可能需要对索引进行试验并经常检查生成的执行计划以确保:

  • 不是在维护优化程序不使用的索引。

  • 将要创建的临时表的数目降到最低。

对于复杂查询,更很难预知要使用哪个索引。例如,如果查询包含 WHERE 谓语,且除了 ORDER BY 子句以外还包含 GROUP BY 子句,则单独的一个索引可能不会满足此查询的搜索条件。因此,如果您创建了一个索引来满足 WHERE 谓语的选择性要求,您可能会发现优化程序实际上并未使用此索引。相反,优化程序可能使用一个为 ORDER BY 条件提供更好性能的索引,因为可能需要更多地处理此子句。

 检查执行计划
 另请参见

管理临时表