AXForum  
Вернуться   AXForum > Microsoft Dynamics AX > DAX: Администрирование
All
Забыли пароль?
Зарегистрироваться Правила Справка Пользователи Сообщения за день Поиск

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 27.05.2011, 23:22   #1  
Qaz Qwerty is offline
Qaz Qwerty
китайский стажер
 
152 / 37 (2) +++
Регистрация: 12.05.2008
Angry DAX 2009: Работает очень медленно
Уважаемые коллеги, очень нужна помощь. Любые действия, связанные с большими запросами к базе данных, выполняются очень медленно. Выборки для отчетов, запрос балансов. Вот теперь переименование счетов... Тестирую в старой базе, DAX 4, переименование счета проходит за 3 минуты. В новой - за 30. Структура virtual tables и прочего, что могло бы влиять - одинаковая. Hardware никакой нагрузки не показывает, с памятью и с процессором все нормально. По всем признакам проблема с базой данных, но в чем может быть проблема - нет ни одной идеи. Что проверить?
__________________
Может быть выйдет, а может не-е-е-ет...
Новая песня вместо штиблет..
Старый 28.05.2011, 00:07   #2  
lev is offline
lev
Ищущий знания...
Аватар для lev
Oracle
MCBMSS
Axapta Retail User
 
1,723 / 491 (20) +++++++
Регистрация: 18.01.2005
Адрес: Москва
скорее всего в базе AX2009 берутся кривые планы запросов (используются неправильные индексы). Поэтому я бы посоветовал:
1. Выполнить реиндексацию базы из аксапты. (под рукой нет аксапты, на память находится в Администрирование \ Периодические операции, форма SQL администрирование).
2. Обновить статистику в БД.
__________________
"Страх перед возможностью ошибки не должен отвращать нас от поисков истины." (с)
С Уважением,
Елизаров Артем
Старый 28.05.2011, 00:09   #3  
Wamr is offline
Wamr
----------------
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
 
1,737 / 858 (32) +++++++
Регистрация: 15.01.2002
Адрес: Москва
Записей в блоге: 7
смотрите что у вас с дисками творится.
Старый 28.05.2011, 01:01   #4  
Qaz Qwerty is offline
Qaz Qwerty
китайский стажер
 
152 / 37 (2) +++
Регистрация: 12.05.2008
Вот кстати еще - чтобы добавить или удалить поле в таблице (AOT) тоже занимает несколько мину. так странно... может что-то в процессе миграции на новую версию недоделалось? бред какой то
__________________
Может быть выйдет, а может не-е-е-ет...
Новая песня вместо штиблет..
Старый 28.05.2011, 01:08   #5  
Qaz Qwerty is offline
Qaz Qwerty
китайский стажер
 
152 / 37 (2) +++
Регистрация: 12.05.2008
To Lev
1. переиндексация сделана, толку - 0. (именно из-под аксапты)
2. что такое обновить статистику не понимаю...

To Warm:
Админы уверяют что с дисками все нормально, я же вижу только место на дисках - действительно нормально.
__________________
Может быть выйдет, а может не-е-е-ет...
Новая песня вместо штиблет..
Старый 28.05.2011, 11:34   #6  
mazzy is offline
mazzy
Участник
Аватар для mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Записей в блоге: 10
все правильно вам советуют.
поищите - обсуждалось неоднократно.

в ax2009 добавились поля, изменились индексы.
индексам нужно переиндексироваться, таблицам - перебилдится, статистике - пересчитаться.
пинайте админов.

Цитата:
Сообщение от Qaz Qwerty Посмотреть сообщение
Вот кстати еще - чтобы добавить или удалить поле в таблице (AOT) тоже занимает несколько мину. так странно... может что-то в процессе миграции на новую версию недоделалось? бред какой то
это правильно.
если Аксапта "считает", что изменений в таблице много (алгоритм определения недокументирован),
то аксапта начнет не изменять таблицу, а создаст новую, скопирует данные туда с изменениями, после этого удалит старую таблицу и переименует.
это делается для надежности за счет снижения скорости.

