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

2pkarklin:
>И если бы не было создано сущности Карточка материала, то пришлось бы все это обсчитывать по сущностям Документы + Содержание документа, что, сам понимаешь, гараздо медленне и ресурсоемче.

Так, а причем тут сущности? Речь шла о хранении остатков на каждый период. Применительно к материалам, я считаю, должно быть 3 таблицы:
1) Карточка матриала (Ид, Название, Цена)
2) Остатки по складам(ИдМатериала,ИдСклада, Кол-воОстатка)
3) Движение материала (ИдМатериала, Откуда, Куда, Сколько )

(1) Справочник материалов
(2) Является аналогом RG, но содержит остатки на СЕЙЧАС по учетным измерениям.
(3) - аналог RA
А просчитывать движение материалов по 'Документы + Содержание документа' - маразм полный, согласен с вами полностью.

С Уважением, Дамир.
3 июн 03, 06:32    [219444]     Ответить | Цитировать Сообщить модератору
 Re: Сохранение помесячных итогов в отдельной таблице или "как работает 1С&  [new]
Дамир
Guest
2genie_vats:
>В реальных системах учета продаж практически всегда стоит задача получения остатков на любое число.

Эт-та, Вы чем тама занимаетесь в "реальных системах", анализом состояния рынка? Шоб продать(переместить, переработать), нада знать скока есть сейчас, а не скока было месяц назад.
Получение остатков на любое число актуально для периода нескольких последних месяцев ( 2-3-4 ). Потом это никому не нужно.
3 июн 03, 06:37    [219447]     Ответить | Цитировать Сообщить модератору
 Re: Сохранение помесячных итогов в отдельной таблице или "как работает 1С&  [new]
pkarklin
Member

Откуда: Москва (Муром)
Сообщений: 74925
2 Дамир

Применительно к материалам, я считаю, должно быть 3 таблицы:
1) Карточка матриала (Ид, Название, Цена)
2) Остатки по складам(ИдМатериала,ИдСклада, Кол-воОстатка)
3) Движение материала (ИдМатериала, Откуда, Куда, Сколько )


У меня 2 и 3 совмещены в одну таблицу (Период,ИдМатериала,ИдСклада, ОстатокВх, Приход, Расход, ОстатокИсх...). А вот Куда и Откуда как раз в Карточке учета материала.
3 июн 03, 08:18    [219478]     Ответить | Цитировать Сообщить модератору
 Re: Сохранение помесячных итогов в отдельной таблице или "как работает 1С&  [new]
Chelyaba
Guest
Ну все ж! (чтоб обновить свой вопрос)
Тема как видно, интересующая не только меня, многие с ней сталкивались, решали по-своему (как впрочем и я)... но, по моему, стандартным инструментом в скуле для этих целей OLAP придумали (или я не прав?).
Понятно что для обслуживания нескольких "регистров движения" небольшого объема вполне достаточен и такой подход (на собственном опыте знаю что работает).
Может все же есть мнения по поводу использования OLAP для этих целей.
3 июн 03, 09:24    [219533]     Ответить | Цитировать Сообщить модератору
 Re: Сохранение помесячных итогов в отдельной таблице или "как работает 1С&  [new]
ale-805
Member

Откуда: Питер
Сообщений: 670
Да, ребят, вот про OLAP интересно (т.к. сам только теоритически с ним сталкивался (см. "не сталкивался")). И еще интересно что все-таки имел ввиду Mik Prokoshin: "А еще есть indexed views."
3 июн 03, 10:04    [219573]     Ответить | Цитировать Сообщить модератору
 Re: Сохранение помесячных итогов в отдельной таблице или "как работает 1С&  [new]
pkarklin
Member

Откуда: Москва (Муром)
Сообщений: 74925
2 ale-805

Да, ребят, вот про OLAP интересно (т.к. сам только теоритически с ним сталкивался (см. "не сталкивался")).

