|
|
#28 |
|
Коллективное бессознательn ое
|
Сразу извиняюсь, что тестирование не по правилам - ночь на дворе, предлагаю просто в качестве идеи.
Выгрузку ниже делал дома, подключившись через интернет к терминальному серверу. Файл "111.xls" лежит у меня дома на диске "С", т.е. файл пишется через интернет. Код ниже прошел за 59 секунд. Тут использовались "самодельные" классы-оболочки АДО, но идея проста - берем АДОКомманд и пишем запрос "INSERT INTO". Единственный момент - видимо, придется до начала процедуры задать имена столбцов обычным способом, а потом уже грузить данные. CREATE COLUMN я не пербовал, но может и пройдет, зависит от драйвера, если пройдет, будет быстрее. ![]() Код: static void Job122(Args _args)
{
ADOConnection connection;
ADOCommand command;
int i;
int timeFullStart, timeFullFinish, timeFullTotal;
;
timeFullStart = timenow();
connection = ADODB::establishConnection("C:\\111.xls", false);
command = new ADOCommand();
command.ActiveConnection(connection);
while(i<50000)
{
command.CommandText(strFmt("INSERT INTO [Лист1$] (Field1, Field2) VALUES (100000000000000000000, 20000000000000000)"));
command.Execute();
i++;
}
connection.Close();
timeFullFinish = timenow();
timeFullTotal = timeFullFinish - timeFullStart;
info('Время выполнения, сек');
info(int2str(timeFullTotal));
}
__________________
Жизнь такова, какова она есть и больше никакова. |
|
|
| Теги |
| benchmark, download, excel, faq, xml, законченный пример, производительность, экспорт/импорт |
|
|
|