Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
Топик располагается на нескольких страницах: Ctrl  назад   1 [2] 3   вперед  Ctrl      все
 Re: Разработчикам складских баз: подсчет складских остатков  [new]
Crip
Member

Откуда:
Сообщений: 2490
В любом случае, например мне, такой способ не подходит.
Пользователь правит накладную на внутреннее перемещение и тут же хочет ее распечать с учетными ценами...
21 янв 04, 18:08    [501524]     Ответить | Цитировать Сообщить модератору
 Re: Разработчикам складских баз: подсчет складских остатков  [new]
Latuk
Member

Откуда: N 54°38', E 037°35'
Сообщений: 7310
А что, асинхронно запущенная ХП мешает распечатать накладную?
21 янв 04, 18:29    [501562]     Ответить | Цитировать Сообщить модератору
 Re: Разработчикам складских баз: подсчет складских остатков  [new]
Crip
Member

Откуда:
Сообщений: 2490
Нет не мешает... Но пока документ не перепроведен учетные цены не будут известны.
21 янв 04, 18:42    [501581]     Ответить | Цитировать Сообщить модератору
 Re: Разработчикам складских баз: подсчет складских остатков  [new]
Latuk
Member

Откуда: N 54°38', E 037°35'
Сообщений: 7310
Раздели проведение на несколько этапов,
один из которых формирование "учетной цены"
выполни синхронно

Разъясни , что имееш ввиду под термином "учетная цена" и
каким образом проведение накладной на него влияет.

Скорее всего этот момент можно обойти.
22 янв 04, 11:31    [502273]     Ответить | Цитировать Сообщить модератору
 Re: Разработчикам складских баз: подсчет складских остатков  [new]
Crip
Member

Откуда:
Сообщений: 2490
По поводу что такое "учетная цена" читай мой диалог с tpg на первой странице. А формирование этой самой учетной цены это как раз самый затратный этап перепроведения.
Формирование остатков как я уже говорил вещь по сути не сложная...
22 янв 04, 12:06    [502386]     Ответить | Цитировать Сообщить модератору
 Re: Разработчикам складских баз: подсчет складских остатков  [new]
Roma M
Member

Откуда:
Сообщений: 7
tpg
Отойти от нормализации и завести себе табличку, в которой при проводке документов будут перерасчитываться текущие остатоки, как один из способов ускорения.


Я сперва неправильно эту фразу понял. Теперь понял правильно. Ну да, вариант. Единственный минус - невозможно будет посмотреть остатки на какой-то конкретный день. Впрочем, это бывает нужно гораздо реже, чем смотреть текущие остатки. И пусть тот, кому это понадобится, смотрит остатки на кокретный день по-старому, т.е. долго ждет.

Будет у пользователей две кнопки - "Текущие остатки" и "остатки на конкретный день".
Это меня, в общем, устроит.

Но теперь у меня вопрос по поводу реализации этого варианта.
Завел новую тему для этого:
https://www.sql.ru/forum/actualthread.aspx?bid=1&tid=70049
22 янв 04, 12:56    [502521]     Ответить | Цитировать Сообщить модератору
 Re: Разработчикам складских баз: подсчет складских остатков  [new]
Crip
Member

Откуда:
Сообщений: 2490
2Roma M
Вы все равно не правильно поняли.
Остатки должны расчитываться не на текущий момент и даже не на конкретный день, а на каждый документ.
22 янв 04, 13:10    [502567]     Ответить | Цитировать Сообщить модератору
 Re: Разработчикам складских баз: подсчет складских остатков  [new]
Latuk
Member

Откуда: N 54°38', E 037°35'
Сообщений: 7310
Прочитал,понял , что списываете по среднему.

Заводиш таблицу Товар,УчетнаяЦена,ДатаВремяОбновления
Обновляеш учетную цену в ХП проведения (асинхронно)

При печати
если ДатаВремяОбновления учетной цены < ДатаВремяПроведения

Печатаеш УчетнаяЦена с поправкой на данные накладной

