高效能分散式查詢五千萬條資料3秒查詢完畢
阿新 • • 發佈:2018-12-09
package com.dinglin; import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedStatement; import java.sql.ResultSet; public class Main { private static Connection c = null; private static PreparedStatement ps = null; private static ResultSet rs = null; static { try { Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver"); } catch (Exception e) { e.printStackTrace(); } } public static void main(String[] args) { try { c = DriverManager.getConnection("jdbc:sqlserver://127.0.0.1:1433;DatabaseName=mydata", "sa", "Abcdefg1"); ps = c.prepareStatement( "select * from (select row_number() over (order by userguid desc)row_num,* from (select * from openrowset( 'SQLOLEDB ', '127.0.0.1'; 'sa'; 'Abcdefg1', mydata.dbo.t_user) union all select * from openrowset( 'SQLOLEDB ', '127.0.0.1'; 'sa'; 'Abcdefg1', mydata.dbo.t_user) union all select * from openrowset( 'SQLOLEDB ', '127.0.0.1'; 'sa'; 'Abcdefg1', mydata.dbo.t_user) union all select * from openrowset( 'SQLOLEDB ', '127.0.0.1'; 'sa'; 'Abcdefg1', mydata.dbo.t_user) union all select * from openrowset( 'SQLOLEDB ', '127.0.0.1'; 'sa'; 'Abcdefg1', mydata.dbo.t_user) union all select * from openrowset( 'SQLOLEDB ', '127.0.0.1'; 'sa'; 'Abcdefg1', mydata.dbo.t_user) union all select * from openrowset( 'SQLOLEDB ', '127.0.0.1'; 'sa'; 'Abcdefg1', mydata.dbo.t_user))t)t where row_num between 100000 and 100100"); rs = ps.executeQuery(); while (rs.next()) { System.out.println(rs.getString("userguid") + rs.getString("username") + rs.getString("passwd") + rs.getString("gender") + rs.getString("birthday") + rs.getString("homeaddress") + rs.getString("idnumber")); } } catch (Exception e) { e.printStackTrace(); } } }