У меня есть программа (партия EOD), которая обрабатывает ежедневные начисленные позиции учета и обновляет таблицу UPDT.Оптимизация кода для повышения производительности программы
Программа такова, что.
- Запрос извлекает результаты из разных таблиц в результате присоединиться и т.д., и сохраняет записи в
tempfile.txt
- отчетов читаются по одному из tempfile.txt и несколько серий расчетов бывают.
- Для каждой записи, которая считывается; после завершения вычислений для этой записи, мы вызываем метод
update_UPDT()
, который вычисляет вычисленные значения в таблице UPDT в базе данных.
ПРИМЕЧАНИЕ. Я хочу улучшить производительность программы.
Пожалуйста, предложите лучший подход. У меня есть несколько планов.
- Используйте Xml вместо tempfile. Xml будет легче.
- Вместо того, чтобы записывать каждую запись в БД один за другим, пишите в некоторую временную таблицу или говорите xml, а затем отправляйте массовую проводку в БД, как только весь набор вычислений будет запущен для всех записей.
Любые другие предложения?
Или использовать массивы лучше?
@Thanks Bizclop. Сначала измерьте горячие точки, чтобы найти места для улучшения. – user3346282
Я измерил производительность, и кажется, что метод updateUPDT() поражен почти 12000 раз. Поэтому каждый из 12000 записей обновляется один за другим, что кажется узким местом. Теперь вместо того, чтобы записывать все записи один за другим, я пишу их в «BULKXML». После того, как все записи будут вставлены в массив xml, я должен обновить их в таблице UPDT, которую я хочу выполнить с помощью хранимой процедуры. Pls поможет мне сохранить хранимую процедуру. Нужно ли писать инструкцию updateproc или я должен использовать объединение в сохраненном proc для обновления значений таблицы из значений xml. ???? – user3346282