Работа с большим количеством таблиц

VELL

Client
Регистрация
02.05.2014
Сообщения
63
Благодарностей
11
Баллы
8
Здравствуйте!
Задача стояла сделать следующее:
У нас есть много таблиц ексель(на момент написания было 50 шт) Сейчас 170. В будущем будет несколько тысяч. Шаблон должен зайти на каждую таблицу. Выпарсить несколько данных(иногда добавить данные). И дальше берем следующую таблицу.

Я это сделал так:
1. Беру ссылку на ексель, привязываю к таблице. Выпаршиваю данные, делаю изменение.
2. Беру следующую таблицу.

Это все очень грузит компьютер. На 170 таблице имеем следующую картину.



После того как шаблон выполнен, нагрузка все равно остается. Приходится закрывать через "завершить процесс"

Есть ли способ сбросить эту нагрузку после каждой новой таблицы?
Как то так:
Привязали таблицу, сделали что нужно. Сбросили нагрузку. Привязали другую таблицу

Понимаю что когда будет таблиц еще больше, работать это все перестанет))) Поэтому нужно решение
 

Semreg

Client
Регистрация
03.09.2018
Сообщения
34
Благодарностей
11
Баллы
8
Вам нужно изучать работу с БД по sql запросам. В зенке есть такой кубик. Все что вы сейчас делаете будет занимать доли секунды при работе по sql, а не минуты и часы, как у вас сейчас. Все таблицы экселевские предварительно нужно импортировать в БД. Копайте в эту сторону...
 

sanya

Client
Регистрация
08.09.2015
Сообщения
184
Благодарностей
49
Баллы
28
Вам нужно изучать работу с БД по sql запросам. В зенке есть такой кубик. Все что вы сейчас делаете будет занимать доли секунды при работе по sql, а не минуты и часы, как у вас сейчас. Все таблицы экселевские предварительно нужно импортировать в БД. Копайте в эту сторону...
Поддерживаю, Такое количество обрабатываемых файлов будет очень замедлять работу диска, который в свою очередь будет тормозить систему...
 

VELL

Client
Регистрация
02.05.2014
Сообщения
63
Благодарностей
11
Баллы
8
Получается импортировать нужно каждый раз, так как в таблицах каждый день происходят изменения и их нужно считывать и проверять.
Разве нет способа как то сбросить нагрузку? И почему она остается(нагрузка) после того как шаблон заканчивает работу?
 

Semreg

Client
Регистрация
03.09.2018
Сообщения
34
Благодарностей
11
Баллы
8
Получается импортировать нужно каждый раз...
Импорт данных из excel-файла в БД тоже можно автоматизировать.
В зависимости от концепции вашей задачи:
1) excel тоже может работать с БД;
2) bat файл;
3) php скрипт на вашем сервере/хостере;
3) еще что-то...
Суть в другом - парсить ничего не нужно... Для работы с большим объемом табличных данных существует специальный инструмент - База Данных. SQL запросы позволяют очень легко и быстро с БД общаться: брать/искать/записывать данные в базу не нагружая машину.

Ну а есть вам уж так лень разбираться с БД, то вопрос другой: вы в одном проекте по очереди все excel файлы перебираете или зацикливаете проект в зенопостере и он за каждый проход парсит 1-у таблицу?
 

VELL

Client
Регистрация
02.05.2014
Сообщения
63
Благодарностей
11
Баллы
8
У меня все зациклено(проходит все таблицы за раз). Думал разбить, что бы каждый раз завершало работу после каждого ексель. Но ведь нагрузка остается даже после того как проект выполнен... Не уверен что это поможет

Разбираться не особо с БД хочется, хотелось бы решение сброса нагрузки. Переделать могу шаблон что бы брало 1 ексель, а не все за раз.
Но если решение не найдется то придется копать в сторону БД
 

Semreg

Client
Регистрация
03.09.2018
Сообщения
34
Благодарностей
11
Баллы
8
У меня все зациклено(проходит все таблицы за раз). Думал разбить, что бы каждый раз завершало работу после каждого ексель. Но ведь нагрузка остается даже после того как проект выполнен... Не уверен что это поможет
А вы попробуйте - возможно поможет. И зацикливайте проект именно в Зенопостере, а не в ПроектМэйкере.
Или попробуйте загрузку/обработку каждой таблицы делать в внутреннем подпроекте, а зацикливать в внешнем.
 

VELL

Client
Регистрация
02.05.2014
Сообщения
63
Благодарностей
11
Баллы
8
А вы попробуйте - возможно поможет. И зацикливайте проект именно в Зенопостере, а не в ПроектМэйкере.
Или попробуйте загрузку/обработку каждой таблицы делать в внутреннем подпроекте, а зацикливать в внешнем.
Спасибо за советы! Буду пробовать
 

