我已經編寫了一個應用程序,該應用程序使用JDBC驅動程序4將數據從SQL Server數據庫中的兩個視圖歸檔到另一個SQL Server數據庫中的不同表中。我擔心的是應用。在數據庫之間歸檔數據
大約需要13分鐘將20封郵件及其附件(僅限名稱和鏈接信息)歸檔,數據由20個郵件組成。
列概述
smallint(6)
datetime
int(11)
varchar(255)
varchar(100)
varchar(100)
varchar(100)
text
int(11)
int(11)
varchar(255)
varchar(255)
int(11)
可有人請給我指點至於如何做出更好的性能? 並告訴我,上面給出的運行時間是否可以接受。 (我知道這依賴於 情況,應用程序意味着是一個POC)。
事情我簽出(EDIT)
我讀過關於自動提交一些帖子,說你可以禁用它來提高性能。我首先檢查了Java TUTS找到下面的鏈接
http://docs.oracle.com/javase/tutorial/jdbc/basics/transactions.html#disable_auto_commit
在文章提交說明。當我在其中一個例子中檢查for循環時,在每次更新結束時使用commit,這是合乎邏輯的。但是在每次插入之後使用自動提交和提交之間有什麼區別?
我正在使用準備好的語句來插入到存檔數據庫。使用調試器
我已經使用Eclipse調試器精確定位在瓶頸位於後
信息。
代碼掛在下面的代碼片段:
while(rs.next())
{
rows = new ArrayList();
for(int collomnCount = 1; collomnCount <= rsmd.getColumnCount(); collomnCount++)
{
Object fields = rs.getObject(collomnCount);
rows.add(fields);
}
table.add(rows);
this.table = table;
}
我用這個方法,使從結果更accessable我的信息。 有沒有辦法解決這個問題?
交易?預處理語句? – hovanessyan
它太慢了。你的觀點太慢了嗎?嘗試直接在數據庫中運行查詢。 – Andy
也許你的POC有一個糟糕的設計,所以它的表現不好。嘗試使用分析器檢查應用程序中的瓶頸。 –