我已经编写了一个应用程序,该应用程序使用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有一个糟糕的设计,所以它的表现不好。尝试使用分析器检查应用程序中的瓶颈。 –