Инфо-Предприятие - Форум
ПрограммыПоддержкаКупитьПартнерам

Вернуться   Инфо-Предприятие - Форум > Основные продукты > Торговый склад
Регистрация Обмен опытом Справка Пользователи Календарь Поиск Сообщения за день Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
Внимание! Этой ветке форума больше трех лет. Возможно, обсуждаемые здесь вопросы уже не актуальны. Тем не менее, Вы можете отвечать в этой теме, если при ответе поставите флажок.
  #1  
Старый 15.06.2010, 04:42
Писарев Петр Писарев Петр вне форума
Гуру
 
Регистрация: 22.01.2008
Адрес: Ростов-на-Дону
Сообщений: 10,875
По умолчанию Увеличить скорость формирования

Формируется списание материалов в производство для нескольких позиций.

Формирование списания материалов для каждой позиции идет ~3 МИНУТЫ!!! Каким образом можно ускорить процесс?

Цитата:
Ip_ip.sol(24/332:8) 18:35:20, 18:35:20, 3054
Ip_ip.sol(56/364:8) 18:35:27, 18:35:20, 3054
Ts_main.lib(6/664:10) 1, 18:35:27
Ts_main.lib(12/670:10) 2, 18:35:27
Ts_main.lib(27/685:10) 3, 18:35:27
Ts_main.lib(33/691:10) 4, 18:35:27
Ts_main.lib(49/707:10) 5, 18:38:26
Ts_main.lib(55/713:10) 6, 18:38:26
Ts_main.lib(92/750:10) 7, 18:38:26
Ip_ip.sol(58/366:8) 18:38:26, 18:35:20, 3054
Ip_ip.sol(24/332:8) 18:38:36, 18:35:20, 4368
Ip_ip.sol(56/364:8) 18:38:39, 18:35:20, 4368
Ts_main.lib(6/664:10) 1, 18:38:39
Ts_main.lib(12/670:10) 2, 18:38:39
Ts_main.lib(27/685:10) 3, 18:38:39
Ts_main.lib(33/691:10) 4, 18:38:39
Код, где происходит задержка расчета

Код:
  ОТЛАДКА(4 ,ВРЕМЯ_ТЕК)   
  // Заносим инфу о текущих остатках в массив, для последующего списания с учетом аналитик и ГТД
  ЦИКЛ ПО ЖУРНАЛУ! тс_остатки ост, с_сборка сб,
    ВЫБРАТЬ тс_операции_доп.гтд_ид (тс_операции_доп.код_товара = сб.код_материала
      И НЕ_ПУСТО(тс_операции_доп.аналитика1_ид, 0) = НЕ_ПУСТО(сб.аналитика1_ид, 0)
      И НЕ_ПУСТО(тс_операции_доп.аналитика2_ид, 0) = НЕ_ПУСТО(сб.аналитика2_ид, 0)
      И тс_операции.ид = тс_операции_доп.идлинк И тс_операции.вид_то_ид ИЗ виды_то
      И тс_операции.дата < дт_оп) СОРТИРОВАТЬ(тс_операции.дата:НЕТ, тс_операции.ид:НЕТ) выбр_гтд_ид
    (ост.код_товара = сб.код_материала И ост.код_склада = опц.код_склада
    И НЕ_ПУСТО(ост.аналитика1_ид, 0) = НЕ_ПУСТО(сб.аналитика1_ид, 0)
    И НЕ_ПУСТО(ост.аналитика2_ид, 0) = НЕ_ПУСТО(сб.аналитика2_ид, 0))
    СОРТИРОВАТЬ(ост.кол_учет:НЕТ)
    инд = СТР0(ост.код_товара, 6) + "#" + СТР0(ост.аналитика1_ид, 6)
      + "#" + СТР0(ост.аналитика2_ид, 6) + "#" + СТР0(выбр_гтд_ид, 6)
    ОстаткиДляСписания!инд = ост.кол_учет
  КОНЕЦ_ЦИКЛА
  ОТЛАДКА(5 ,ВРЕМЯ_ТЕК)
Но в настройках склада этой базы стоит разрешение на отрицательное количество, то есть искать сколько чего осталось - не имеет смыслы(для даннной базы)


