DB2 SQL中OPTIMIZE FOR ROWS的目的是什么?有什么用?

OPTIMIZE FOR N ROWS是一个DB2子句,我们可以在查询中添加该子句以仅优先检索前几行。此子句将使优化程序选择访问路径,以最小化获取前几行的响应时间。

OPTIMIZE FOR N ROWS子句对SELECT DISTINCT和COUNT函数无效,因为DB2将需要整个限定行才能获取DISTINCT行或COUNT行数。OPTIMIZE FOR N ROWS子句为DB2提供了建立访问路径的更好机会。

如下所示,可以在SQL查询中使用OPTIMIZE FOR N rows子句。

示例

SELECT ORDER_ID, ORDER_TOTAL FROM ORDERS

   ORDER BY ORDER_TOTAL DESC

   OPTIMIZE FOR 2 ROWS

我们将仅使用“ FETCH FIRST n ROWS”限制返回的行数,并且不会考虑合格行的实际数。

我们可以使用OPTIMIZE FOR N ROWS的实际情况是CICS屏幕,在这里我们只能显示5个订单的列表。

示例

SELECT ORDER_ID, ORDER_TOTAL FROM ORDERS

   ORDER BY ORDER_TOTAL DESC

   OPTIMIZE FOR 5 ROWS

例如,我们的DB2 ORDERS表具有以下数据。

ORDER_ID
INVOICE_ID
IRN22345
Z451189
IRN89767
Z451189
IRN67331
Z955189
IRN56902
Z225184
IRN99781
Z896671
IRN09863
Z225184
IRN34119
Z094711
IRN10933
Z189112
IRN67114
Z009117
IRN31990
Z551891

 

我们的OPTIMIZE FOR 5 ROWS查询的结果将如下所示。

ORDER_ID
INVOICE_ID
IRN99781
Z896671
IRN89767
Z451189
IRN67331
Z955189
IRN67114
Z009117
IRN56902
Z225184

以上是 DB2 SQL中OPTIMIZE FOR ROWS的目的是什么?有什么用? 的全部内容, 来源链接: utcz.com/z/330814.html

回到顶部