我如何知道我的查询使用了我使用的表的索引? - 进度 4GL

问题描述 投票:0回答:1

我使用下面的查询来检查临时表中的数据。还定义了一个索引。我可以感觉到,将索引添加到临时表后,查询会尽快给出结果。我想知道编译器如何使用索引。有没有办法找到编译器针对我使用过的查询使用的索引列表。

注意 - 我知道 XREF 为非索引表提供了 WHOLE-INDEX。但我无法找出索引表使用的所有索引是什么。

DEFINE TEMP-TABLE TT_DATA NO-UNDO
FIELD TT_PART  AS CHARACTER
FIELD TT_DESC  AS CHARACTER
FIELD TT_IN    AS CHARACTER
FIELD TT_VEND  AS CHARACTER
FIELD TT_GLOB  AS CHARACTER
FIELD TT_TYPE  AS CHARACTER  
INDEX TT_IDX1 IS PRIMARY
TT_PART
TT_IN 
TT_VEND
.

FOR EACH <TABLE> NO-LOCK:
 FIND TT_DATA NO-LOCK
    WHERE TT_PART = "015564"
    AND   TT_IN = "VC"
    AND  TT_VEND = "SUPPLIER" NO-ERROR.
    
  IF AVAILABLE TT_DATA THEN
  DO:
   /*ACTUAL LOGIC GOES HERE*/ 
  END. /* IF AVAILABLE TT_DATA THEN*/
END. /*FOR EACH <TABLE> NO-LOCK:*/
openedge progress-4gl
1个回答
0
投票

如果您使用 XREF,则查找 SEARCH 行(如果是 XML,则为元素)。他们告诉您用于该查询的索引。

相同的 SEARCH 行会告诉您这是否是一个 WHOLE-INDEX 查询。

© www.soinside.com 2019 - 2024. All rights reserved.