Да вроде речь в топике шла про хранение предрасчитанных итогов в OLTP системе. А OLAP - это разгрузка OLTP системы. Потому что обычно аналитические запросы требуют обработки больших объемов транзакционых данных (отгрузка продукции, например) и если их запускать по OLTP системе, то ничего кроме длительного времени выполнения и падения общей производительности OLTP системы не получим. И аналитики будут плеваться, да и операционисты не рады будут, что сохранение документа будет подтормаживать. Вот для решения этой проблемы и создается отдельное хранилише (OLAP кубы), причем со структурой удобной имеено в плане анализа определенной предметной области в разных разрезах. Данные в это хранилище закачиваются через определенные интервалы (у меня раз в сутки), так как в большинстве случаев такой оперативности в аналитических данных достаточно. Причем время закачки выбирается из промежутков с меньшей нагрузкой на OLTP систему (ночью, например). И вот уже аналитики работают (посылают запросы) не к OLTP, а к OLAP хранилищу. Конечно, это усложнение системы, но зато решает проблемы, связанные с тяжелыми запросами по OLTP данным.
3 июн 03, 10:24    [219593]     Ответить | Цитировать Сообщить модератору
 Re: Сохранение помесячных итогов в отдельной таблице или "как работает 1С&  [new]
Дамир
Guest
2pkarklin:
>У меня 2 и 3 совмещены в одну таблицу (Период,ИдМатериала,ИдСклада, ОстатокВх, Приход, Расход, ОстатокИсх...). А вот Куда и Откуда как раз в Карточке учета материала

:-0
А как насчет нормализации? По-моему, все плохо....
PS: чё-то скучно стало - пожалуй, от постов пока воздержусь.... почитаю просто.
3 июн 03, 10:33    [219601]     Ответить | Цитировать Сообщить модератору
 Re: Сохранение помесячных итогов в отдельной таблице или "как работает 1С&  [new]
ale-805
Member

Откуда: Питер
Сообщений: 670
А, ну теперь всё ясно! А меня как раз и беспокоил вопрос о том, что операционисты и аналитики будут "мешать" друг другу работать, а если дискретно выгружать данные в OLAP, то понятно. Слух, а если данные меняются в OLTP задним числом, как быть с OLAP-хранилищем? Данные в него выгружаются дифференцированные или каждый раз вся часть БД, необходимая для данного разреза аналитики?
3 июн 03, 10:37    [219610]     Ответить | Цитировать Сообщить модератору
 Re: Сохранение помесячных итогов в отдельной таблице или "как работает 1С&  [new]
pkarklin
Member

Откуда: Москва (Муром)
Сообщений: 74925
2 Дамир

А как насчет нормализации? По-моему, все плохо....

Да ну, а по-моему ничего (с) не помню чей. И что ты считаешь здесь ненормализованным, если таблица Остатки + Движение - это как раз та самая предрасчитанная таблица? А в таблицу Карточка учета материала для каждой операции о движении материала добавляется по записи + запись с остатком на начало каждого закрытого периода. Или ты карточку спутал со справочником материалов?


2 ale-805

Слух, а если данные меняются в OLTP задним числом, как быть с OLAP-хранилищем? Данные в него выгружаются дифференцированные или каждый раз вся часть БД, необходимая для данного разреза аналитики?

Пока данных у меня не так уж и много, "всего то" за 5 лет, поэтому делаю Full Process, для разных кубов от 45 сек до 2 минут.
3 июн 03, 10:52    [219634]     Ответить | Цитировать Сообщить модератору
 Re: Сохранение помесячных итогов в отдельной таблице или "как работает 1С&  [new]
Chelyaba
Guest
2 pkarklin
Спасибо!
3 июн 03, 10:58    [219642]     Ответить | Цитировать Сообщить модератору
 Re: Сохранение помесячных итогов в отдельной таблице или "как работает 1С&  [new]
ale-805
Member

Откуда: Питер
Сообщений: 670
А какие русскоязычные ресурсы по OLAP-кубам посоветуете? А то как ни найду, так что-то подбное:

Обозначим некоторое множество агрегатов через Al1…li…lm , где liЕ{0,1}:
выделим также такое подмножество порядковых номеров I0= {ik | ikEI & lik= 0 }, k = 1…p, p<= m.
Обозначим количество агрегатов множества Al1…li…lm, как al1…li…lm = |Al1…li…lm|.
Обозначим подмножество порядковых номеров I0= { ik | ikОI & lik= 0 }, k=1…p, p<= m......................

Вы не подумайте, что мне в лом разбираться, просто никогда не думал, что для изучения OLAP потребуются знания из раздела ядерной физики
3 июн 03, 11:15    [219670]     Ответить | Цитировать Сообщить модератору
 Re: Сохранение помесячных итогов в отдельной таблице или "как работает 1С&  [new]
pkarklin
Member

Откуда: Москва (Муром)
Сообщений: 74925
2 ale-805

