SQL+ 标记(手工完成)详细说明

SQL+ 标记(手工完成)详细说明

使用 SQL+ 操作流程 讲解了从 SQL 预处理手写 SQL+ 到生成 SPL 的 一个整体流程,接下来详细介绍整个存储过程所用到的几个常用 SQL+ 标记:
1.
SQL: select * from WEB_APP_PRM_COEF t.

SQL+: Select * from WEB_APP_PRM_COEF/* +btx*/ t.

DFX:
imagepng
/* +btx*/ 标记 SQL+ 转 DFX,该表为内存计算,找集算器主目录下 table.btx;主目录下不存在 table.btx 时,集算器 SQL+ 转 spl 会出现错误提示“文件不存在时不支持 SELECT * FROM …”。

2.
SQL: select * from ALLD_WEB_PLY_ENT_TGT t.

SQL+: Select * from /* +external*/ALLD_WEB_PLY_ENT_TGT/* +ctx*/ t.

DFX:
imagepng

/* +external*/ 标记 SQL+ 转 DFX,该表不可内存,SPL 翻译 cursor 使用游标计算;同理 /* +ctx*/ 找集算器主目录下 table.ctx。

3.
SQL: Select M.c_rpt_no FROM web_vhlclm_main M left join
                web_vhlclm_ply  PLY
 on M.c_rpt_no = PLY.c_rpt_no AND M.C_PLY_NO = PLY.C_PLY_NO

SQL+:Select M.c_rpt_no FROM web_vhlclm_main/+btx/ M /* +foreign*/left join
             web_vhlclm_ply/* +btx*/ PLY
  on M.c_rpt_no = PLY.c_rpt_no AND M.C_PLY_NO = PLY.C_PLY_NO

DFX:
imagepng
/* +foreign*/ 标记 SQL 转 SQL+,表内存计算时,dfx 关联用 join(),/* +foreign*/ 外键关联表全内存时 join 左右不需要根据关联字段排序。

4.
SQL: select A.C_AMT_CUR from   WEB_PLY_BASE  A  
left join WEB_BAS_FIN_CUR  cur
on A.C_AMT_CUR = CUR.C_CUR_CDE
and A.C_PRM_CUR = CUR.C_CUR_CDE

SQL+: select A.C_AMT_CUR from  /* +external*/ WEB_PLY_BASE /* +ctx*/ A  /* +foreign*/ left join /* +external*/WEB_BAS_FIN_CUR /* +ctx*/ cur
on A.C_AMT_CUR = CUR.C_CUR_CDE
and A.C_PRM_CUR = CUR.C_CUR_CDE

DFX:
imagepng
/* +foreign*/ 标记 SQL 转 SQL+,表外存计算时,dfx 关联用 cs.joinx(),/* +foreign*/ 外键关联表外存时 joinx 右表需要根据关联字段排序。

5.
SQL: Select A.C_APP_NO  FROM WEB_PLY_BASE A
left JOIN  WEB_RES_RI_PLYEDR B
ON A.C_APP_NO = B.C_APP_NO

SQL+: Select A.C_APP_NO  FROM WEB_PLY_BASE/* +btx*/ A
/* +primary*/left JOIN  WEB_RES_RI_PLYEDR/+btx/ B
ON A.C_APP_NO = B.C_APP_NO

DFX:
imagepng
/* +primary*/ 标记 SQL 转 SQL+,表内存计算时,dfx 关联用 join@m(),join 左右根据关联字段(主键)排序,用归并法计算,提升性能,一般出现 join 之后结果为空,或者数据条数于数据库结果不匹时,可优先检查字段排序问题。

6.
SQL: Select A.C_APP_NO from WEB_PLY_BASE  A
 LEFT JOIN  
 WEB_PLY_FEE  FEE
ON A.C_APP_NO = FEE.C_APP_NO

SQL+: Select A.C_APP_NO from /* +external*/ WEB_PLY_BASE /* +ctx*/ A
/* +primary*/ LEFT JOIN  
/* +external*/ WEB_PLY_FEE /* +ctx*/ FEE
ON A.C_APP_NO = FEE.C_APP_NO

DFX:
imagepng
/* +primary*/ 标记 SQL 转 SQL+,表外存计算时,dfx 关联用 joinx()。

7.
SQL: Select A.C_APP_NO from WEB_PLY_BASE  A
 LEFT JOIN  
 WEB_PLY_FEE  FEE
ON A.C_APP_NO = FEE.C_APP_NO

SQL+: Select A.C_APP_NO from /* +external*/ WEB_PLY_BASE /* +ctx*/ A
/* +primary*/ LEFT JOIN  
/* +order*/ /* +external*/ WEB_PLY_FEE /* +ctx*/ FEE
ON A.C_APP_NO = FEE.C_APP_NO

DFX:
imagepng
/* +order*/ 标记 SQL+ 转 DFX,该标记只支持 /* +external*/ 外存计算,不支持内存表计算;joinx@1(A1:L,C_APP_NO;A2.sortx(C_APP_NO):R,C_APP_NO),joinx 对关联字段 sortx() 排序。

8.
1.SQL:select * from WEB_PLY_BASE A

SQL+:select * from /* +parallel (5) /  / +external*/ WEB_PLY_BASE /* +ctx*/ A

DFX:
imagepng
/* +parallel*/ 标记 SQL+ 转 DFX,生成并行多路游标,A.cursor@m(;n),返回成多路游标,n 表示路数。