если ДатаВремяОбновления учетной цены >= ДатаВремяПроведения

Просто УчетнаяЦена


PS ДатаВремяПроведения=GetDate() при запуске ХП проведения
ДатаВремяОбновления учетной цены=GetDate() при завершении ХП проведения
можно обновлять в триггере на UPDATE таблицы с учетными ценами.
22 янв 04, 14:16    [502748]     Ответить | Цитировать Сообщить модератору
 Re: Разработчикам складских баз: подсчет складских остатков  [new]
Crip
Member

Откуда:
Сообщений: 2490
Списываем по ФИФО...
Но мысль выша кстати верна. Ведь перепроводятся, то документы с более поздней датой...
Если вопрос производительности станет ребром может воспользуюсь вашим советом...
22 янв 04, 14:22    [502766]     Ответить | Цитировать Сообщить модератору
 Re: Разработчикам складских баз: подсчет складских остатков  [new]
Latuk
Member

Откуда: N 54°38', E 037°35'
Сообщений: 7310
Хотя лучше по другому

Создаеш на клиенте коллекцию для документов находящихся в процессе проведения.

При запуске ХП добавляеш в коллекцию №ХХХ
Отслеживаеш событие завершения ->удаляеш из коллекции


При печати
если Документ в коллекции
Печатаеш УчетнаяЦена с поправкой на данные накладной
Иначе
Просто УчетнаяЦена
22 янв 04, 14:22    [502768]     Ответить | Цитировать Сообщить модератору
 Re: Разработчикам складских баз: подсчет складских остатков  [new]
Crip
Member

Откуда:
Сообщений: 2490
2Latuk
Это уже детали. Как реализовать идею вопрос как правило остро не стоит... Меня допустим больше блокировки беспокоят. Боюсь что при асинхронных перепроведениях подобных вашим могут быть нарушения целостности...
22 янв 04, 14:29    [502793]     Ответить | Цитировать Сообщить модератору
 Re: Разработчикам складских баз: подсчет складских остатков  [new]
Latuk
Member

Откуда: N 54°38', E 037°35'
Сообщений: 7310
Нарушения целостности бывают,
но таблицы проводок суть расчетные,
и их легко проверить и исправить.
Такая проверка целостности у меня проводится каждую ночь.

Прошлый год на 61717 проводок было 8 нарушений.
В основном из за внезапных отключений эл-ва на клиентах.

Причем за послежние пол года ,
после того как перешли на новый сервер (2P3 1000 -> 2Xeon2.8)
и поставили на большинстве клиентов UPS
ни одного.

Но исправление целостности я на всякий случай оставил.
22 янв 04, 14:41    [502840]     Ответить | Цитировать Сообщить модератору
 Re: Разработчикам складских баз: подсчет складских остатков  [new]
Crip
Member

Откуда:
Сообщений: 2490
Понятненько...
Я кстати тоже думал об таком подходе. Все равно пользователи постоянно ошибаются , а выверяет правильность бухгалтерия и ближе к окончанию отчетного периода. Но объемы пока позволяют этим не заниматься, вот если рост базы ускорится , то стоим подумать...
22 янв 04, 15:22    [502952]     Ответить | Цитировать Сообщить модератору
 Re: Разработчикам складских баз: подсчет складских остатков  [new]
Sjfx
Member

Откуда: Москва
Сообщений: 121
2 Crip & Latuk
Поясните, плз, какое нарушение целостности тут возможно.
Навскидку виден только выход в отрицательный остаток, когда по снимаемой
с прихода позиции вводится или уже введён расход, который выводит остаток
на количество меньше снимаемого.
Тогда, если на остаток стоит контроль >=0, асинхронная ХП отвалится.
Что-то ещё?

2 Latuk
Количество снимается тоже в асинхронной ХП?
29 янв 04, 16:07    [513119]     Ответить | Цитировать Сообщить модератору
 Re: Разработчикам складских баз: подсчет складских остатков  [new]
Crip
Member

Откуда:
Сообщений: 2490
2Sjfx
Какое нарушение целостности?
А с каким уровнем изоляции будет выполнятся асинхронная процедура?
Я так понимаю не выше чем read committed ... Со всеми вытекающими...
29 янв 04, 16:27    [513163]     Ответить | Цитировать Сообщить модератору
 Re: Разработчикам складских баз: подсчет складских остатков  [new]
Сергей Тихонов
Member

Откуда: Киев
Сообщений: 787
Всем добрый вечер ;-).
ИМХО, нужно делать следующим образом (во всяком случае мы делаем так):

1. Нужно вести учет в количественных/ценовых позициях, которые есть на складах.
2. Нужно вести журнал операций (проводок) - ценовых и количественных, которые были сделаны в результате утверждения складских документов. Соответственно, эти проводки удаляются при снятии утверждения с документа.
3. Утвержденный документ доступен только для чтения. Неутвержденный представляет собой черновик и не является основанием для реальной склад. движухи.
4. Разутверждение склад. документа предполагает проверки. Т.е., нельзя разутвердить приход, например, если оприходованные в нем позиции уже израсходованы или перемещены на др. склад, и т.д.
5. Нужно вести и поддерживать так называемые "вневременные остатки" - результат выполнения всех проводок по складам.
6. Этого достаточно (см. п. 5), поскольку в 98% случаев юзеров интересуют остатки на сегодня, 1.5% - остатки не далее как на месяц назад и т.д. Исходя из этого, имея "вневременные остатки" мы легко посчитаем состояние на нужную нам дату (которая попадает в наши 99.5%), "отмотав" лишнее от вневременных ;-).
7. Для задач а-ля "прогнозирование закупок с учетом анализа предыдущих периодов" лучше не изобретать велосипед, а заюзать MS Analysis Services (или другое OLAP-средство). Тут вам и сводная таблица для босса за 5 мин., и возможность подтягивать результаты MDX-запроса в обычную процедуру, в общем - счастье ;-)...

ЗЫ
Предлагаю всем желающим решить задачку: в режиме он-лайн (время запроса - секунды!!!) посчитать за год по каждой неделе остатки на начало, конец и обороты (приходы / расходы) в разрезе указанных складов и материалов. Если вы решили эту проблему при количестве склад. документов - сотни/тысячи в день - вы справились... ;-)

Всем удачи.
29 янв 04, 20:41    [513556]     Ответить | Цитировать Сообщить модератору
 Re: Разработчикам складских баз: подсчет складских остатков  [new]
Crip
Member

Откуда:
Сообщений: 2490
2Сергей Тихонов
Вопрос по учетным ценам так и остался открытым

Для задач а-ля "прогнозирование закупок с учетом анализа предыдущих периодов" лучше не изобретать велосипед, а заюзать MS Analysis Services (или другое OLAP-средство). Тут вам и сводная таблица для босса за 5 мин., и возможность подтягивать результаты MDX-запроса в обычную процедуру, в общем - счастье ;-)...

Не такое уже это и счастье,по крайней мере когда клиент MS Office Web Components. Бывают что юзеры наставят таких условий фильтрации, что проще жесткий отчет написать и даже без использованию MSOLAP быстрее будет.
30 янв 04, 14:50    [514765]     Ответить | Цитировать Сообщить модератору
 Re: Разработчикам складских баз: подсчет складских остатков  [new]
Сергей Тихонов
Member

Откуда: Киев
Сообщений: 787
> Crip
1. Про учетные цены слегка не понял? Какой вопрос остался открытым?
2. По поводу условий фильтрации: а что, сводная таблица в этом смысле имеет ограничения? ИМХО, главное, правильно кубик спроектировать... ;-))
2 фев 04, 20:36    [517904]     Ответить | Цитировать Сообщить модератору
 Re: Разработчикам складских баз: подсчет складских остатков  [new]
Sjfx
Member

