AXForum  
Вернуться   AXForum > Рынок > Сравнение ERP-систем
All
Забыли пароль?
Зарегистрироваться Правила Справка Пользователи Сообщения за день Поиск

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 27.03.2006, 22:59   #1  
mazzy is offline
mazzy
Участник
Аватар для mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Записей в блоге: 10
Ronin, спасибо.

Только, пожалуйста, будьте осторожны вот с такими советами...
Цитата:
Сообщение от Ronin
2. Если компания используется одна, то есть смысл вообще убрать из индекса поле DataAreaID.
Штатными средствами этого сделать не получится. А использование нештатных средств может сильно навредить новичкам.

Делать таблицу номенклатуры общей только для повышения производительности... все равно что лечить головную боль гильотиной.

А с остальным сов.согласен.
__________________
полезное на axForum, github, vk, coub.
Старый 27.03.2006, 23:39   #2  
mifi is offline
mifi
Microsoft Dynamics
Сотрудники Microsoft Dynamics
 
173 / 89 (3) ++++
Регистрация: 24.07.2002
Цитата:
Сообщение от mazzy
Ronin, спасибо.

Только, пожалуйста, будьте осторожны вот с такими советами...

Штатными средствами этого сделать не получится. А использование нештатных средств может сильно навредить новичкам.

Делать таблицу номенклатуры общей только для повышения производительности... все равно что лечить головную боль гильотиной.

А с остальным сов.согласен.
Я тоже не стал бы советовать убирать DataAreaId, но почему это нельзя сделать штатными средствами, непонятно - свойство SaveDataPerCompany чем не штатное средство?
Старый 28.03.2006, 00:32   #3  
mazzy is offline
mazzy
Участник
Аватар для mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Записей в блоге: 10
Цитата:
Сообщение от mifi
свойство SaveDataPerCompany чем не штатное средство?
Этого я и боялся...
Не спорю, штатное. Но я же говорил - это все равно, что лечить мигрень гильотиной... Да, совершенно верно, голова больше болеть не будет...
__________________
полезное на axForum, github, vk, coub.
Старый 28.03.2006, 09:41   #4  
Recoilme is offline
Recoilme
злыдень
Аватар для Recoilme
Злыдни
 
895 / 192 (8) ++++++
Регистрация: 18.06.2003
Цитата:
Сообщение от Ronin
Здравствуйте, Recoilme!
Надеюсь мне удалось немного поднять репутацию Аксапты ;-)
Соб-но репутация аксапты мне безразлична Мы работаем на ней и я считаю что это достаточно эффективный инструмент, позволяющий решать задачи.
Рано или поздно. Так или иначе.
В отличие от тех систем где задачи либо вообще невозможно решить, либо придется переписывать вообще всё для их решения
Но и особо восторгаться почему то не тянет
Надеюсь что когда-ть появятся настоящие клиент-серверные системы в моем имховском понимании этого словосочетания. На которых можно будет приятно и комфортно решать поставленные задачи не парясь по поводу быстродействия, глючков и багофичей .
Пока я вижу такие только в зародышевом состоянии. Вобщем сильно тянет в оффтопик, завязываю.
Аксапта вобщем рулит, только иногда на поворотах заносит.
__________________
Ибо зло есть лучшая сила человека. "Человек должен становиться все лучше и злее" -- так учу я. /Ф. Ницше/
Старый 28.03.2006, 09:06   #5  
AndyD is offline
AndyD
Участник
КОРУС Консалтинг
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
 
2,560 / 2494 (89) +++++++++
Регистрация: 20.08.2005
2 Recoilme

А в вашем запросе все правильно?
Вы выбираете проводки (до даты и со статусом прихода закуплено, получено или зарегистрировано) или (со статусом расхода отпущено, скомплектовано или продано).
Т.е. у вас выбираются все расходные проводки, а приходные проводки только на дату.
__________________
Axapta v.3.0 sp5 kr2
Старый 28.03.2006, 09:28   #6  
Recoilme is offline
Recoilme
злыдень
Аватар для Recoilme
Злыдни
 
895 / 192 (8) ++++++
Регистрация: 18.06.2003
Цитата:
Сообщение от AndyD
2 Recoilme

А в вашем запросе все правильно?
Вы выбираете проводки (до даты и со статусом прихода закуплено, получено или зарегистрировано) или (со статусом расхода отпущено, скомплектовано или продано).
Т.е. у вас выбираются все расходные проводки, а приходные проводки только на дату.
Это просто пример несложного запроса и неэффективности повсеместного использования аксой оптионфаста, условия по статусам - вообще убраны. Корректный вариант этого запроса можно найти по ссылке в подписи в уголке проктолога
__________________
Ибо зло есть лучшая сила человека. "Человек должен становиться все лучше и злее" -- так учу я. /Ф. Ницше/
Старый 28.03.2006, 10:29   #7  
Recoilme is offline
Recoilme
злыдень
Аватар для Recoilme
Злыдни
 
895 / 192 (8) ++++++
Регистрация: 18.06.2003
2 Ronin;

