2014-03-06 3 views
1

30,000 개의 행과 4 개의 열이있는 3MB의 매우 작은 CSV 파일을 업로드하려고했습니다. 1 시간 이상 걸렸습니다.teradata 빠른로드가 왜 그렇게 느린가요?

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(); 선에 도착한다. 30,000 줄의 3MB CSV 파일을 업로드하는 데 1 시간 이상이 걸렸습니다. 그것은 그것이되어야하는 방식입니까

답변

2

로드 중 30.000 행은 최대로 몇 초 안에 실행되어야합니다.

여전히 잘못된 연결 문자열을 사용하고 있으며 ODBC의 FastLoad 프로토콜을 지원하지 않으므로 TYPE = FASTLOAD는 자동으로 무시됩니다.

거래 테이블의 기본 색인은 무엇입니까? 잘못된 PI와 SET 테이블은로드가 느려질 수 있습니다.

+0

감사합니다. 기본 색인을 지정하지 않았습니다. 'SET' 테이블의 의미는 무엇입니까? –

+0

당신은 Odbc에 대한 것이 맞습니다. 그래서 저는 규칙적으로 전환하려고 시도하지만'TD2 메커니즘에서 지원되지 않는 단일 사인온을 얻습니다. http://stackoverflow.com/questions/22237566/single-sing-on-is-not-supported -for-mechanism-td2 –

+0

기본 색인을 지정하지 않으면 첫 번째 열이 기본적으로 기본 설정이 될 수 있습니다. 이는 실제로 나쁜 선택 일 수 있습니다. ** SHOW TABLE 트랜잭션은 ** 무엇을 반환합니까? SET 테이블은 중복 행이 허용되지 않음을의 L하며, 중복 행 검 g 량이 커질 수 있습니다. SHOW TABLE으로 SET 또는 MULTISET을 볼 수 있습니다. – dnoeth

관련 문제