известно, что после перехода аксапта начинает считать что изменений много достаточно часто.
__________________
полезное на axForum, github, vk, coub.
Старый 28.05.2011, 17:43   #7  
lev is offline
lev
Ищущий знания...
Аватар для lev
Oracle
MCBMSS
Axapta Retail User
 
1,723 / 491 (20) +++++++
Регистрация: 18.01.2005
Адрес: Москва
Цитата:
Сообщение от Qaz Qwerty Посмотреть сообщение
2. что такое обновить статистику не понимаю...
поищите на sql.ru думаю найдете там ответы на свои вопросы.
__________________
"Страх перед возможностью ошибки не должен отвращать нас от поисков истины." (с)
С Уважением,
Елизаров Артем
Старый 29.05.2011, 05:52   #8  
Qaz Qwerty is offline
Qaz Qwerty
китайский стажер
 
152 / 37 (2) +++
Регистрация: 12.05.2008
Нету админа BD, а я не знаю. Хорошо, сейчас сделаю все процедуры maintenance и прочитаю что еще писали на эту тему.
Кстати еще одно странное явление - запускаю обычный while select по плану счетов и система делает выборку в странном порядке, должна же в алфавитном порядке по коду счета выбирать. Кажется с индексами беда какая то. Буду смотреть.
__________________
Может быть выйдет, а может не-е-е-ет...
Новая песня вместо штиблет..
Старый 29.05.2011, 10:23   #9  
Ivanhoe is offline
Ivanhoe
Участник
Аватар для Ivanhoe
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
 
4,143 / 2156 (80) +++++++++
Регистрация: 29.09.2005
Адрес: Санкт-Петербург
Проверьте collation в БД и SQL сервере - по-хорошему должно быть Cyrillic_General_CI_AS.
__________________
Ivanhoe as is..
Старый 29.05.2011, 21:56   #10  
Qaz Qwerty is offline
Qaz Qwerty
китайский стажер
 
152 / 37 (2) +++
Регистрация: 12.05.2008
Возвращаясь к старой теме:
Мы перешли на DAX2009. Нам нужно совершить (нагрузочную) операцию в системе (переименование счетов). Это действие началось несколько дней назад и до сих пор проблемы. Переименование выполняется очень медленно. Другие проявления тоже есть... например запрос формы плана счетов с одновременным показом баланса занимает несколько минут, для бухгалтеров это повод сходить попить чай .

AOS и база данных крутятся на одной машине, сама база и приложение лежат там же. Надо все это разнести конечно, но размер базы детский (10GB без индексов) и 10-15 одновременно работающих пользователей. На 4-ке такая конфигурация жила без больших проблем, но говорят что новая версия нуждается в больших ресурсах, особенно в части временного файла базы данных (tempdb), который должен быть на быстром диске. Somebody в одном из обсуждений на форуме рекомендовал: Прежде чем разносить отдельные таблицы, всё-таки убедиться, что на уровне SQL-сервера физически разнесены данные, логи и tempdb... “. Но egorych ему ответил что это имеет смысл если база большая. «1. разделение лога и базы по разным дискам имеет смысл при условии большой базы - ну в террабайт хотя-бы. 2. тоже самое касается выделения таблиц в файловые группы + к этому зависат сильно от железа - если можете положить ФГ на отдельный ФИЗИЧЕСКИЙ RAID, то можно пробовать, если нет - пустое. 3. очень желательно выделить tempdb в отдельный массив на RAID0 хотя-бы. не обязательно супер быстрые диски.»
Я конкретно сейчас вижу торможение дисков, особенно в части tempdb, вопрос только может ли скорость дисков так катастрофически влиять? Неужели может?

Процессов слегка загружен (больше 30%) в обычных запросах, при операция с SQL перегружен.
Памяти на виртуалке 4GB (мне кажется маловато, наверное надо до 8 увеличить).

Проблемы постоянно – не периодически. Сам по себе сервер работает нормально, не заметно, чтобы другие приложения как то тормозили.

Настройки БД вроде ничем не вызывают сомнения. Никакие периодические нагрузочные процедуры из под аксапты не выполняются, да и maintenance базы данных отсутствует (вроде делается бекап всего сервера).
Autoshrink отключен, autoupgrade for statistic отключен по рекомендациям, до этого был включен – ничего не изменилось. Cyrillic_General_CI_AS collation.
Recovery mode – simple, бекап делается full еженедельно (но весь сервер пишется на ленту ежедневно).
Index Hint в AOS выключен.
Обновление статистики и реиндексация сделаны мной, сначала в SQL reorganize index à update statistic, потом обновление индексов в аксапте . Результатов я лично не вижу.
__________________
Может быть выйдет, а может не-е-е-ет...
Новая песня вместо штиблет..
Старый 29.05.2011, 22:02   #11  
Qaz Qwerty is offline
Qaz Qwerty
китайский стажер
 
152 / 37 (2) +++
Регистрация: 12.05.2008
Вот три скриншота на мониторинг ресурсов
Вложения
Тип файла: pdf Аксфорум.pdf.pdf (174.6 Кб, 279 просмотров)
__________________
Может быть выйдет, а может не-е-е-ет...
Новая песня вместо штиблет..
Старый 29.05.2011, 22:19   #12  
Qaz Qwerty is offline
Qaz Qwerty
китайский стажер
 
152 / 37 (2) +++
Регистрация: 12.05.2008
Все таки меня напрягает вот какой момент. Есть job простой как 2 копейки:
Так вот во-первых, этот job завершает работу, пройдя не по всему плану счетов, без всяких сообщений об ошибке. Во-вторых, он выбирает счета не в алфавитном порядке, хотя должен выбирать согласно индексу на AccountNum. Это полный бред. Может это как то связано, что план счетов в виртуальной компании (shared table)? но такого никогда не было.

X++:
   while select forupdate LedgerTable
             {
              if (substr(LedgerTable.AccountNum,1,1) != 'A')
              {
                  ttsbegin;
                         LedgerTable.AccountNum = "A"+LedgerTable.AccountNum;
                         LedgerTable.renamePrimaryKey();
                   ttscommit;
               }
             }
__________________
Может быть выйдет, а может не-е-е-ет...
Новая песня вместо штиблет..
Старый 29.05.2011, 22:58   #13  
lev is offline
lev
Ищущий знания...
Аватар для lev
Oracle
MCBMSS
Axapta Retail User
 
1,723 / 491 (20) +++++++
Регистрация: 18.01.2005
Адрес: Москва
все как то очень странно... но чудес не бывает

покажите запрос, который уходит в базу, по последнему примеру (выборке по LedgerTable).

P.S. кстати, глобальную компиляцию пробовали?
__________________
"Страх перед возможностью ошибки не должен отвращать нас от поисков истины." (с)
С Уважением,
Елизаров Артем
Старый 29.05.2011, 23:13   #14  
mazzy is offline
mazzy
Участник
Аватар для mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Записей в блоге: 10
Цитата:
Сообщение от Qaz Qwerty Посмотреть сообщение
Так вот во-первых, этот job завершает работу, пройдя не по всему плану счетов, без всяких сообщений об ошибке.
вы делаете выборку ВНЕ транзакции, а потом ЭТУ ЖЕ выборку обновляете изнутри (renamePrimaryKey - это тот же update с доп.действиями). Поведение курсора для таких случаев не определено - такая выборка может как остановится, так и пройстись несколько раз по одной записи.

если уж так хотите внутреннюю транзакцию, то заведите LedgerTrans2 и обновляйте его.

Цитата:
Сообщение от Qaz Qwerty Посмотреть сообщение
Во-вторых, он выбирает счета не в алфавитном порядке, хотя должен выбирать согласно индексу на AccountNum. Это полный бред.
Нет, это нормально.
В запросе не указан ни индекс, ни сортировка. Поэтому SQL может выбрать любой порядок, удобный для него.



виртуальность компании не должна влиять.
__________________
полезное на axForum, github, vk, coub.
Старый 29.05.2011, 23:20   #15  
mazzy is offline
mazzy
Участник
Аватар для mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Записей в блоге: 10
Цитата:
Сообщение от Qaz Qwerty Посмотреть сообщение
Вот три скриншота на мониторинг ресурсов
изображения на форуме можно публиковать проще Как загрузить документ/изображение на форум (upload, закачать).
__________________
полезное на axForum, github, vk, coub.
Старый 29.05.2011, 23:37   #16  
mazzy is offline
mazzy
Участник
Аватар для mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Записей в блоге: 10
Цитата:
Сообщение от Qaz Qwerty Посмотреть сообщение
Нам нужно совершить (нагрузочную) операцию в системе (переименование счетов). Это действие началось несколько дней назад и до сих пор проблемы. Переименование выполняется очень медленно.
*поперхнулся пивом*
ни фига себе вы выбрали операцию.

есть несколько моментов, которые вносят значительные помехи:
1. план счетов - сильно кэшируемая таблица (CacheLookup = EntireTable) поэтому апдейт этой таблицы происходит не так как апдейт других таблиц
2. переименование - это апдейт не одной таблицы, а всех, где участвует счет из плана счетов.
3. счет из плана счетов - поле очень часто входящее в индексы у многих таблиц

учитывая, что у вас какие-то проблемы с индексами и статистикой на большинстве таблиц - не мудрено, что происходит медленно. не мудрено, что ваш диск разрывается от числа запросов на чтение/запись.

еще раз: почитайте на форуме про оптимизацию/производительность.
вы ж не первый, кто столкнулся с этой задачей.

Цитата:
Сообщение от Qaz Qwerty Посмотреть сообщение
например запрос формы плана счетов с одновременным показом баланса занимает несколько минут, для бухгалтеров это повод сходить попить чай .
не хотите сами почитать, наймите специалистов что-ли.
не должно так быть. и не происходит так.

Цитата:
Сообщение от Qaz Qwerty Посмотреть сообщение
На 4-ке такая конфигурация жила без больших проблем, но говорят что новая версия нуждается в больших ресурсах
не говорите ерунды.
и не верьте кто вам такое говорит.

Цитата:
Сообщение от Qaz Qwerty Посмотреть сообщение
Я конкретно сейчас вижу торможение дисков, особенно в части tempdb, вопрос только может ли скорость дисков так катастрофически влиять? Неужели может?
конечно может.
если любая выборка вместо индекса приводит к копированию и к сортировке в tempdb, то tempdb будет тормозить что вы с ним ни сделайте.

Цитата:
Сообщение от Qaz Qwerty Посмотреть сообщение
Обновление статистики и реиндексация сделаны мной, сначала в SQL reorganize index à update statistic, потом обновление индексов в аксапте . Результатов я лично не вижу.
а они до конца выполнились?
какие-нибудь сообщения об ошибках/удачном завершении были?
сколько выполнялось хоть, можете сказать?

тормоза
производительность
оптимизация
__________________
полезное на axForum, github, vk, coub.
За это сообщение автора поблагодарили: Qaz Qwerty (2).
Старый 30.05.2011, 00:36   #17  
sukhanchik is offline
sukhanchik
Administrator
Аватар для sukhanchik
MCBMSS
Злыдни
Лучший по профессии 2015
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
3,325 / 3548 (125) ++++++++++
Регистрация: 13.06.2004
Адрес: Москва
Цитата:
Сообщение от mazzy Посмотреть сообщение
В запросе не указан ни индекс, ни сортировка. Поэтому SQL может выбрать любой порядок, удобный для него.
Маленькая поправка. Если в запросе не указан ни индекс, ни сортировка, но на таблице присутствует кластерный индекс - то выборка будет осуществляться с сортировкой по кластерному индексу (просто так данные на диске в таком порядке расположены).
Собственно - на всех справочниках в АХ обычно присутствует кластерный индекс, ибо Best Practice его ставить рекомендует на ключевое поле совместно с первичным индексом.

А вот чего бы я посоветовал бы сделать - так это обратить внимание на фрагментацию таблиц без кластерного индекса. Реиндексация конечно свое дело сделала ... для таблиц, у которых уже есть кластерный индекс. А вот таблицы без кластерного индекса - могут быть сильно фрагментированы. Тут поможет команда
PHP код:
DBCC SHOWCONTIG('tablename'
для отдельно взятой таблицы.

НО! Тут надо смотреть. Если проблема на табличке без кластерного индекса - то тогда "это оно". Если нет, и проблема явно в дисках - то тут нужно думать в другом направлении. Если бы у Вас был бы Recovery Model=Full - то я бы обратил внимание на то, на какой диск пишется Shipping Log - ибо частые снимки базы не могут не напрягать диски.
__________________
Возможно сделать все. Вопрос времени
Старый 30.05.2011, 08:04   #18  
Wamr is offline
Wamr
----------------
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
 
1,737 / 858 (32) +++++++
Регистрация: 15.01.2002
Адрес: Москва
Записей в блоге: 7
ребята, о чем вы, какая оптимизация индексов и бд. Этож виртуалка с АОСом и БД и 4гигами.
Попробуйте простой тест - возьмите большой файл и скопируйте его из одной папки в другую (не перемещать, а именно копировать), посмотрите скорость передачи данных.
За это сообщение автора поблагодарили: mazzy (2), sukhanchik (2), lev (2).
Старый 30.05.2011, 08:18   #19  
sukhanchik is offline
sukhanchik
Administrator
Аватар для sukhanchik
MCBMSS
Злыдни
Лучший по профессии 2015
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
3,325 / 3548 (125) ++++++++++
Регистрация: 13.06.2004
Адрес: Москва
Цитата:
Сообщение от Wamr Посмотреть сообщение
ребята, о чем вы, какая оптимизация индексов и бд. Этож виртуалка с АОСом и БД и 4гигами.
Попробуйте простой тест - возьмите большой файл и скопируйте его из одной папки в другую (не перемещать, а именно копировать), посмотрите скорость передачи данных.
Кстати, да - дельное предложение - я упустил момент что это виртуалка.
__________________
Возможно сделать все. Вопрос времени
Старый 30.05.2011, 19:36   #20  
Qaz Qwerty is offline
Qaz Qwerty
китайский стажер
 
152 / 37 (2) +++
Регистрация: 12.05.2008
Цитата:
Сообщение от lev Посмотреть сообщение
покажите запрос, который уходит в базу, по последнему примеру (выборке по LedgerTable).
P.S. кстати, глобальную компиляцию пробовали?
Компиляцию пробовали, конечно. Сколько ж раз ее можно делать?
А запрос, который делается в случае rename primary key, я даже ловить не буду. Думаю это куча запросов, на основе перебора всех reference к ledgertable.
__________________
Может быть выйдет, а может не-е-е-ет...
Новая песня вместо штиблет..
Теги
ax2009, upgrade, производительность, тормоза

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
dax 2009. загрузка кладр. epic DAX: Функционал 17 09.08.2010 12:20
Ограничения CLR Interop в DAX (4.0, 2009) alex55 DAX: Программирование 7 18.03.2010 12:37
Переход на DAX 2009. Проблема с повторяющимися id таблиц. Как исправить? Murlin DAX: Программирование 18 02.11.2009 15:42
emeadaxsupport: List of fixes that improve performance of certain features in Dynamics AX 2009 Blog bot DAX Blogs 0 13.10.2009 19:06
axStart: Microsoft Dynamics AX 2009 Hot Topics Web Seminar Series Blog bot DAX Blogs 0 06.08.2008 12:05

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

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

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