Чего то я с этими индексами совсем запутался.. Может быть подскажете эффективный индекс для данного запроса (с оптионфаст) ???
Потому что вроде у нас как раз такой индекс который Вы описываете (без датаареаид). Индекс по одинокой датефизикал оптимизатор тоже не хочет использовать, наверно из-за инструкции орддербай по итемид.
Изображения
 
__________________
Ибо зло есть лучшая сила человека. "Человек должен становиться все лучше и злее" -- так учу я. /Ф. Ницше/

Последний раз редактировалось Recoilme; 28.03.2006 в 10:36.
Старый 28.03.2006, 10:41   #8  
Ronin is offline
Ronin
aka awas
NavAx Club
 
16 / 30 (2) +++
Регистрация: 21.06.2004
Адрес: г. Москва
Почему бы не подсказать, подскажу.

В дереве AOT это поле не отображается. Но если вы посмотрите на этот индекс из Enterprize Manager'a или Query Analyzer'a, то его увидите. AOT - не лучшее средство для анализа и Perfomance tuning'а. В дереве AOT вы не увидите и некоторых полей в таблицах, которые однако существуют физически и отображаются в обозревателе таблицы или паспорте записи.

Как избавиться от данного поля - есть 2 пути.

1. Как написал mifi, используйте свойство SaveDataPerCompany. Это свойство таблицы. Благодаря данному свойству вы можете избавиться от поля dataareaid и в таблице и в индексе.
2. Создайте свой индекс.