Параметры базы данных

тс_операции 21645 записей
тс_операции_доп 109409 записей
с_товары 10103 записей.

Последний раз редактировалось Писарев Петр, 15.06.2010 в 23:47.
Ответить с цитированием
  #2  
Старый 17.06.2010, 21:34
Аватар для Григорий
Григорий Григорий вне форума
Отвечатель автоматический
 
Регистрация: 08.12.2007
Адрес: Москва
Сообщений: 18,308
По умолчанию

Добавьте в проекты, посмотрим....
Ответить с цитированием
  #3  
Старый 18.06.2010, 00:09
Игорь Игорь вне форума
Забанен
 
Регистрация: 03.09.2008
Адрес: Краснодарский край
Сообщений: 448
По умолчанию Сделай через процедуру сервера (SQL)

Цитата:
Сообщение от Писарев Петр Посмотреть сообщение
Формируется списание материалов в производство для нескольких позиций.

Формирование списания материалов для каждой позиции идет ~3 МИНУТЫ!!! Каким образом можно ускорить процесс?

Код, где происходит задержка расчета

Код:
  ОТЛАДКА(4 ,ВРЕМЯ_ТЕК)   
  // Заносим инфу о текущих остатках в массив, для последующего списания с учетом аналитик и ГТД
  ЦИКЛ ПО ЖУРНАЛУ! тс_остатки ост, с_сборка сб,
    ВЫБРАТЬ тс_операции_доп.гтд_ид (тс_операции_доп.код_товара = сб.код_материала
      И НЕ_ПУСТО(тс_операции_доп.аналитика1_ид, 0) = НЕ_ПУСТО(сб.аналитика1_ид, 0)
      И НЕ_ПУСТО(тс_операции_доп.аналитика2_ид, 0) = НЕ_ПУСТО(сб.аналитика2_ид, 0)
      И тс_операции.ид = тс_операции_доп.идлинк И тс_операции.вид_то_ид ИЗ виды_то
      И тс_операции.дата < дт_оп) СОРТИРОВАТЬ(тс_операции.дата:НЕТ, тс_операции.ид:НЕТ) выбр_гтд_ид
    (ост.код_товара = сб.код_материала И ост.код_склада = опц.код_склада
    И НЕ_ПУСТО(ост.аналитика1_ид, 0) = НЕ_ПУСТО(сб.аналитика1_ид, 0)
    И НЕ_ПУСТО(ост.аналитика2_ид, 0) = НЕ_ПУСТО(сб.аналитика2_ид, 0))
    СОРТИРОВАТЬ(ост.кол_учет:НЕТ)
    инд = СТР0(ост.код_товара, 6) + "#" + СТР0(ост.аналитика1_ид, 6)
      + "#" + СТР0(ост.аналитика2_ид, 6) + "#" + СТР0(выбр_гтд_ид, 6)
    ОстаткиДляСписания!инд = ост.кол_учет
  КОНЕЦ_ЦИКЛА
  ОТЛАДКА(5 ,ВРЕМЯ_ТЕК)
Но в настройках склада этой базы стоит разрешение на отрицательное количество, то есть искать сколько чего осталось - не имеет смыслы(для даннной базы)


Параметры базы данных

тс_операции 21645 записей
тс_операции_доп 109409 записей
с_товары 10103 записей.
При таких объемах максимум 3-5 сек должно считать.(если конечно правильно сделана структура журналов для расчетов)
Сам скрипт расчета остатков (а не хранения) занимает 20-25 строк SQL кода
П.П.может 3 минуты чтобы выбрать в ручную?Ну по моему варианту время уходит на ручной выбор а не на расчет остатков
Ответить с цитированием
Ответ


Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Скорость формирования секций вывода Писарев Петр Общий 8 02.07.2009 02:08
Скорость работы форума Администратор По работе форума и сайта 1 02.04.2008 21:50
Скорость доступа к записям в базе Писарев Петр Общий 6 24.03.2008 13:13


Часовой пояс GMT +4, время: 20:49.


vBulletin® Version 3.6.8.
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Перевод: zCarot
© 1999 Новасофт