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

SQL Anywhere 11.0.1 (中文) » SQL Anywhere 服务器 - 数据库管理 » 配置数据库 » 数据库选项 » 数据库选项简介 » 按字母顺序排列的选项列表

 

optimization_level 选项 [数据库]

控制 SQL Anywhere 查询优化程序为查找 SQL 语句的访问计划而消耗的资源量。

允许值

0-15

缺省值

9

注释

optimization_level 选项控制 SQL Anywhere 优化程序为优化 SQL 数据操作语言 (DML) 语句而消耗的资源量。此选项控制优化程序将对任何 SELECT 块最多考虑多少种备用连接策略。optimization_level 设置越高,优化程序考虑的最大连接策略数就会越多。

如果此选项设置为 0,则 SQL Anywhere 优化程序选择它考虑执行的第一个访问计划,从而有效避免对备用计划进行基于开销的比较。此外,如果级别为 0,则禁用某些嵌套查询的语义优化。如果将此选项设置为大于 0 的值,则优化程序会计算备用策略,并选择预计开销最低的策略。如果此选项的设置值大于缺省值 (9),优化程序将更积极地搜索备用策略,因而可能在优化阶段花费更多的时间。

通常情况下,如果应用程序希望更快地打开 DML 语句,可将此选项临时设置为较低的级别(0、1 或 2)。我们已经了解,尽管语句可能很复杂,但查询执行时间非常短,因而优化程序选择哪个访问计划关系不大。我们建议您不要更改 optimization_level 的缺省 PUBLIC 设置。

设置 optimization_level 选项的效果与 optimization_goal 和 optimization_workload 选项设置无关。

简单 DML 语句(在 WHERE 子句中包含相等条件且唯一地标识特定行的单块、单表查询)均经过启发式优化,并完全跳过基于开销的优化程序。简单 DML 语句的优化不受 optimization_level 选项设置的影响。通过优化程序跳过机制优化的请求数可通过 QueryBypassed 连接属性检索。

有关 QueryBypassed 连接属性的详细信息,请参见连接属性

通过在 INSERT、UPDATE、DELETE、SELECT、UNION、EXCEPT 和 INTERSECT 语句中包括 OPTION 子句,可以替代此选项在各个语句中的任何临时或公共设置。请参见: