我需要創建as400「邏輯文件」。我可以使用sql在AS400中創建「邏輯文件」嗎?
我的應用程序通過jdbc連接到數據庫。
是否可以用sql語句創建「邏輯文件」?
如果是,我將不勝感激舉例說明。
感謝
我需要創建as400「邏輯文件」。我可以使用sql在AS400中創建「邏輯文件」嗎?
我的應用程序通過jdbc連接到數據庫。
是否可以用sql語句創建「邏輯文件」?
如果是,我將不勝感激舉例說明。
感謝
我建議使用綠屏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)
自己花了很長時間來創建索引,但基於該指數後續查詢速度非常快。
如果您需要加入多個表格,請提前計劃。瞭解您將用於連接表的字段,並根據連接的表創建索引。你會得到你正在尋找的性能提升。舉一個例子,讓我們做一個查詢,顯示顧客訂購的物品:
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)
如果您需要創建一個邏輯文件選擇/省略標準,那麼你需要創建一個視圖。儘管一個視圖並不是一個索引,但你不能像索引和視圖那樣通過帶有select/omits的鍵控邏輯來混合。爲此,DDS規格仍然是最好的。
實現了在AS/400 DB2中的所有表許多相同的效果,我創建數據庫視圖,映射更容易理解的名稱到物理的。我不認爲視圖是邏輯文件,但我只是所述AS/400的用戶,並且完全瞭解與數據交互所需的信息。
如果您嘗試在您的視圖中進行訂購,這將有所幫助,但如果您遇到性能問題,這將無法幫助您。數據
樣品basetable
:
A
B
C
A
A
A
查詢:從myview1
A
A
A
A
B
C
數據
樣品你們是不是要創建選擇/邏輯文件遺漏或有你試圖爲更快的查詢創建一個新的索引? – 2011-01-31 13:48:21
@Tracy Probst嗨,我最初的目的是創建一個物化查詢,其中包含多個表的選擇性能(我有這個問題:http://stackoverflow.com/questions/4843521/not-able-to-create - 實體查詢-ON-AS400)。作爲替代方案,我試圖創建一個邏輯文件,據我的理解,它相當於物化查詢,只是它用指向原始表的指針(我假設它索引那些表以適合查詢)替換實際數據。我主要關心的是性能。 – 2011-01-31 14:34:33
我想你可能在這裏的術語上有點卡住了。現在稱爲IBM i操作系統的「as400」以兩種基本方式之一來描述文件。無論是物理還是邏輯文件。一個SQL表就像一個物理表。索引和視圖就像邏輯。參考:http://wiki.midrange.com/index.php/SQL – 2011-02-03 16:33:31