第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

DB2 插入性能

DB2 插入性能

慕桂英546537 2023-09-27 16:46:38
我正在嘗試從 Excel 文件批量插入 DB/2。我在 Windows 10 電腦上運行 WildFly 12。DB/2 在 CentOS 7 下的 VM 上運行。使用 POI SAX 方法,讀取包含 2.5M 記錄的完整 XLSX 文件需要 80 秒。我開始在 EJB 程序中使用簡單的插入,將文字插入到表中。這花了大約 1.5 小時。閱讀https://www.idug.org/p/bl/et/blogid=2&blogaid=602后,我改為使用批處理準備語句。我還首先寫入全局臨時表,最后使用“INSERT INTO SELECT ... FROM”。關閉自動提交。最終結果仍然需要一個小時,即每秒 750 次插入。準備物品:       // get connection using DriverManager class        try {            connection = DriverManager.getConnection(                    "jdbc:db2://192.168.0.5:50000/mydb",                    "hussain",                     "hussain");        } catch (SQLException e1) {            out.println("Failed to get connection");            e1.printStackTrace();            return;        }        // Clear the table        try {            Statement statement = connection.createStatement();            statement.execute("TRUNCATE TABLE " + strMainTable + " IMMEDIATE");            statement.execute("ALTER TABLE " + strMainTable + " ALTER COLUMN ID RESTART WITH 1 ACTIVATE NOT LOGGED INITIALLY");            statement.close();        } catch (SQLException e2) {            out.println("Failed to clear table<br>");            e2.printStackTrace();            return;        }        try {            Statement statement = connection.createStatement();            statement.execute("DROP TABLE " + strTempTable);            statement.close();        } catch (SQLException e2) {            out.println("Failed to delete table<br>");        }是的,DB/2 在虛擬機中運行,因此寫入速度受到很多因素的影響。盡管如此,750 條記錄/秒還是非常慢的。文章作者說他最差的速度是3000/s,最好的是140k/s。能靠近就好了。我還應該看什么?
查看完整描述

3 回答

?
小怪獸愛吃肉

TA貢獻1852條經(jīng)驗 獲得超1個贊

您的評論線程提到在可接受的時間內填充未記錄的會話表(聲明的全局臨時表),但您發(fā)現(xiàn)大部分時間都花在從會話表到最終表進行記錄的插入選擇上。

記錄的插入比加載慢得多,但有時是唯一的選擇。

您還可以使用各種技術來加速 Db2-LUW 上記錄的插入速度,這些技術超出了本問題的范圍,但 DBA 熟知這些技術。

我的建議是使用ADMIN_CMD存儲過程調用從光標加載操作來填充最終表。

您測試了此方法并發(fā)現(xiàn)性能可以接受。

請注意,在 HA 配置中,您需要考慮負載的影響,可能需要使用load copy或其他方法進行同步或恢復(數(shù)據(jù)庫恢復等)。

如果 Db2 在云服務上運行,則可能還需要重新考慮該方法,具體取決于供應商提供的服務。


查看完整回答
反對 回復 2023-09-27
?
江戶川亂折騰

TA貢獻1851條經(jīng)驗 獲得超5個贊

您可以關閉對主表的插入記錄。

alter table main_table activate 最初未記錄。

該設置將一直保留,直到您進行提交。

如果您可以將 Excel 導出為逗號分隔文件,則可以使用加載命令,該命令要快得多。


查看完整回答
反對 回復 2023-09-27
?
翻閱古今

TA貢獻1780條經(jīng)驗 獲得超5個贊

更改你的strmaintable Id 列緩存 1000,無順序。

默認生成的id整數(shù)非null作為身份(從1開始,遞增1,緩存1000,無順序)

https://developer.ibm.com/technologies/databases/articles/dm-0403wilkins/#table5


查看完整回答
反對 回復 2023-09-27
  • 3 回答
  • 0 關注
  • 143 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網(wǎng)微信公眾號