Форум поддержки пользователей. LibreOffice, Apache OpenOffice, OpenOffice.org

Форум поддержки пользователей. LibreOffice, Apache OpenOffice, OpenOffice.org

26 Сентябрь 2020, 00:46 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
Новости: Вы можете задать вопрос по LibreOffice или Apache OpenOffice без регистрации, используя форму
 
   Начало   Помощь Поиск Войти Регистрация    задать вопрос  
Страниц: 1   Вниз
  Печать  
Автор Тема: Что может влиять на производительность макроса?  (Прочитано 3752 раз)
0 Пользователей и 1 Гость смотрят эту тему.
adi_den2013
Форумчанин
***
Offline Offline

Пол: Женский
Расположение: Донецкая обл.
Сообщений: 259


« Стартовое сообщение: 3 Апрель 2014, 07:19 »

Выполнение макроса (последовательно) несколько раз замедляет его работу  Непонимающий  В чем причина?  Добавила после чистки временных таблиц CHECKPOINT DEFRAG и сохранение файла

   document = ThisComponent.CurrentController.Frame
   dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")
   dispatcher.executeDispatch(document, ".uno:Save", "", 0, Array())

не помогает.
Записан

Яна (in real)
JohnSUN
Капитана в тот день называли на "ты"
Гуру
*******
Offline Offline

Пол: Мужской
Расположение: Киев
Сообщений: 2 764


Помогаю людям и компьютерам понимать друг друга


WWW
« Ответ #1: 3 Апрель 2014, 10:55 »

А сам "тормознутый" макрос что делает?
Записан

Владислав Орлов aka JohnSUN
Благодарить-не зазорно.
Подарить благо создателям офиса, нашему ресурсу, мне
adi_den2013
Форумчанин
***
Offline Offline

Пол: Женский
Расположение: Донецкая обл.
Сообщений: 259


« Ответ #2: 3 Апрель 2014, 12:01 »

Если схематично:

1. DROP [temp_table]               удаление временных таблиц

2. DELETE FROM [base_table]    очистка основной таблицы

3. SELECT FROM                     заполнение временных таблиц расчетами по разным условиям

4. INSERT INTO                      вставка в основную таблицу выбранных данных

5. UPDATE                             корректировка основной таблицы под отчет

Есть некоторая мысль, но не уверена что она правильная. В основной таблице есть ключевое поле с автозаполнением - ID. Может в этом тормоза? Каждый раз на это тратится время?

Да и еще - база внутренняя.
« Последнее редактирование: 3 Апрель 2014, 12:04 от adi_den2013 » Записан

Яна (in real)
JohnSUN
Капитана в тот день называли на "ты"
Гуру
*******
Offline Offline

Пол: Мужской
Расположение: Киев
Сообщений: 2 764


Помогаю людям и компьютерам понимать друг друга


WWW
« Ответ #3: 3 Апрель 2014, 14:54 »

И, говоришь, время выполнения плавно нарастает от запуска к запуску?

С автоинкрементным айдишником вряд ли связано - набор данных от запуска к запуску один и тот же? Ну, количество обрабатываемых записей сопоставимо по количеству?

Можно, конечно добавить пункт 2б, что-то вроде
Код:
ALTER TABLE [base_table] ALTER COLUMN "ID" RESTART WITH 0
Но вряд ли поможет.

Попробуй в диспетчере задач понаблюдать за расходом памяти. Возможно, просто где-то "утечка памяти" - забиваешь все мозги и включается своп, отсюда и тормоза
Записан

Владислав Орлов aka JohnSUN
Благодарить-не зазорно.
Подарить благо создателям офиса, нашему ресурсу, мне
adi_den2013
Форумчанин
***
Offline Offline

Пол: Женский
Расположение: Донецкая обл.
Сообщений: 259


« Ответ #4: 4 Апрель 2014, 09:07 »

Вообще-то макрос должен работать 7-10 секунд, как мне казалось .

Диспетчер задач ничего "страшного", грузящего мозги, не показал.  Записала avi-файл с экрана, но получился большой - сюда не прицепишь. Могу только скрин привесить.

[вложение удалено Администратором]
Записан

Яна (in real)
Страниц: 1   Вверх
  Печать  
 
Перейти в:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.21 | SMF © 2006-2009, Simple Machines Valid XHTML 1.0! Valid CSS!