在某些查询中,可能希望仅查找查询结果中的前几行。或者,您可能了解到所有行都必须访问,并从查询中返回。可以使用优化目标伪指令来查找满足查询的第一行或满足查询的所有行。
例如,可能希望仅查找查询结果的前几行,因为 GBase 8s ESQL/C 程序打开一个查询游标并执行 FETCH 以便只查找首行。
选择一个计划,该计划对仅满足查询的首行查找过程进行了优化。
选择一个计划,该计划对满足查询的所有行(缺省行为)的查找过程进行了优化。
如果使用 FIRST_ROWS 伪指令,那么优化器可能将提前废弃包含耗时活动的查询计划。例如:散列连接可能会花费大量时间来创建散列表。如果只有几行必须返回,那么优化器可能改为选择嵌套循环连接。
SELECT * FROM employee, department WHERE employee.dept_no = department.dept_no
SELECT {+first_rows} * FROM employee, department WHERE employee.dept_no = department.dept_no