Откуда: Москва
Сообщений: 121
2 Сергей Тихонов
Всё так, только чаще встречается другая терминология:
утверждение документа = проведение документа,
вневременные остатки = текущие остатки.
А по поводу твоего ЗЫ - как сам решил? Похвались, что-ли..
А в твоем решении option(maxdop), часом, не нужен? Если нет - то проехали..
В большинстве случаев правильно будет выбрать на клиента обороты по неделям и входящие остатки, это тривиально, а на клиенте разобраться, сейчас клиенты жирные + меньше по сети тянуть + меньше загрузка сервера.
3 фев 04, 01:34    [517992]     Ответить | Цитировать Сообщить модератору
 Re: Разработчикам складских баз: подсчет складских остатков  [new]
Сергей Тихонов
Member

Откуда: Киев
Сообщений: 787
> Sjfx
По поводу терминологии - возможно..., суть от этого не меняется ;-).
По поводу ЗЫ: нет, maxdop не нужен. Данная задача - не задача MSSQL в принципе, ИМХО. При громадных объемах (сотни-тысячи документов в день) инфа за год - это миллионы / десятки миллионов записей. Тут хоть как оптимизируй, но по, скажем, даже нескольким сотням наименований на 2-3 десятках складов - долго... Спасает только OLAP ;-). Ну, т.е., можно заниматься такими вещами, как распределенные представления / индексированные представления, но... Кубик во-первых, снимает вычислительную нагрузку с сервера БД, во-вторых - в данной ситуации точность, которую можно обеспечить on-line вычислениями на сервере БД, не нужна, достаточно обновлять кубик раз-два в день во время наименьшей загрузки сервера, в третьих - в OLAP математика, алгоритмы и т.д. уже оптимизированы под подобного рода вещи, т.е. нет смысла изобретать велосипед. Т.е. смысл в том, чтобы получив входные параметры в процедуру (множество периодов, складов и материалов) динамически построить MDX-запрос и выполнить его, а затем вернуть результаты клиенту в нужном виде...
3 фев 04, 10:03    [518173]     Ответить | Цитировать Сообщить модератору
 Re: Разработчикам складских баз: подсчет складских остатков  [new]
Crip
Member

Откуда:
Сообщений: 2490
По поводу условий фильтрации: а что, сводная таблица в этом смысле имеет ограничения? ИМХО, главное, правильно кубик спроектировать... ;-))
Конечно все можно соптимизировать, просто при этом произойдет некоторая потеря гибкость
3 фев 04, 10:53    [518259]     Ответить | Цитировать Сообщить модератору
 Re: Разработчикам складских баз: подсчет складских остатков  [new]
АСУчник
Member

Откуда: Moscow
Сообщений: 30
А ты напиши запросик сюда.
Думаю возникнет некотрые вопросы, ответив на которые я возможно смогу помочь.

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

Нужна будет помощь пиши на burweb@narod.ru
26 фев 04, 16:27    [552961]     Ответить | Цитировать Сообщить модератору
 Re: Разработчикам складских баз: подсчет складских остатков  [new]
Crip
Member

Откуда:
Сообщений: 2490
2АСУчник
Вы к кому обращаетесь?
Если ко мне, то запросы я и сам умею писать. Речь идет совсем о другом...
26 фев 04, 17:14    [553168]     Ответить | Цитировать Сообщить модератору
 Re: Разработчикам складских баз: подсчет складских остатков  [new]
АСУчник
Member

Откуда: Moscow
Сообщений: 30
Хотел посмотреть способы соединения через Join, да и прочие вещи. Запросы можно писать по-разному одно и тоже, я просто знаю, что в некотрых случаях быстрее, а что нет. Извини, вовсе не хотел обидеть
26 фев 04, 18:58    [553446]     Ответить | Цитировать Сообщить модератору
 Re: Разработчикам складских баз: подсчет складских остатков  [new]
Crip
Member

Откуда:
Сообщений: 2490
Да я и не обиделся...
Просто странно как-то вы появились... Запросы то хоть какие предлагаете писать ? Прямые к БД или MDX?
26 фев 04, 19:16    [553466]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: Ctrl  назад   1 [2] 3   вперед  Ctrl      все
Все форумы / Microsoft SQL Server Ответить