|
public class test_sybase_outjoin extends DMOBase {
public static void main(String[] args) {
query_stmt();
query_pstmt();
}
public static void query_stmt() {
String selSql = "select * from bd_psnbasdoc a left join bd_psndoc b on a.pk_psnbasdoc=b.pk_psnbasdoc where b.pk_psndoc = '1002PSN2100001000001'";
Connection conn = null;
Statement stmt = null;
ResultSet rs = null;
try {
conn = getConnection();
stmt = conn.createStatement();
long t_on_sql = System.currentTimeMillis();
stmt.executeQuery(selSql);
System.out.println("Statement 执行 耗时: " + (System.currentTimeMillis() - t_on_sql)); // 88888888888888
} catch (Exception e) {
e.printStackTrace();
}
}
public static void query_pstmt() {
Connection conn = null;
PreparedStatement stmt = null;
String updSql = "select * from bd_psnbasdoc a left join bd_psndoc b on a.pk_psnbasdoc=b.pk_psnbasdoc where b.pk_psndoc= ?";
try {
conn = getConnection();
conn.setAutoCommit(false);
stmt = conn.prepareStatement(updSql);
long t_on_sql = System.currentTimeMillis();
stmt.setString(1, "1002PSN2100001000001");
stmt.execute();
System.out.println("prepareStatement 执行 耗时: " + (System.currentTimeMillis() - t_on_sql)); // 88888888888888
conn.commit();
} catch (Exception E) {
E.printStackTrace();
} finally {
closeDBResources(stmt, conn);
}
}
}
输出结果,时间单位: ms
Statement 执行 耗时: 47
prepareStatement 执行 耗时: 158646
这还只是百万级别的表,千万级的表玩儿起了肯定疯了
[ 本帖最后由 anlinew 于 2010-6-12 16:39 编辑 ] |
|