我可以使用sql在AS400中创建"逻辑文件"吗?

Aba*_*Dov 1 sql db2 jdbc view ibm-midrange

我需要创建as400"逻辑文件".

我的应用程序使用jdbc连接到数据库.

是否可以使用sql语句创建"逻辑文件"?

如果是的话,我希望得到一份样本声明.

谢谢

Tra*_*bst 5

我建议使用绿屏STRSQL命令中的CREATE INDEX SQL命令.然后你可以提示它.这是一个CREATE INDEX示例,它让我可以更快地查询16 GB的文件.对于此示例,物理文件是数据库监视器的结果,而不是运行一周:

CREATE INDEX QGPL.QZG0000016_QUERYJOB ON QGPL.QZG0000016
(QQJNUM ASC, QQUSER ASC, QQJOB ASC, QQUCNT ASC, QQRID ASC, QQI5 ASC)
Run Code Online (Sandbox Code Playgroud)

索引本身需要很长时间才能创建,但后续基于索引的查询速度非常快.

如果您需要加入多个表,请提前计划.了解将用于连接表的字段以及针对连接表创建索引.你会得到你正在寻找的性能提升.例如,让我们组成一个查询来显示客户订购的商品:

SELECT ORDETAIL.ITEM_NAME, ORDETAIL.QUANTITY, ORHEADER.SHIPDATE
FROM ORHEADER
INNER JOIN ORDETAIL ON ORDETAIL.ORDERID = ORHEADER.ORDERID
WHERE ORHEADER.CUST_NUM = 123456
Run Code Online (Sandbox Code Playgroud)

如果它们尚不存在,您将生成以下索引:

CREATE INDEX DATALIB.ORHEADER_BY_CUSTOMER ON DATALIB.ORHEADER (CUST_NUM ASC, ORDERID)
CREATE INDEX DATALIB.ORDETAIL_BY_ORDER ON DATALIB.ORDETAIL (ORDERID)
Run Code Online (Sandbox Code Playgroud)

如果需要创建逻辑文件select/omit criteria,则需要创建视图.但是,视图不是索引,并且您不能像使用带有选择/省略的键控逻辑那样混合索引和视图.为此,DDS规范仍然是最好的.

  • 我还会将ORDERID添加到客户索引的末尾; (CUST_NUM ASC,ORDERID).然后,优化器将首先使用该索引,获取指向id的指针并踩到第二个索引.快快.这就像连接点:) (2认同)