java - 为什么 teradata faSTLoad 这么慢?

标签 java teradata

我尝试上传 3MB 非常小的 csv 文件,包含 30,000 行和 4 列。我花了一个多小时

cUrl = "jdbc:odbc:DSN; TYPE=FASTLOAD" ;
Connection conn = DriverManager.getConnection(cUrl, username, password);
String sql = "insert into Transactions(custID, transaction_date, amount, desc) values(?,?,?,?)";
PreparedStatement ps = conn.prepareStatement(sql);

    for ( ... ) 
    {
        ps.setString(1, custID);
        ps.setString(2, tran_date);
        ps.setString(3, amount);
        ps.setString(4, desc);
        ps.addBatch(); 
    }


    ps.executeBatch(); 

addBatch 运行非常顺利。我到达 ps.executeBatch(); 行,它永远需要它。上传一个 3 MB、30,000 行的 csv 文件花了一个多小时。这是它应该的方式吗

最佳答案

加载 30.000 行最多应该在几秒钟内运行。

您仍然使用了错误的连接字符串,ODBC 中不支持 FastLoad 协议(protocol),TYPE=FASTLOAD 可能会被默默地忽略。

事务表的主索引是什么?糟糕的 PI 加上 SET 表可能会导致加载缓慢。

关于java - 为什么 teradata faSTLoad 这么慢?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22234465/

相关文章:

java - 如何获得至少一定大小的列表分组的所有组合?

maven - Teradata JDBC驱动程序的Maven依赖关系

sql - 追加两个表 - 联合在 SQL (Teradata) 中不起作用

java - 在 Android 5 的 WebView 上支持 WebGL

Java JSyn Loopstation

java - 输入信用卡号 Java Selenium

sql - SQL 中的分层分配与短路分配?

java - 我正在用 Java 运行一个进程,当我等待它完成时卡住了

SQL - 将行标记为每组的 0 值

linux - Teradata SLES Linux 服务器上的内存使用情况