02.02.2006, 19:35 | #101 |
Модератор
|
Быстрый (и простой) способ получить суммы и количества по InventTrans на дату - индексированный (или материализованный, в зависимости от СУБД) view. Из аксапты подхватывается
Единственный косяк - возможные проблемы с блокировками и более тяжелая операция обновления таблицы
__________________
-ТСЯ или -ТЬСЯ ? |
|
02.02.2006, 19:44 | #102 |
Участник
|
В общем господа я перед Вами каюсь, мой запрос неправильный оставляю его только для примера "как НЕ надо делать". Корректный у Владимира Максимова.
|
|
03.02.2006, 09:29 | #103 |
злыдень
|
Цитата:
Сообщение от Wamr
пора перемещаться на SQL.RU
Alexius дело говорит, слушайте его
__________________
Ибо зло есть лучшая сила человека. "Человек должен становиться все лучше и злее" -- так учу я. /Ф. Ницше/ |
|
03.02.2006, 16:14 | #104 |
Участник
|
Поскольку это все-таки форму по AXAPTA, а не филиал sql.ru, то я перевел это добро в синтаксис AXAPTA
PHP код:
Так вот, большая и жирная ложка дегдя в этой бочке меда заключается в том, что такой запрос выполняется МЕДЛЕННЕЕ, чем цикл по InventSumDatePhysicalDim:: onHandQty() На том же тестовом примере ЭТОТ запрос выполнялся примерно 1 час 20 минут. Через класс - около 50 минут. Результат одинаковый Хотя, справедливости ради, следует отметить, что этот же самый запрос написанный напрямую в Query Analyzer выполнился примерно за минуту. |
|
07.02.2006, 14:38 | #105 |
aka awas
|
Владимиру:
Вы удивитесь, посмотрев в профайлере как Аксапта выполняет этот запрос :-) |
|
09.02.2006, 15:39 | #106 |
злыдень
|
Вот...
В результате всех этих жутких обсуждений - написал крутую хрень из серии уголок проктолога Оборотная ведомость по товарам. Работает быстро. Только для MS SQL. выложил тут
__________________
Ибо зло есть лучшая сила человека. "Человек должен становиться все лучше и злее" -- так учу я. /Ф. Ницше/ |
|
09.02.2006, 15:54 | #107 |
Участник
|
Recoilme
1. Error Сообщение (15:57:10) Невозможно выбрать запись в '' ('') База данных SQL обнаружила ошибку. Info Сообщение (15:57:10) Описание ошибки SQL: [Microsoft][ODBC SQL Server Driver][SQL Server]Invalid object name 'dbo.INVENTTRANS'. Info Сообщение (15:57:10) Оператор SQL: BEGIN TRANSACTION SELECT ITEMID, SUM(QTY) AS QTY, SUM(COSTAMOUNTPOSTED + COSTAMOUNTADJUSTMENT) AS COST FROM dbo.INVENTTRANS WHERE ( (CASE WHEN DateInvent='19000101' THEN DatePhysical ELSE DateInvent END) < '20060103') AND ( (CASE WHEN DateInvent='19000101' THEN DatePhysical ELSE DateInvent END) > '19000101') AND (dbo.INVENTTRANS.DATAAREAID = 'wrk') AND ( STATUSRECEIPT = 1 OR STATUSRECEIPT = 2 OR STATUSRECEIPT = 3 OR STATUSISSUE = 1 OR STATUSISSUE = 2 OR STATUSISSUE = 3 ) GROUP BY ITEMID COMMIT TRANSACTION У меня bmssa.InventTrans =) 2. Обязательно хочет excel файл, иначе выдает ошибку. Новый само не делает. |
|
09.02.2006, 16:03 | #108 |
злыдень
|
Цитата:
Сообщение от _AnK_
Recoilme
1. Error Сообщение (15:57:10) Невозможно выбрать запись в '' ('') База данных SQL обнаружила ошибку.
__________________
Ибо зло есть лучшая сила человека. "Человек должен становиться все лучше и злее" -- так учу я. /Ф. Ницше/ |
|
09.02.2006, 16:50 | #109 |
NavAx
|
2Recoilme на рабочей базе пробовал? Дело в том, что таблица очень горячая, и могут возникнуть блокировки. Причем происходят случайным образом, может 1-2 месяца проработать, а потом вдруг все зависнет. Намеренно воспроизвести практически невозможно, а при возникновении, приводит к неприятным последствиям
P.S. такие эффекты возникают при обращении к базе прямыми sql- запросами
__________________
Isn't it nice when things just work? Последний раз редактировалось macklakov; 09.02.2006 в 16:52. |
|
09.02.2006, 16:56 | #110 |
злыдень
|
Цитата:
Сообщение от macklakov
2Recoilme на рабочей базе пробовал? Дело в том, что таблица очень горячая, и могут возникнуть блокировки. Причем происходят случайным образом, может 1-2 месяца проработать, а потом вдруг все зависнет. Намеренно воспроизвести практически невозможно, а при возникновении, приводит к неприятным последствиям
С другой стороны, имхо, насчет блокировок - инвентсам "горячей" на порядок, однако аксапта совсем не стесняется его "пользовать во всех позах"
__________________
Ибо зло есть лучшая сила человека. "Человек должен становиться все лучше и злее" -- так учу я. /Ф. Ницше/ |
|
09.02.2006, 16:59 | #111 |
NavAx
|
Цитата:
Сообщение от Recoilme
На боевой прогонял раз 10 пока отлаживал... Правда сами пользуемся отчетами на хранилище, чего и другим желаю
С другой стороны, имхо, насчет блокировок - инвентсам "горячей" на порядок, однако аксапта совсем не стесняется его "пользовать во всех позах"
__________________
Isn't it nice when things just work? |
|
09.02.2006, 17:08 | #112 |
злыдень
|
Цитата:
Сообщение от macklakov
Да, но она это делает через свои интерфейсы, а не через прямой запрос
ЗЫ: через её интерфейсы у меня ни фига не получилось, потому что: PHP код:
http://axforum.info/forums/showthrea...ghlight=OPTION
__________________
Ибо зло есть лучшая сила человека. "Человек должен становиться все лучше и злее" -- так учу я. /Ф. Ницше/ Последний раз редактировалось Recoilme; 09.02.2006 в 17:20. |
|
09.02.2006, 17:20 | #113 |
Участник
|
Цитата:
Сообщение от Recoilme
//а как заставить аксапту не умничать в рамках отдельного запроса - мне неизвестно :
Управление опциями SQL запроса
__________________
Axapta v.3.0 sp5 kr2 |
|
09.02.2006, 17:23 | #114 |
злыдень
|
Цитата:
Сообщение от AndyD
А чем это не устраивает?
Управление опциями SQL запроса Цитата:
можно выключить и включить для всего соединения
__________________
Ибо зло есть лучшая сила человека. "Человек должен становиться все лучше и злее" -- так учу я. /Ф. Ницше/ |
|
09.02.2006, 19:36 | #115 |
Участник
|
Вот вы странный такой (я к создателю темы обращаюсь). У вас когда двести карандашей, вам обязательно их все из коробки доставать и держать в руках, чтобы в любой момент нужным чертить? Или всё-таки достаёте по мере надобности?
Как с формой в наличии. Любят некоторые. Вставлять её куда попало. Да ещё в разрезе партий смотреть на 40 тысяч номенклатур. Прокрутив десяток "окон" - "М-м-м-м. Надо же, на складе Х у меня партия 23423 номенклатуры 40393". Очень интересно. Не более. Никогда пользователь не сможет работать с количеством данных больше строк 5-10ти. Это простой закон it-эргономики. Вы это можете понять, я надеюсь. А пользователь - вряд ли, он не айтишник. Если он говорит что ему требуется смотреть на "вчера" и "сегодня" и "неделю назад" это значит что просто несвоевременно идут складские операции и\или в биз.-процессах бардак. Или у него в голове бардак. Но кому приятно такое автоматизировать? Ахапка - система онлайн. Остатки сейчас. Движения сейчас. Данные - сейчас. Для статистического анализа используются кубики. Для них - запросов писать не переписать. С какими угодно условиями. Легко и быстро. Не занимайтесь фигнёй. Или отучите от этого ваших постановщиков. |
|
10.02.2006, 08:38 | #116 |
Участник
|
Цитата:
Сообщение от LCh
Вот вы странный такой (я к создателю темы обращаюсь).
Ахапка - система онлайн. Остатки сейчас. Движения сейчас. Данные - сейчас. .... Для статистического анализа используются кубики. Для них - запросов писать не переписать. С какими угодно условиями. Легко и быстро. Не занимайтесь фигнёй. Или отучите от этого ваших постановщиков. Странный, ну наверно). Когда стану постановщиком задач неприменно воспользуюсь вашими советами по поводу идеологии работы в Аксапте, с коей я впрочем полностью согласен. Но: 1. Задача поставлена и решать ее надо. 2. Оборотка нужна была только в разрезе склада и только по одному выбранному товару. 3. Задача мною решена, причем оказалось что с использованием стандартных классов работает быстрее, чем с использованием запросов. Спасибо mazzy с классами разобрался подробнее. и наконец, я бы рад перестроить бизнес процессы некоторые и объяснить что у Аксапты своя идеология, но реалии таковы, что на данном этапе своего развития я разработчик, а не консалтер или аналитик, и не постановщик задач. |
|
10.02.2006, 09:17 | #117 |
Участник
|
Цитата:
Сообщение от Bars
Спасибо mazzy с классами разобрался подробнее.
|
|
10.02.2006, 09:31 | #118 |
Участник
|
Цитата:
Сообщение от mazzy
На самом деле, спасибо стоит адресовать kvan'у и slava09.
|
|
14.02.2006, 09:44 | #119 |
Участник
|
Цитата:
Сообщение от Recoilme
Вот...
В результате всех этих жутких обсуждений - написал крутую хрень из серии уголок проктолога Оборотная ведомость по товарам. Работает быстро. Только для MS SQL. |
|
15.02.2006, 20:35 | #120 |
Участник
|
Вкрался баг подмеченный Recoilme, некорректно работало определение наличия поля DataAreaId (компания) в таблицах, исправленный проектик прилагается.
|
|
|
За это сообщение автора поблагодарили: Recoilme (3). |
Теги |
остатки, ax3.0 |
|
Похожие темы | ||||
Тема | Ответов | |||
Остатки на дату InventSumDatePhysical | 6 | |||
Остатки товара на определенную дату | 7 | |||
Скачут остатки | 3 | |||
Цена на дату создания заказа/закупки | 2 | |||
Остатки | 6 |
|