Ну, вообще-то, чтоб ездить на машине совсем не обязательно знать физику процесса работы двигателя внутреннего сгорания. :-) В принципе раздел BOL, касающийся Analysis Services довольно обширен, но тока он на аглицком.
3 июн 03, 11:35    [219711]     Ответить | Цитировать Сообщить модератору
 Re: Сохранение помесячных итогов в отдельной таблице или "как работает 1С&  [new]
ale-805
Member

Откуда: Питер
Сообщений: 670
Ну аглицкий - не проблема, переведем на тюркский да прочитаем
Ну что, товарищи, значит остановимся на том, что работа операционистов, а также создание небольших оперативных отчетов, происходит в режиме OLTP, а также производится периодическая выгрузка данных в OLAP-хранилище (что, кстати, для этого используем? DTS?). Возражения имеются?
З.Ы. Жаль, что мы так и не услышали начальника транспортного цеха
3 июн 03, 11:44    [219738]     Ответить | Цитировать Сообщить модератору
 Re: Сохранение помесячных итогов в отдельной таблице или "как работает 1С&  [new]
Дамир
Guest
2pkarklin:
То что Вы называете карточкой - я называю движением. Ну да бог с этим, главное что понял разницу в терминологии.
А теперь: Движения в карточке (по вашей терминологии) хранятся за все 5 лет???
3 июн 03, 11:47    [219749]     Ответить | Цитировать Сообщить модератору
 Re: Сохранение помесячных итогов в отдельной таблице или "как работает 1С&  [new]
genie_vats
Member

Откуда: Окраина, Харьков
Сообщений: 147
2Дамир
Разве у Вас не случается изменять, добавлять, удалять док-ты задним числом? А квартальные, годовые отчеты? А анализ?
3 июн 03, 11:51    [219758]     Ответить | Цитировать Сообщить модератору
 Re: Сохранение помесячных итогов в отдельной таблице или "как работает 1С&  [new]
pkarklin
Member

Откуда: Москва (Муром)
Сообщений: 74925
2 Дамир

Движения в карточке (по вашей терминологии) хранятся за все 5 лет???

Что значит за 5 лет. 5 лет работает модуль Склад. И в таблице Карточка Складского Учета храниться вся история, чего делалось за все 5 лет. Но я не понял вашего удивления.
3 июн 03, 11:52    [219759]     Ответить | Цитировать Сообщить модератору
 Re: Сохранение помесячных итогов в отдельной таблице или "как работает 1С&  [new]
Дамир
Guest
2pkarklin
>Но я не понял вашего удивления.
Одно из двух:
1) Либо хранить все движения за 5 лет, чтобы, цитирую Вас: "Все движение, включая помесячны итоги должны быть доступны операционисту в режиме реального времени"
2) Либо Ваша структура данных не позволяет Вам добиться поставленной цели ( цель - см. цитату выше)

И что, это действительно кому-то нужно? А какова стоимость этого (мегабайты)?
3 июн 03, 12:18    [219824]     Ответить | Цитировать Сообщить модератору
 Re: Сохранение помесячных итогов в отдельной таблице или "как работает 1С&  [new]
Дамир
Guest
2genie_vats
>Разве у Вас не случается изменять, добавлять, удалять док-ты задним числом? А квартальные, годовые отчеты? А анализ?

Ну значит за 3 последних месяца надо держать движения - для обеспечения квартальной отчетности. А вы в конце года правите январь? А оформление продажи задним числом имеет какой-то потаённый смысл, чтоб оформить именно задним числом а не в реалтайме?

Анализом заняты единицы, как и годовой отчетностью - им предоставлен отдельный сервер со всем движением (движения просто добавляются туда из основной системы). Это именно отчетность, а не реальная работа с внесением изменений в данные.
3 июн 03, 12:27    [219845]     Ответить | Цитировать Сообщить модератору
 Re: Сохранение помесячных итогов в отдельной таблице или "как работает 1С&  [new]
genie_vats
Member

Откуда: Окраина, Харьков
Сообщений: 147
2Дамир
У нас случаются изменения док-тов прошлого года (:
Часто для разбора полетов важно знать какие остатки были пол-года назад в определенный день.
Вроде ничего - работает (:
80000 товаров, 500 складов и отделов магазинов.
3 июн 03, 12:48    [219889]     Ответить | Цитировать Сообщить модератору
 Re: Сохранение помесячных итогов в отдельной таблице или "как работает 1С&  [new]
pkarklin
Member

Откуда: Москва (Муром)
Сообщений: 74925
2 Дамир

1) Либо хранить все движения за 5 лет, чтобы, цитирую Вас: "Все движение, включая помесячны итоги должны быть доступны операционисту в режиме реального времени"
2) Либо Ваша структура данных не позволяет Вам добиться поставленной цели ( цель - см. цитату выше)


