Sent: Thursday, May 14, 2015 10:27 PM
Q1. 客户用了很多select , 但在后面的程序里面只用到了LT_ORDERADM_H 的部分fields, select 会影响性能么?
SELECT * INTO CORRESPONDING FIELDS OF TABLE LT_ORDERADM_H FROM CRMD_ORDERADM_H AS A1 INNER JOIN CRM_JEST AS B1 ON B1~OBJNR = A1~GUID WHERE A1~PROCESS_TYPE EQ 'ZQ32' AND B1~STAT IN ('E0002','E0004','E0006') .
Q2.上面这段,满足crmd_orderadm_h~process_type = ZQ32的有6200条,满足CRM_jest的有300多万条。觉得可以用NLJOIN,可是翻译出来是用了HSJOIN。想问下怎么加hint可以强制到NLJOIN呢?我的格式怎么加也加不对。。。无法在ST05里面看到结果。。
SELECT * FROM "CRMD_ORDERADM_H" T_00 INNER JOIN "CRM_JEST" T_01 ON T_01."MANDT" = ? AND T _01."OBJNR" = T_00."GUID" WHERE T_00."CLIENT" = ? AND T_00."PROCESS_TYPE" = ? AND T_01."STAT" IN ( ?, ?, ? ) WITH UR /* <OPTGUIDELINES> ç=============我想加这个hint, 改到NLJOIN, 驱动表是crmd_orderadm_h,然后给CRM_JEST强制用index ~0,但是ST05失败。。 <NLJOIN> <IXSCAN TABLE='T_00' INDEX='"T_00~ARC"'/> <IXSCAN TABLE='T_01' INDEX='"T_01~0"'/> </NLJOIN> </OPTGUIDELINES> */
只有用到 /* */的时候变成了NLJOIN
解析如下,有warning.

不加hint时,解析如下,estimated costs还比加了hint少呢。。。是这么看的么?
要获取更多Jerry的原创文章,请关注公众号"汪子熙":