Sysbase的JDBC驱动程序遍历结果集怎么这么慢,什么地方配置不对吗?

AYellow 2003-03-20 05:41:46
取出数据约8000条,遍历结果集时发现很慢。
于是作了一个测试程序,查询出数据然后遍历并计时,注意没有包括查询时间。
结果Sybase的驱动比ms SQLServer的慢10倍
时间如下(毫秒)
2684 //sybase jdbc-odbc
19388 //sybase jconnect55
1662 //ms sql server
奇怪的是,ODBC的驱动程序竟然快,我觉得第二个结果显然不太正常,可能什么地方配置不对,请指教

副源码如下




public static Connection getConnection() throws SQLException {
try {
Class.forName("com.sybase.jdbc2.jdbc.SybDriver");
Connection con = DriverManager.getConnection(
"jdbc:sybase:Tds:88.88.50.3:5000/dps_legend", "sa", "");
return con;
}
catch (ClassNotFoundException ex) {
ex.printStackTrace();
return null;
}
}

public static Connection getMsConnection() throws SQLException {
try {
Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver");
Connection con = DriverManager.getConnection(
"jdbc:microsoft:sqlserver://hl:1433;DatabaseName=dps;SelectMethod=cursor",
"sa", "");
return con;
}
catch (ClassNotFoundException ex) {
ex.printStackTrace();
return null;
}
}

public static Connection getOdbcSybaseConnection() throws SQLException {
try {
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
Connection con = DriverManager.getConnection(
"jdbc:odbc:dps_legend",
"sa", "");
return con;
}
catch (ClassNotFoundException ex) {
ex.printStackTrace();
return null;
}
}


public static void main(String args[]) throws Exception {
query(getOdbcSybaseConnection());
query(getConnection());
query(getMsConnection());

}


private static void query(Connection con) throws Exception {
PreparedStatement pstmt = con.prepareStatement(
"select client_code,full_name,account,corp_code,issue_date,stock_address,tel from dps_zy_client");
ResultSet rs = pstmt.executeQuery();
long t = System.currentTimeMillis();
while (rs.next()) {
rs.getString(1);
rs.getString(2);
rs.getString(3);
rs.getString(4);
rs.getString(5);
rs.getString(6);
rs.getString(7);
}
System.out.println( (System.currentTimeMillis() - t));
con.close();

}
...全文
71 点赞 收藏 5
写回复
5 条回复
AYellow 2003年03月21日
补充一下,遍历过程中,CPU是100%的占用
回复 点赞
iceshape1 2003年03月21日
jconn5.5的配置太复杂
回复 点赞
wafer_w 2003年03月21日
大概因为是在windows上的缘故吧!
回复 点赞
keen_9 2003年03月20日
2684 //sybase jdbc-odbc
19388 //sybase jconnect55
哈哈,好奇怪,桥反而快了!~~~~~~~~~~~~~~~
回复 点赞
javalovers 2003年03月20日
代码应该没什么问题,可能就是驱动的原因

但是理论上,odbc速度应该最慢
回复 点赞
发动态
发帖子
Java EE
创建于2007-09-28

3.7w+

社区成员

22.5w+

社区内容

J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区公告
暂无公告