Моя структура позволяет добиться всех поставленных (на данный момент) целей. Да и как то некоректно делать выводы, не имея точного представления о структуре и алгоритме обработки.

И что, это действительно кому-то нужно? А какова стоимость этого (мегабайты)?

Да, это нужно. А на счет стоимости, ты про дисковое пространство? Какие там мегабайты, база за 5 гиг и растет, растет...
3 июн 03, 12:50    [219896]     Ответить | Цитировать Сообщить модератору
 Re: Сохранение помесячных итогов в отдельной таблице или "как работает 1С&  [new]
Дамир
Guest
2pkarklin, genie_vats:
Ну не знаю....Либо у нас в организации все хорошо с бухучетом, либо ...
Правок документов полуторагодичной давности нет. Движения хранятся за год, остатки хранятся только на текущий момент. Живем, однако.
Разбор полетов (остатки за предыдущий год) - развернута прошлогодняя база (оч-чень редко используется, разве что справки в налогувую да пенсионеры зарплату за несколько лет требуют) - но это все в режиме "только для чтения на отдельном серваке"
Кстати, если движения за 5 лет хранить в 1 таблице, то растет высота дерева в индексах - это отрицательно сказывается на скорость обращения к конкретной строке таблицы. Уж тогда, разделить на 2 таблицы - 1) движения за текущий год, 2) движения за предыдущие года.
3 июн 03, 13:10    [219969]     Ответить | Цитировать Сообщить модератору
 Re: Сохранение помесячных итогов в отдельной таблице или "как работает 1С&  [new]
pkarklin
Member

Откуда: Москва (Муром)
Сообщений: 74925
2 Дамир

Разбор полетов (остатки за предыдущий год) - развернута прошлогодняя база (оч-чень редко используется, разве что справки в налогувую да пенсионеры зарплату за несколько лет требуют) - но это все в режиме "только для чтения на отдельном серваке"

Ой, чет 1эсом повеяло. Там тоже куча баз за прошлые периоды и тока текущие остатки.

Кстати, если движения за 5 лет хранить в 1 таблице, то растет высота дерева в индексах - это отрицательно сказывается на скорость обращения к конкретной строке таблицы. Уж тогда, разделить на 2 таблицы - 1) движения за текущий год, 2) движения за предыдущие года.

Пока не наблюалось, так как селективность индексов очень высока. Да и объемы то небольшие, всего пара миллионов записей (в таблице Карточка учета материалов). Если такое и случиться, перейду на секционированные представления.
3 июн 03, 13:16    [219983]     Ответить | Цитировать Сообщить модератору
 Re: Сохранение помесячных итогов в отдельной таблице или "как работает 1С&  [new]
Дамир
Guest
2pkarklin
>Ой, чет 1эсом повеяло. Там тоже куча баз за прошлые периоды и тока текущие остатки.

1) Не угадал, не 1С.
2) 1С, как раз на каждый период остатки хранит (как у тебя в самодельной ERP)- таблицы RG.
3 июн 03, 13:35    [220027]     Ответить | Цитировать Сообщить модератору
 Re: Сохранение помесячных итогов в отдельной таблице или "как работает 1С&  [new]
genie_vats
Member

Откуда: Окраина, Харьков
Сообщений: 147
Вспомнилось...
У нас раньше была более нормализованная структура остатков.

Rest(Date, Sklad, Artc, Qty)


Т.е. в таблицу попадали записи только при изменении остатка товара на данном складе на данное число.

И была функция вроде такой

fn_Rest(@Date, @Sklad)

select *
from Rest
where Sklad=@Sklad and Date=(select max(Date) from Rest where Date<=@Date)


И вроде все работало - пока база не превысила 5 Гиг. (:
3 июн 03, 16:22    [220395]     Ответить | Цитировать Сообщить модератору
 Re: Сохранение помесячных итогов в отдельной таблице или "как работает 1С&  [new]
Дамир
Guest
2genie_vats:

select * from Rest
where Sklad=@Sklad and Date=(select max(Date) from Rest where Date<=@Date)

select top 1 * from Rest
where Sklad=@Sklad and Date<=@Date
order by Date DESC

PS: Ну, вот тема исчерпана.
4 июн 03, 06:40    [220875]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: Ctrl  назад   1 [2] 3   вперед  Ctrl      все
Все форумы / Microsoft SQL Server Ответить