0

我們有一臺運行DB2事務數據庫的AS400大型機。我們還有一個SQL Server安裝程序,每天晚上裝載來自AS400的數據。 SQL Server安裝程序用於報告。鏈接到SQL Server 2005後,DB2事務數據庫的性能受到影響

我可以鏈接兩個數據庫服務器,但是,擔心DB2可能因來自SQL Server的查詢而遭受的性能有多大。

基本上,擔心的是,如果我們開始使用SQL Server的查詢命中DB2,那麼我們將陷入事務性系統的困境,並搞砸訂單和運輸。

預先感謝任何可以共享的知識。

+0

什麼是當前IBM i機器配置?硬件型號,主內存和磁盤大小(特別是武器數量)?每小時多少次額外交易?每個交易有多寬(即每行將獲得1000個字節還是100個) - 確定網絡帶寬以及磁盤負載。另外,考慮將更改從DB2推送到SQL Server,而不是試圖從SQL Server中提取,因爲這隻會將更改移至SQL Server。 –

+0

我沒有任何這些細節,但你的問題似乎已經揭示了這個問題沒有輕拍的答案。基本上有一個文化問題,任何新的東西都會被恐懼,一個管理者會說一個新的想法會殺死系統的性能(例如,我們的SQL Server表沒有一個索引,因爲「索引使數據庫運行緩慢」 – sothatswhereitgoes

+1

我們試圖做的是獲得一個報告(導出到Excel)以實時生成(或非常接近實時)報告大約有1,000行,大約16個字段,從大約5 – sothatswhereitgoes

回答

1

任何對性能問題有輕拍回答的人都是錯的:-)適當的答案是總是'它取決於'。性能調優最好通過度量來完成,更改一個變量並重復。

如果有人執行1,000行SELECT語句,我甚至不應該注意DB2。拿Benny的建議,並在IBM i側觀看時運行一個。如果他們想要提示,請使用WRKACTJOB並對Int列進行排序。這代表了交互式響應時間。我猜猜查詢會在他們有時間注意到它是活躍的之前完成。

如果這對於管理層來說似乎是不可接受的,那麼可能會提議在幾個小時之前或之後對其進行測試,從而不會影響交互式性能。

另外,RPG傢伙也可以隨時創建Excel電子表格。 Scott Klement在Java POI/HSSF類上發佈了一些RPG包裝。此外,Giovanni Perrotti在Easy400.net有一些從網頁提供Excel電子表格的例子。

+0

完全同意你Buck,我還會提及[DBG/400](http://www.dbg400.net/foswiki/bin/view/DBG400/IndexPage)軟件,它可以快速輕鬆地進行分析eate CSV文件。很明顯,CSV的並不是真正的Excel電子表格,但我的一個客戶十多年來一直對他們感到滿意:-) –

+0

感謝所有的輸入 - 這絕對是真的關於性能的最佳答案是'取決於' 。不幸的是,沒有機會去測試任何東西,因爲這個問題已經下降到'不要在我們的舒適區之外做任何事情'的水平。我可能會碰到DB2像一個紅頭髮的小孩,他們不知道,但我還有其他的戰鬥要打。 – sothatswhereitgoes

+0

回覆:Excel文件。雖然即使是一個適中的i服務器,即使來自多個文件(表格)的1000行查詢也不應該出汗,但生成一個具有16列的1000行Excel文件的速度相當慢。使用RPG的重複Java調用(這是Scott的東西,而Giovanni的東西似乎只是用於包裝Scott的包裝)的速度非常緩慢。斯科特會親自告訴你的。 –

0

我想大多是巴克同意,一個有1000行的結果集是沒什麼大不了的......

當然,除非該系統橫跨數百個表翻翻數十億行的,以獲得1000行你感興趣。

假設有一個有用的索引存在,1000行不應該是一個大問題。如果您安裝了IBM i Access for Windows,則系統i導航器的一個名爲「運行SQL腳本」的組件包含「Visual Explain」,該組件提供查詢執行計劃的可視說明。查看您可以確保正在使用索引。

重要的是,確保工作正在完成。當使用標準鏈接表時,MS SQL Server將嘗試撤回所有行,然後執行它自己的「where」。

select * from MYLINK.MYIBMI.MYLIB.MYTABE where MYKEYFLD ='00335';

而這種格式發送語句來處理遠程服務器和剛剛回來的結果: '從mylib.mytable選擇*其中MYKEYFLD = '

SELECT * FROM OPENQUERY(myLink的,' 00335' '' );

或者,您可以讓我們爲您建立一個存儲過程,您可以調用該存儲過程來獲取您正在查找的結果。就個人而言,這是我的首選方法。

Charles

相關問題