У меня есть большой текстовый файл около 4 ГБ и более 8 миллионов строк, я пишу скрипт perl для чтения этого файла по строкам, выполняю некоторую обработку и обновляю информацию до sybase, я сделал это в пакетном режиме, 1000 строк за пакет для фиксации обновлений, но при этом возникает проблема: сначала пакет стоит всего от 10 до 20 секунд, но при обработке идет процесс обновления партии медленнее и медленнее, партия стоит от 3 до 4 минут, я определенно не знаю, почему это происходит! Любое тело может помочь мне проанализировать это, что может быть причиной? Спасибо заранее, на моем колене ...Обновление sybase медленнее и медленнее
ответ
==> Я пишу скрипт на языке Perl, чтобы прочитать этот файл построчно, сделать некоторую обработку и обновлять информацию в SyBase
Пожалуйста делать целую обработку за один раз, обрабатывать ваш исходный файл за один раз; Подготовьте структуру данных с помощью хэша, массива согласно требованию, а затем начните вставлять данные в базу данных.
Пожалуйста, держать ниже точки в виду при вставке больших объемов данных в базу данных.
1 Если данные столбцов не слишком велики, вы также можете вставлять целые данные за один раз (вам может потребоваться хорошая ОЗУ, не уверенная в размере, поскольку она зависит от набора данных, который вам нужно обработать).
2- Вы должны использовать execute_array perl DBI, чтобы вы могли вставлять данные за один раз.
3- Если у вас недостаточно памяти для вставки данных за один раз, пожалуйста, разделите свои данные (может быть в 8 частях, 1 миллион строк каждый раз).
4- Также убедитесь, что вы готовите заявление один раз. В каждом запуске вы просто выполняете новый набор данных.
5- Установите свой авто_коммит.
Образец кода для использования execute_array perl DBI. Я использовал это, чтобы вставить около 10 миллионов данных в mysql.
Сохраните данные ur в массивах, как показано ниже, в виде массива. @ column1_data, @ column2_data, @ column3_data
print $logfile_handle, "Total records to insert--".scalar(@column1_data);
print $logfile_handle, "Inserting data into database";
my $sth = $$dbh_ref->prepare("INSERT INTO $tablename (column1,column2,column3) VALUES (?,?,?)")
or print ($logfile_handle, "ERROR- Couldn't prepare statement: " . $$dbh_ref->errsr) && exit;
my $tuples = $sth->execute_array(
{ ArrayTupleStatus => \my @tuple_status },
\@column1_data,
\@column2_data,
\@column3_data
);
$$dbh_ref->do("commit");
print ($logfile_handle,"Data Insertion Completed.");
if ($tuples) {
print ($logfile_handle,"Successfully inserted $tuples records\n");
} else {
##print Error log or those linese which are not inserted
my $status = $tuple_status[$tuple];
$status = [0, "Skipped"] unless defined $status;
next unless ref $status;
print ($logfile_handle, "ERROR- Failed to insert (%s,%s,%s): %s\n",
$column1_data[$tuple], $column2_data[$tuple],$column3_data[$tuple], $status->[1]);
}
}
- 1. JPA сохраняется медленнее и медленнее
- 2. mongoDB становится все медленнее и медленнее
- 3. Почему обнаружение прикосновения становится медленнее и медленнее?
- 4. R петля становится медленнее и медленнее
- 5. Задача Selenium становится медленнее и медленнее
- 6. Вставить данные в Mysql медленнее и медленнее
- 7. Почему этот код работает медленнее и медленнее?
- 8. Приложение становится медленнее и медленнее при навигации
- 9. requestAnimationFrame анимация работает медленнее и медленнее
- 10. Игра Libgdx медленнее и медленнее при перезапуске
- 11. getProperty() становится медленнее и медленнее в Neo4j
- 12. Служба C# с поставщиком Oracle .NET медленнее и медленнее
- 13. Вставка данных в BerkeleyDB-JE становится все медленнее и медленнее
- 14. Обновление MongoDB медленнее с установленными соответствующими индексами
- 15. AS3: Почему эта жидкостная симуляция работает медленнее и медленнее?
- 16. Почему моя программа становится все медленнее и медленнее?
- 17. Hibernate - та же операция запускается несколько раз медленнее и медленнее
- 18. iphone app загадочно становится все медленнее и медленнее
- 19. Почему «while» одновременно работает медленнее и медленнее в сценарии оболочки?
- 20. JQuery Ajax/нагрузка становится все медленнее и медленнее
- 21. Идите медленнее, чем Python?
- 22. glDeleteBuffers медленнее, чем glBufferData
- 23. Почему customTableViewCell отличается и медленнее?
- 24. Почему WebGL медленнее Canvas?
- 25. msbuild медленнее, чем devenv
- 26. QGLWidget медленнее, чем QWidget
- 27. Как сделать программу медленнее?
- 28. сельдерей медленнее, чем многопроцессорность?
- 29. Opencv Обнаружение лица медленнее
- 30. xcodebuild намного медленнее Xcode?
благодарит за ваш ответ! – user2922670