用法 您可在任何时刻执行 SET OPTIMIZATION 语句。在当前的数据库服务器上跨数 据库地支持指定的优化级别。您指定的选项保持有效,直到您发出另一 SET OPTIMIZATION 语句或直到程序结束为止。对于查询优化器为确定查询计划而花 费的时间量,缺省的数据库服务器优化级别为 HIGH。 在 GBase 8s 上,缺省的优化目标为 ALL_ROWS。虽然在某一时刻您仅可设置一 个选项,但您可发出两个 SET OPTIMIZATION 语句:一个指定优化器为确定查 询计划所花费的时间,一个指定查询的优化目标。 类似地,您可发出包括 ENVIRONMENT 选项的多个 SET OPTIMIZATION 语句 来指定用于优化查询的会话环境。在数据仓库应用中,适当的优化器环境可提升 在星型模式中表的连接查询的性能。保持优化器环境设置,直到另一 SET
GBase 8s SQL 指南:语法 南大通用数据技术股份有限公司 1063 OPTIMIZATION ENVIRONMENT 语句覆盖它们为止,或直到会话结束为止。要 获取更多信息,请参阅 ENVIRONMENT 选项 主题。 示例 下列示例展示跨网络的优化。central 数据库(在 midstate 数据库服务器上) 将有 LOW 优化;western 数据库(在 rockies 数据库服务器上)将有 HIGH 优化。 CONNECT TO 'central@midstate'; SET OPTIMIZATION LOW; SELECT * FROM customer; CLOSE DATABASE; CONNECT TO 'western@rockies'; SET OPTIMIZATION HIGH; SELECT * FROM customer; CLOSE DATABASE; CONNECT TO 'wyoming@rockies'; SELECT * FROM customer; 在此,wyoming 数据库将有 HIGH 优化,因为它驻留在与 western 数据库相同 的数据库服务器上。该代码不需要为 wyoming 数据库重新指定优化级别,因为 wyoming 数据库像 western 数据库一样,驻留在 rockies 数据库服务器上。 下列示例指导 GBase 8s 优化器使用大部分时间来确定查询计划,然后尽可能返 回结果的前几行: SET OPTIMIZATION LOW; SET OPTIMIZATION FIRST_ROWS; SELECT lname, fname, bonus FROM sales_emp, sales WHERE sales.empid = sales_emp.empid AND bonus > 5,000 ORDER BY bonus DESC; HIGH 和 LOW 选项 HIGH 和 LOW 选项确定查询优化器花费多长时间来确定查询计划: HIGH 此选项指导优化器使用复杂的基于成本的算法,测试所有合理的查询计划 选择并选择总体上最佳的选项。