Мне нужно создать as400 "логических файлов".
мое приложение подключается к базе данных с помощью jdbc.
Можно ли создавать «логические файлы» с операторами sql?
Если да, то буду признателен за образец заявления.
Благодарность
Мне нужно создать as400 "логических файлов".
мое приложение подключается к базе данных с помощью jdbc.
Можно ли создавать «логические файлы» с операторами sql?
Если да, то буду признателен за образец заявления.
Благодарность
Я предлагаю использовать команду CREATE INDEX SQL из команды STRSQL с зеленым экраном. Тогда вы можете подсказать это. Вот пример CREATE INDEX, который позволил мне гораздо быстрее запрашивать файл размером 16 гигабайт. В этом примере физический файл был результатом работы монитора базы данных в течение недели:
CREATE INDEX QGPL.QZG0000016_QUERYJOB ON QGPL.QZG0000016
(QQJNUM ASC, QQUSER ASC, QQJOB ASC, QQUCNT ASC, QQRID ASC, QQI5 ASC)
Сам индекс создавался долго, но последующие запросы на основе индекса выполнялись очень быстро.
Если вам нужно присоединиться к нескольким столам, планируйте заранее. Знайте поля, которые вы будете использовать для объединения таблиц, и создайте индексы для объединенных таблиц. Вы получите желаемое увеличение производительности. Например, давайте составим запрос, чтобы показать товары, заказанные покупателем:
SELECT ORDETAIL.ITEM_NAME, ORDETAIL.QUANTITY, ORHEADER.SHIPDATE
FROM ORHEADER
INNER JOIN ORDETAIL ON ORDETAIL.ORDERID = ORHEADER.ORDERID
WHERE ORHEADER.CUST_NUM = 123456
Вы бы сделали следующие индексы, если бы они еще не существовали:
CREATE INDEX DATALIB.ORHEADER_BY_CUSTOMER ON DATALIB.ORHEADER (CUST_NUM ASC, ORDERID)
CREATE INDEX DATALIB.ORDETAIL_BY_ORDER ON DATALIB.ORDETAIL (ORDERID)
Если вам нужно создать логические критерии выбора/исключения файла, вам необходимо создать представление. Тем не менее, представление не является индексом, и вы не можете смешивать индекс и представление, как вы можете с ключевой логикой с выбором/пропуском. Для этого спецификация DDS по-прежнему является лучшей.
Это поможет, если вы пытаетесь упорядочить по своему представлению, но на самом деле не поможет, если у вас есть проблемы с производительностью.
Пример данных basetable
:
A
B
C
A
A
A
Запрос:
create view myview1 as
select lib
from(
SELECT rank() over(order by lib), lib
FROM basetable) a
Пример данных из myview1
A
A
A
A
B
C
Чтобы достичь того же эффекта, я создал представления базы данных для всех таблиц в AS/400 DB2, сопоставив более понятные имена с физическими. Я не думаю, что представления являются логическими файлами, но я всего лишь пользователь упомянутой AS/400 и знаю о ней ровно столько, сколько необходимо для взаимодействия с данными.