1

いくつかのテーブルとデータを含むデータベースがあります。データベースをインポートするために、クエリ

LOAD DATA INFILE <file_name> INTO TABLE <table_name>;

テーブルごとに使用されます。データベースは一時テーブルを介してインポートされ、データベースには大きなデータが含まれているため、時間がかかります。データが増えると、インポートには無限の時間遅延がかかります。この問題を解決するにはどうすればよいですか?

public void updateDeviceTables(Connection server) throws SQLException
{

    final Connection DestConn = server;
    try 
    {

        PreparedStatement psInsert;
        final PreparedStatement psTrapDest = DestConn
            .prepareStatement("select * from  TEMP_TABLE_NAME where PRIMARY_KEYID=? ");
            psTrapDest.setInt(1, OldID);
            final ResultSet rsTrapDest = psTrapDest.executeQuery();

            while (rsTrapDest.next()) {
                psInsert = DestConn.prepareStatement(SQLQueries.INSERT_TABLE_DETAILS);

                psInsert.setInt(1, NewID);
                psInsert.setObject(2, rsTrapDest.getObject("Column2"));
                psInsert.setObject(3, rsTrapDest.getObject("Column3"));

                psInsert.executeUpdate();
                psInsert.close();
                psInsert = null;
            }
            rsTrapDest.close();
     }
     catch (final Exception e) 
     {

     }

}   

これは、データが一時テーブルにインポートされた後にテーブルを更新するために使用するサンプルコードです。データベース内のすべてのテーブル(17テーブル)に対して同じ手順が繰り返されました。デバッグが executeUpdate()でスタックしました。

4

0 に答える 0