Sqlserver
 sql >> डेटाबेस >  >> RDS >> Sqlserver

मैं SQL सर्वर से 15+ मिलियन रिकॉर्ड कुशलतापूर्वक कैसे पढ़ सकता हूं, कुछ प्रसंस्करण कैसे कर सकता हूं, और उन्हें एक फ्लैट फ़ाइल में लिख सकता हूं?

ऐसा लगता है कि एसक्यूएल-सर्वर के लिए जेडीबीसी ड्राइवर फ़ेचसाइज़ संकेत का सम्मान करता है, (जो बताता है कि एक समय में कितनी पंक्तियों को पढ़ना है) ताकि आप एक क्वेरी जारी कर सकें और अपने परिणामसेट के माध्यम से पुनरावृति कर सकें, फ़ाइल में पंक्तियों को संसाधित और लिख सकें तुम जाओ। उदा.:

public static void toFlat(Connection conn, File file, String destcode) {
    PreparedStatement ps = null;
    ResultSet rs = null;
    BufferedWriter out = null;
    try {
        ps = conn.prepareStatement(
            // col#:   1         2         3           4
            "SELECT threatid, lastname, firstname, flightnum " +
            "FROM travel.passengers " +
            "JOIN threats.aliases USING (firstname, lastname) " +
            "WHERE destination = ?" // param# 1
        );
        ps.setString(1,destcode); // param# 1

        out = new BufferedWriter(new FileWriter(file));


        // provides hint for driver to load x rows at a time:
        ps.setFetchSize(1000); 
        ps.executeQuery();
        rs = ps.getResultSet();

        while(rs.next()) {
            Integer threatid = rs.getInt(1);
            String lastname = rs.getString(2);
            String firstname = rs.getString(3);
            Integer flightnum = rs.getInt(4);

            //rubber meets road:
            String row = processRow(threatid, lastname, firstname, flightnum);
            out.write(row);
        }
    } catch(SQLException e) {
        // TODO
    } catch (IOException e) {
        // TODO
        e.printStackTrace();
    } finally {
        try {
            ps.close();
        } catch(Exception e){
            //TODO
        }
        try {
            rs.close();
        } catch(Exception e){
            //TODO
        }
        try {
            out.close();
        } catch(Exception e){
            //TODO
        }
    }
}


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. SQL सर्वर 2008, यह कितनी जगह घेरता है?

  2. SQL सर्वर में PARSE() बनाम TRY_PARSE():क्या अंतर है?

  3. SQL सर्वर 2008 OLE DB UDL को स्पष्ट रूप से निर्दिष्ट पोर्ट 1433 की आवश्यकता क्यों हो सकती है?

  4. एसक्यूएल 2005 या 2008 में कॉलम केस को संवेदनशील कैसे बनाएं?

  5. SQL सर्वर डेटाबेस (T-SQL) में फ़ाइल समूह कैसे जोड़ें