Почему оптимизатор не строит план запроса с использованием данного индекса. Order by тут ни причем. Более того, использование order by наоборот побуждает использовать индекс, в котором имеется данное поле. Вот цитата из той ссылки что я вам давал ( http://www.sql.ru/articles/mssql/03013101Indexes.shtml ):


16.3

В создании композитного (сложного) индекса участвуют несколько полей таблицы. При создании индекса следует обращать внимание на порядок следования полей в индексе.

Например, если создается индекс по полям Field1, Field2, то он может быть применен только в запросе где в критериях используются оба этих поля. Так же этот индекс будет полезен для условий, построенных для одного Field1. Для одного Field2 этот индекс не может быть применен.


Так же обратите внимание на обслуживание статистики. Пункт 14.

Последний раз редактировалось Ronin; 28.03.2006 в 10:58.
За это сообщение автора поблагодарили: Recoilme (1).
Старый 28.03.2006, 10:59   #9  
Recoilme is offline
Recoilme
злыдень
Аватар для Recoilme
Злыдни
 
895 / 192 (8) ++++++
Регистрация: 18.06.2003
Цитата:
Сообщение от Ronin
Почему бы не подсказать, подскажу.

В дереве AOT это поле не отображается. Но если вы посмотрите на этот индекс из Enterprize Manager'a или Query Analyzer'a, то его увидите. AOT - не лучшее средство для анализа и Perfomance tuning'а. В дереве AOT вы не увидите и некоторых полей в таблицах, которые однако существуют физически и отображаются в обозревателе таблицы или паспорте записи.
У нас нет этого поля. Выше я ответил Михаилу, что именно так у нас и отключено.

Искусственный интелект оптимизатора подсказывает, что в данном запросе эффективного индекса быть не может. Что ему можете противопоставить Вы?
__________________
Ибо зло есть лучшая сила человека. "Человек должен становиться все лучше и злее" -- так учу я. /Ф. Ницше/
Старый 28.03.2006, 11:10   #10  
Ronin is offline
Ronin
aka awas
NavAx Club
 
16 / 30 (2) +++
Регистрация: 21.06.2004
Адрес: г. Москва
Recoilme, чудес не бывает.

Если оптимизатор на таком простом запросе строит план по full scan, такому его решению есть вполне объективные причины. Его искуственный инетеллект не настолько уж и плох. И противопоставлять ему ничего не надо. Наоборот, ему надо помогать всеми возможными средствами

Причин по большому счету может быть 2.
1. Отсутствие эффективного индекса. Вероятность 90%
2. Проблемы со сбором и обновлением статистики. Вероятность в данном случае 9%.
3. Прочий полтергейст. Вероятность не более 1%.

Последний раз редактировалось Ronin; 28.03.2006 в 12:17.
За это сообщение автора поблагодарили: Recoilme (-1).
Старый 28.03.2006, 11:28   #11  
Vadik is offline
Vadik
Модератор
Аватар для Vadik
Лучший по профессии 2017
Лучший по профессии 2015
 
3,631 / 1853 (69) ++++++++
Регистрация: 18.11.2002
Адрес: гражданин Москвы
Мои пять копеек - (ItemId, DatePhysical, Qty), если забыть про фильтры по StatusReceipt и StatusIssue

Другие (не покрывающие) индексы при таком количестве данных (если мне память не изменяет, порядка 4 миллионов записей в InventTrans на дату) либо не будут использоваться, либо bookmark lookup-ы сделают доступ дороже table scan-а, что собственно и было продемонстрировано выше.

P.S. Забавное обсуждение, особенно если взглянуть на название ветки
__________________
-ТСЯ или -ТЬСЯ ?
За это сообщение автора поблагодарили: Recoilme (1).
Старый 28.03.2006, 11:14   #12  
mifi is offline
mifi
Microsoft Dynamics
Сотрудники Microsoft Dynamics
 
173 / 89 (3) ++++
Регистрация: 24.07.2002
А в чем корень проблемы, удалось установить - в order by или в optionFast?. И если в optionFast - то для всех значений (1,2, 20, 100) или только для определенных?
Старый 28.03.2006, 15:08   #13  
Recoilme is offline
Recoilme
злыдень
Аватар для Recoilme
Злыдни
 
895 / 192 (8) ++++++
Регистрация: 18.06.2003
Действительно. Вот собственно и сравнили SAP с 1Сом

PS: мусолить дальше тему запросов/оптимизаторов/хинтов/индексов - лениво.
__________________
Ибо зло есть лучшая сила человека. "Человек должен становиться все лучше и злее" -- так учу я. /Ф. Ницше/

Последний раз редактировалось Recoilme; 28.03.2006 в 15:41.
Старый 05.04.2006, 17:25   #14  
Ronin is offline
Ronin
aka awas
NavAx Club
 
16 / 30 (2) +++
Регистрация: 21.06.2004
Адрес: г. Москва
Чтобы закрыть тему индексов окончательно, позвольте поделиться великим и сокровенным знанием о том, чем будет отличаться индекс предложенный Vadik'ом от индекса только по (ItemId, DatePhysical).
Скриншоты с планами запросов я приводить не стану - их можно посмотреть выше.

Интрига вкратце: при использовании очень схожих индексов время выполнения простого запроса отличалось на 2 порядка. Причем объемы таблиц были сопоставимы.

Почему.
Если посмотреть на планы запросов, то можно увидеть следующее - они отличаются не способом поиска записей (что там, что там используется индекс, причем используется по 2м полям ItemId, DatePhysical), а тем как считается сумма.
В быстром случае используется Stream Agregate, в медленном - Bookmark Lookup.
Теперь посмотрим, чем отличаются эти 2 оператора. Для этого воспользуемся хелпом Query Analyzer'a.

The Stream Aggregate physical operator optionally groups by a set of columns and calculates one or more aggregate expressions returned by the query and/or referenced elsewhere within the query. This operator requires that input is ordered by the columns within its groups.

Bookmark Lookup
The Bookmark Lookup logical and physical operator uses a bookmark (row ID or clustering key) to look up the corresponding row in the table or clustered index.

Иными словами, Bookmark Lookup для того чтобы просуммировать поле qty должен "вытащить" из таблицы все найденные записи, чтобы прочитать значение поля. А fetch операция обычно достаточно долгая.

Возникает вопрос, а что Stream Aggregate разве за значением данного поля в таблицу не лезет? В том то и дело, что нет. Для этого опреатора, необходимо чтобы поле, по которому "работает" агрегирующая функция было упорядочено в данной группировке, иными словами, чтобы оно присутствовало в индексе, по которому строился план запроса.

Таким образом...
А что "таким образом"... да собственно ничего. Я хотел сказать, что дальше выводы сделать не трудно.
Вывод 1 - Fetch операция долгая
Вывод 2 - Понимание плана запроса позволяет сохранять нервные клетки
Вывод 3 - Век живи, а все равно всего не изучишь.
Вывод 4 - на усмотрение читателя сего опуса.
За это сообщение автора поблагодарили: George Nordic (5).
Старый 07.04.2006, 12:46   #15  
Recoilme is offline
Recoilme
злыдень
Аватар для Recoilme
Злыдни
 
895 / 192 (8) ++++++
Регистрация: 18.06.2003
2 Ronin: Со всем согласен, но думаю топиг нельзя будет считать до конца закрытым не добавив небольшого уточнения.

Здесь на мой непритязательный взгляд достаточно наглядно изложены физические причины торможения такого рода.

Вобщем добавил бы:

Вывод 5: не так страшен натурал как его малюют.

Хотя как говорится на вкус и цвет.
__________________
Ибо зло есть лучшая сила человека. "Человек должен становиться все лучше и злее" -- так учу я. /Ф. Ницше/

Последний раз редактировалось Recoilme; 07.04.2006 в 13:04.
Теги
1c, sap, sql, оптимизация, производительность, сравнение систем

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Изменения ассортимента, цен, условий поставки и сопровождения ряда продуктов «1С:Предприятия 7.7» mazzy Другие системы на рынке 40 30.04.2008 23:31
Обсуждение документа "Сравнение 1С и AX" Кузнецов Александр Сравнение ERP-систем 44 20.02.2008 13:56
1С собирается бить SAP на его территории... Сисой Другие системы на рынке 1 10.04.2007 17:27
Платформа «1С:Предприятие» как средство разработки бизнес-приложений Morpheus Другие системы на рынке 1 26.12.2006 13:10
1С ищет стратегического инвестора Роман Кошелев Другие системы на рынке 1 16.04.2003 23:02

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

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 23:17.