0
我們在informix數據庫表中有2.3億條記錄,我們將表分成4個部分,但仍然花費大約80秒來插入/更新2000條記錄,有人建議更好的想法,以減少時間少於20秒?Informix數據庫表更新
我們在informix數據庫表中有2.3億條記錄,我們將表分成4個部分,但仍然花費大約80秒來插入/更新2000條記錄,有人建議更好的想法,以減少時間少於20秒?Informix數據庫表更新
使用光標可能會加速很多事情。但在刷新或關閉行之前請記住,可能無法讀取「讀取乾淨」行。 我不知道你在用什麼樣的語言,所以我選擇4js genero作爲例子。
PREPARE p FROM "INSERT INTO mytable VALUES(?, ?, ?)"
DECLARE c CURSOR FOR p
OPEN c
WHILE (...there's more data to process...)
PUT c USING v1, v2, v3
END WHILE
CLOSE c
SET PDQ PRIORITY可能是一個。另外,創建(正確)索引後更新統計數據(高)可以幫助很多。
索引是否針對您正在尋找的操作進行了優化? –
是的,有沒有臨時表或緩存技術適用於此? –
這個問題中的信息非常少。 2.3億條記錄是一個很大的數字,但是行數有多寬?每行是4個字節還是400個字節或4000個字節?你正在做的更新的性質是什麼?你是否讓DBMS在每一行上執行復雜的計算?你正在更新關鍵列(那些是主鍵或外鍵的一部分)?你正在更新索引列嗎?你正在運行單個UPDATE語句,還是使用UPDATE ... WHERE CURRENT OF _cursor_name_並使系統將每行發送到客戶端並返回到服務器? –