使用 SQL 访问 DDS 定义的表时,省略使用 DB2/400 创建临时访问路径

Omitting the creation of a temporary access path with DB2/400 when accessing DDS-defined tables with SQL

我在DDS中有两个table定义,编译成*FILE对象并填充数据:

昆普夫:

A                                      UNIQUE
A          R KUNTBL
A            FIRMA         60A         ALWNULL
A            KUNR           5S 0B
A            KUNID          4S 0B
A          K KUNR
A          K KUNID

昆苏普夫:

A          R KUNSUTBL
A            KUNID     R        B      REFFLD(KUNID KUN/KUNPF)
A
A            SUCHSTR       78A
A          K SUCHSTR
A          K KUNID

我在交互式 SQL (STRSQL) 中使用以下语句:

SELECT DISTINCT FIRMA, KUNR FROM KUN/KUNPF
 LEFT JOIN KUN/KUNSUPF ON (KUNPF.KUNID = KUNSUPF.KUNID)
 WHERE SUCHSTR LIKE 'Freiburg%'
 ORDER BY FIRMA
 FOR READ ONLY

每次执行此语句时,我都会有相当长的延迟,直到答案屏幕打开。预先显示一条消息,说明正在创建临时访问路径。

我怎样才能知道 which/how 这个临时访问路径已经创建? 我的目标是让这个访问路径永久化,这样就不需要了每次调用此查询时都会重建。

我在网上搜索(尤其是 IBM 站点),但我发现的主要是 z/OS 上的 DB2。 F4-STRSQL 中的提示工具没有提供帮助:我正在从 MySQL 中搜索类似 EXPLAIN SELECT 的内容。 IBM DB2 Advanced Functions and Administration PDF 指出有一个调试模式,但它似乎只能从一些(旧的)Windows 工具中使用,我不记得有.

如果相关的话,我正在使用 V4R5。

v4r5???好像20岁...

对于 IBM i,旧 Client Access For Windows iSeries Navigator 组件的 "Run SQL Scripts" 组件和新的 Access Client Solutions (ACS) 包含 Visual Explain (VE)。

幸运的是它似乎被添加到 v4r5 http://ibmsystemsmag.com/ibmi/administrator/db2/database-performance-tuning-with-visual-explain/

只需启动 iNav,右键单击 "Database" 和 select "Run SQL Scripts"

将您的查询粘贴到此处并单击 "Visual Explain" -->"Run and Explain"
(或对应按钮)

可选,绿屏。
执行 STRDBG 进入调试模式,F12 继续,然后进入 STRSQL。然后,Db 优化器会将其他消息输出到作业日志中,为您提供有关其正在执行的操作的更多信息。

看到绿屏上的访问路径...

  • strdbg

  • strsql

  • 运行 你的声明

  • 退出 f3

  • enddbg

  • dspjoblog

    访问路径消息位于日志底部 f10 f18 afaik