Yuriy Zymlex

Moderator
Команда форума
Регистрация
24.10.2016
Сообщения
6 369
Благодарностей
3 294
Баллы
113
Получается импортировать нужно каждый раз, так как в таблицах каждый день происходят изменения и их нужно считывать и проверять.
Надо было изначально делать на БД...
 

VELL

Client
Регистрация
02.05.2014
Сообщения
63
Благодарностей
11
Баллы
8
Надо было изначально делать на БД...
Там такая ситуация что это договора в екселе, которые заполняют менеджеры. А с этими договорами уже работает шаблон. Всю систему ломать нет желания, если все нормально работает. Надо только сбросить нагрузку)
 

Semreg

Client
Регистрация
03.09.2018
Сообщения
34
Благодарностей
11
Баллы
8
В экселе если настроете работу с БД - может вообще ничего парсить не нужно будет :D
Сами менеджеры, при работе в excel - будут вносится изменения в БД.
А ваш шаблон - будет уже работать с БД. Скорость возрастет тысячекратно, а нагрузка приблизится к нулю...
 
  • Спасибо
Реакции: VELL

VELL

Client
Регистрация
02.05.2014
Сообщения
63
Благодарностей
11
Баллы
8
Я уже понял что Бд будет круто))) Но работа сделана, переделывать кардинально нет ни желания ни времени.
Разве нет способа сбросить эту нагрузку?))
 

Semreg

Client
Регистрация
03.09.2018
Сообщения
34
Благодарностей
11
Баллы
8
Я уже понял что Бд будет круто))) Но работа сделана, переделывать кардинально нет ни желания ни времени.
Разве нет способа сбросить эту нагрузку?))
А вы попробовали?
А вы попробуйте - возможно поможет. И зацикливайте проект именно в Зенопостере, а не в ПроектМэйкере.
Или попробуйте загрузку/обработку каждой таблицы делать в внутреннем подпроекте, а зацикливать в внешнем.
 

Yuriy Zymlex

Moderator
Команда форума
Регистрация
24.10.2016
Сообщения
6 369
Благодарностей
3 294
Баллы
113
Разве нет способа сбросить эту нагрузку?))
Если даже после отвязки файла и завершения шаба, память не уменьшается,
пишите тикет про баг и ищите человека, кто готов делать работу с экселем на C#.

Навряд ли это хорошая идея.
 

VELL

Client
Регистрация
02.05.2014
Сообщения
63
Благодарностей
11
Баллы
8
Последнее редактирование:

Semreg

Client
Регистрация
03.09.2018
Сообщения
34
Благодарностей
11
Баллы
8
работа сделана, переделывать кардинально нет ни желания ни времени.
Вы все равно к этому рано или поздно придете...
Сейчас вас не устраивает нагрузка. Следующим этапом, когда таблиц будет больше - начнет не устраивать скорость работы проекта :-)
 
  • Спасибо
Реакции: VELL

Semreg

Client
Регистрация
03.09.2018
Сообщения
34
Благодарностей
11
Баллы
8
Зараз как раз делаю
Зараз не нужно.
Попробуйте:
- запуск встроенного проекта (одна таблица),
- завершение встроенного проекта,
- запуск встроенного проекта по новой (вторая таблица),
- и т.д.
 

bizzon

Client
Регистрация
08.09.2015
Сообщения
1 088
Благодарностей
126
Баллы
63
И зацикливайте проект именно в Зенопостере, а не в ПроектМэйкере.
Или попробуйте загрузку/обработку каждой таблицы делать в внутреннем подпроекте, а зацикливать в внешнем.
А почему именно в Зенопостере, а не в ПроектМэйкере?
И в чем разница, если несколько подпроектов в проекте в ПроектМэйкере и если это через Зенопостер.
Как связать тогда переходы подпроектов как отдельные проекты в Зенопосторе?
 

specialist

Client
Регистрация
28.12.2018
Сообщения
732
Благодарностей
343
Баллы
63
Это все очень грузит компьютер. На 170 таблице имеем следующую картину.
1 запуск, 1 таблица (или небольшое количество)
переделываем запуск на бат файл, экспорт в батник по правой кнопке мыши.
Берем autoit или любой аналог который может убить процесс автоматически по условию и после того как проект отработал убиваем процесс зенопостера, если все ещё висит в памяти.
Запускаем заново батник.
 

Кто просматривает тему: (Всего: 1, Пользователи: 0, Гости: 1)