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

SQL Anywhere 12.0.1 » SQL Anywhere 服务器 - SQL 的用法 » 查询和修改数据 » 查询

 

高级:查询优化

优化实质上就是为查询生成一个合适的访问计划。对查询完成语法分析之后,查询优化程序(或简称优化程序)将对该查询进行分析并决定一个使用尽可能少的资源来计算结果的访问计划。优化正好在执行之前开始。如果您正在应用程序中使用游标,优化将在游标打开时开始。

与其它许多商业数据库系统不同,SQL Anywhere 通常恰好在每个语句执行之前对该语句进行优化。由于 SQL Anywhere 对每个语句执行实时优化,因此优化程序可以访问主机变量和存储过程变量的值,从而可以更好地进行选择性估计分析。此外,实时优化还允许优化程序根据执行先前的查询后所保存的统计信息来调整其选择。

为了高效运行,SQL Anywhere 将查询重写为在语义上等效但在语法上不同的形式。SQL Anywhere 可执行许多不同的重写操作。如果读取访问计划,则经常会发现其并不对应于初始语句的文字解释。例如,为使 SQL 语句更加有效,优化程序会尽可能多地尝试用连接重写子查询。

要了解有关 SQL Anywhere 查询处理的详细信息,请参见白皮书《Query Processing Based on SQL Anywhere 12.0.1 Architecture》(网址:[external link] http://www.sybase.com/detail?id=1096047)。


优化程序的工作原理
在查询处理过程中执行的优化