Page 1 of 1

OraLoader

Posted: Wed 30 Mar 2005 08:11
by TeleMax
Hello

Why OraLoader loads data сonsiderably slower then sqlldr.exe ?

I'm using OnPutData method

Code: Select all

{
OraLoader1->Load();
}

void __fastcall TForm1::OraLoader1PutData(TOraLoader *Sender)
{
while (--data--)
  {
  OraLoader1->PutColumnData(0, Row, --data[0]--);
  OraLoader1->PutColumnData(1, Row, --data[1]--);
  OraLoader1->PutColumnData(2, Row, --data[2]--);
  OraLoader1->PutColumnData(3, Row, --data[3]--);
  OraLoader1->PutColumnData(4, Row, --data[4]--);
  OraLoader1->PutColumnData(5, Row, --data[5]--);
  ....
  OraLoader1->PutColumnData(19, Row, --data[19]--);
  OraLoader1->PutColumnData(20, Row, --data[20]--);

  Row++;
  }
}
So, if I user OraLoader - I have 2500 str/sec
But if I user sqlldr.exe - I have 11000 str/sec

LoadMode = ImDML - because I have primary index in table

Is it possible to speed up process ?

Thank you,
TeleMax

Posted: Wed 30 Mar 2005 14:58
by Alex
When you use TOraLoader in lmDML mode then you actually use DML array oracle feature - not the direct path load interface that sqlldr.exe uses. The direct path load interface is much faster than DML array that is the cause of such load time difference.
P.S. Try to download the last ODAC version, the speed of loading using DML array was improved since ODAC 5.50.0.16.