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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 22.10.2015, 09:21   #1  
demianimp is offline
demianimp
Участник
 
202 / 104 (4) +++++
Регистрация: 10.10.2013
? Аномальное поведение AOS+БД
Всем здравствуйте!

Друзья нужна ваша помощь, с моими проблемами.
Возможно проблема одна, но проявляется в разных местах.

Проблема №1:
Пользователи начали жаловаться на зависания в работе с таблицами CustInvoiceTable и CustInvoiceTrans. Помогает ручная переиндексация таблиц, через Администрирование SQL. Но у нас каждый день выполняется переиндексация индексов у которых количество страниц больше 30 и фрагментация больше 5%.
Нормально, что нужно каждый день "вручную" переиндексировать таблицы? Или у нас неправильно работает SQL? В какую сторону смотреть?

Проблема №2:
Есть некий алгоритм, который получает информацию из обменной таблицы. Обрабатывает ее и обновляет таблицу SalesTable через update_recordset.

Проблема в том, что в одно время он работает 4 минуту, в другое отрабатывает за 24 секунды. Набор данных один и тот же. Если в это время смотреть через MS SQL Server Management Studio, то загрузка на ЦП в районе 5%, блокировок нет, ожиданий нет. Трассировка запроса через Axapta при параметре 100 мс, аномального ничего не выдает. Есть 10 запросов, которые больше 100 мс и меньше 300 мс.
Из-за чего может быть разница в работе в 3,5 минуты? В какую сторону смотреть?
Старый 22.10.2015, 10:00   #2  
Logger is offline
Logger
Участник
Лучший по профессии 2015
Лучший по профессии 2014
 
3,873 / 3123 (112) ++++++++++
Регистрация: 12.10.2004
Адрес: Москва
Записей в блоге: 2
По вопросу 1 - возможно у вас сама табличка фрагментирована. Поройте эту тему.

2. Такое бывает на больших табличках. Возможно долгий вызов соответствует случаю когда таблички не было в кеше БД. А быстрый - когда она уже закеширована. Покопайтесь в кеше - какие таблички и индексы в этот момент там сидят.
Старый 22.10.2015, 10:02   #3  
macklakov is offline
macklakov
NavAx
Аватар для macklakov
 
2,129 / 916 (35) +++++++
Регистрация: 03.04.2002
Цитата:
Сообщение от demianimp Посмотреть сообщение
Из-за чего может быть разница в работе в 3,5 минуты? В какую сторону смотреть?
Возможно, банально сеть между SQL и AOS ложится.
А версия у вас какая?
__________________
Isn't it nice when things just work?
Старый 22.10.2015, 10:13   #4  
demianimp is offline
demianimp
Участник
 
202 / 104 (4) +++++
Регистрация: 10.10.2013
Цитата:
Сообщение от Logger Посмотреть сообщение
По вопросу 1 - возможно у вас сама табличка фрагментирована. Поройте эту тему.
1. спасибо, посмотрю.


Цитата:
Сообщение от Logger Посмотреть сообщение
2. Такое бывает на больших табличках. Возможно долгий вызов соответствует случаю когда таблички не было в кеше БД. А быстрый - когда она уже закеширована. Покопайтесь в кеше - какие таблички и индексы в этот момент там сидят.
Цитата:
Сообщение от macklakov Посмотреть сообщение
Возможно, банально сеть между SQL и AOS ложится.
А версия у вас какая?
В этом случае трассировка долгих запросов должны выдать сообщение? Или на по другому считает долгий запроса? В моем понимании, время считается от подачи команды до возвращения результата.

Axapta 2009 + MS SQL 2008
Старый 22.10.2015, 10:22   #5  
Vadik is offline
Vadik
Модератор
Аватар для Vadik
Лучший по профессии 2017
Лучший по профессии 2015
 
3,631 / 1849 (69) ++++++++
Регистрация: 18.11.2002
Адрес: гражданин Москвы
Цитата:
Сообщение от demianimp Посмотреть сообщение
Пользователи начали жаловаться на зависания в работе с таблицами CustInvoiceTable и CustInvoiceTrans
Проблемные запросы отловить пытались, планы смотрели?
Цитата:
Помогает ручная переиндексация таблиц, через Администрирование SQL
Это "гильотина как средство от головы". Да, статистика от перестройки индексов обновится и что самое важное сбросится кэш планов исполнения. Если это происходит регулярно, надо разбираться почему они у вас постоянно "протухают". Версия AX? Компаний больше одной? Распределение данных неравномерное?
Цитата:
Но у нас каждый день выполняется переиндексация индексов у которых количество страниц больше 30 и фрагментация больше 5%
Нормально, что нужно каждый день "вручную" переиндексировать таблицы? Или у нас неправильно работает SQL?
Ежедневная реиндексация, что ручная, что автоматическая - это ненормально. Пинайте DBA, пусть собирает статистику по запросам, вертит ее по разным критериям, анализирует - в общем, работает вместо того чтобы заниматься отписками
Цитата:
Проблема №2:
..
В какую сторону смотреть?
Tools for monitoring performance [AX 2012]
__________________
-ТСЯ или -ТЬСЯ ?
За это сообщение автора поблагодарили: Logger (3), gl00mie (2), demianimp (1).
Старый 22.10.2015, 10:34   #6  
Logger is offline
Logger
Участник
Лучший по профессии 2015
Лучший по профессии 2014
 
3,873 / 3123 (112) ++++++++++
Регистрация: 12.10.2004
Адрес: Москва
Записей в блоге: 2
Цитата:
Сообщение от demianimp Посмотреть сообщение
В этом случае трассировка долгих запросов должны выдать сообщение?
Должна конечно.
Старый 22.10.2015, 10:42   #7  
demianimp is offline
demianimp
Участник
 
202 / 104 (4) +++++
Регистрация: 10.10.2013
Цитата:
Сообщение от Logger Посмотреть сообщение
Должна конечно.
А инфологов нет Вот и приходить гадать на кофейней гуще
Старый 22.10.2015, 10:49   #8  
demianimp is offline
demianimp
Участник
 
202 / 104 (4) +++++
Регистрация: 10.10.2013
Цитата:
Сообщение от Vadik Посмотреть сообщение
Ежедневная реиндексация, что ручная, что автоматическая - это ненормально. Пинайте DBA, пусть собирает статистику по запросам, вертит ее по разным критериям, анализирует - в общем, работает вместо того чтобы заниматься отписками
Было бы кого пинать, обязательно бы запинал А так пока во всем виноват программис

Цитата:
Сообщение от Vadik Посмотреть сообщение
Проблемные запросы отловить пытались, планы смотрели?

Это "гильотина как средство от головы". Да, статистика от перестройки индексов обновится и что самое важное сбросится кэш планов исполнения. Если это происходит регулярно, надо разбираться почему они у вас постоянно "протухают". Версия AX? Компаний больше одной? Распределение данных неравномерное?
Извините, но у меня только начальные знания по администрированию SQL.
Версия AX? 2009
Компаний больше одной? конкретно в этом приложении используется одна компания.
Распределение данных неравномерное? Что это значит? Я не понимаю, объясните пожалуйста
Старый 22.10.2015, 11:13   #9  
gl00mie is offline
gl00mie
Участник
MCBMSS
Most Valuable Professional
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
3,684 / 5788 (200) ++++++++++
Регистрация: 28.11.2005
Адрес: Москва
Записей в блоге: 3
Цитата:
Сообщение от demianimp Посмотреть сообщение
Было бы кого пинать, обязательно бы запинал
Обычно на предмет производительности "пинают" штатного DBA, но что-то мне подсказывает, что в данном случае его нет
Цитата:
Сообщение от demianimp Посмотреть сообщение
Извините, но у меня только начальные знания по администрированию SQL.
Из вас решили сделать DBA "по бразильской системе"?
Цитата:
Сообщение от demianimp Посмотреть сообщение
Компаний больше одной? конкретно в этом приложении используется одна компания.
Распределение данных неравномерное? Что это значит? Я не понимаю
Если у вас одна компания, то вопрос про неравномерное распределение данных к вашему случаю не относится. Обычно неравномерность проявляется в том, что в БД - несколько компаний Аксапты, при этом 80-90% данных приходится на одну из них. Из-за этого могут возникать проблемы с неоптимальными планами SQL-запросов, которые СУБД изначально строит для одной компании (скажем, с 5% данных, где подходит один индекс), а затем использует повторно такой план для другой компании, где он совсем не подходит. Подробности см., скажем, в публикации Overcoming parameter sniffing issue in Microsoft Dynamics AX 2012-R2 – CU6
См. также Troubleshooting that elusive “slowdown” in AX using Performance Analyzer 1.20 for Microsoft Dynamics
За это сообщение автора поблагодарили: demianimp (1).
Старый 22.10.2015, 11:49   #10  
demianimp is offline
demianimp
Участник
 
202 / 104 (4) +++++
Регистрация: 10.10.2013
Цитата:
Сообщение от Logger Посмотреть сообщение
По вопросу 1 - возможно у вас сама табличка фрагментирована. Поройте эту тему.
Если выполнить команды
X++:
DBCC SHOWCONTIG ('CUSTINVOICEJOUR')
DBCC SHOWCONTIG scanning 'CUSTINVOICEJOUR' table...
Table: 'CUSTINVOICEJOUR' (2067993127); index ID: 1, database ID: 5
TABLE level scan performed.
- Pages Scanned................................: 420067
- Extents Scanned..............................: 52536
- Extent Switches..............................: 57048
- Avg. Pages per Extent........................: 8.0
- Scan Density [Best Count:Actual Count].......: 92.04% [52509:57049]
- Logical Scan Fragmentation ..................: 1.26%
- Extent Scan Fragmentation ...................: 64.65%
- Avg. Bytes Free per Page.....................: 1151.0
- Avg. Page Density (full).....................: 85.78%
DBCC execution completed. If DBCC printed error messages, contact your system administrator.
X++:
DBCC SHOWCONTIG ('CUSTINVOICETRANS')
DBCC SHOWCONTIG scanning 'CUSTINVOICETRANS' table...
Table: 'CUSTINVOICETRANS' (35531210); index ID: 1, database ID: 5
TABLE level scan performed.
- Pages Scanned................................: 2062292
- Extents Scanned..............................: 257851
- Extent Switches..............................: 258098
- Avg. Pages per Extent........................: 8.0
- Scan Density [Best Count:Actual Count].......: 99.88% [257787:258099]
- Logical Scan Fragmentation ..................: 0.05%
- Extent Scan Fragmentation ...................: 56.01%
- Avg. Bytes Free per Page.....................: 1266.0
- Avg. Page Density (full).....................: 84.36%
DBCC execution completed. If DBCC printed error messages, contact your system administrator.
Если я правильно прочитал результат, то у меня не все так плохо.
Старый 22.10.2015, 12:03   #11  
Vadik is offline
Vadik
Модератор
Аватар для Vadik
Лучший по профессии 2017
Лучший по профессии 2015
 
3,631 / 1849 (69) ++++++++
Регистрация: 18.11.2002
Адрес: гражданин Москвы
Цитата:
Сообщение от demianimp Посмотреть сообщение
Если я правильно прочитал результат, то у меня не все так плохо
У Вас просто проблема не во фрагментации, вот и все. Натравите на свое окружение DynamicsPerf, гарантирую массу открытий чудных

P.S. Документация у него конечно не ахти (в том смысле что разбросана по разным постам в блоге), поэтому основные шаги ниже

Performance Analyzer for Microsoft Dynamics 1.20 Deployment Guide Core Installation
Performance Analyzer for Microsoft Dynamics 1.20 Deployment Guide Dynamics AX Installation
__________________
-ТСЯ или -ТЬСЯ ?
За это сообщение автора поблагодарили: Михаил Андреев (2).
Старый 22.10.2015, 13:20   #12  
demianimp is offline
demianimp
Участник
 
202 / 104 (4) +++++
Регистрация: 10.10.2013
Thumbs up
Цитата:
Сообщение от Vadik Посмотреть сообщение
У Вас просто проблема не во фрагментации, вот и все. Натравите на свое окружение DynamicsPerf, гарантирую массу открытий чудных
Действительно DynamicsPerf хороший инструмент
Осталось понять, куда смотреть и как анализировать информацию.
Старый 22.10.2015, 13:42   #13  
Vadik is offline
Vadik
Модератор
Аватар для Vadik
Лучший по профессии 2017
Лучший по профессии 2015
 
3,631 / 1849 (69) ++++++++
Регистрация: 18.11.2002
Адрес: гражданин Москвы
Цитата:
Сообщение от demianimp Посмотреть сообщение
Действительно DynamicsPerf хороший инструмент
Осталось понять, куда смотреть и как анализировать информацию
Как закончите его разворачивать, прошерстите весь блог PFE, это Вас займет дней так на пару - как раз столько (примерно) времени надо DynamicsPerf чтобы более-менее релевантную статистику собрать. Если к тому моменту останутся какие-то вопросы - обращайтесь, постараюсь помочь
__________________
-ТСЯ или -ТЬСЯ ?
Старый 22.10.2015, 14:39   #14  
AlexeyS is offline
AlexeyS
Участник
 
404 / 339 (12) ++++++
Регистрация: 15.06.2004
Адрес: москва
Цитата:
Сообщение от demianimp Посмотреть сообщение
Проблема в том, что в одно время он работает 4 минуту, в другое отрабатывает за 24 секунды. Набор данных один и тот же. Если в это время смотреть через MS SQL Server Management Studio, то загрузка на ЦП в районе 5%, блокировок нет, ожиданий нет. Трассировка запроса через Axapta при параметре 100 мс, аномального ничего не выдает. Есть 10 запросов, которые больше 100 мс и меньше 300 мс.
Из-за чего может быть разница в работе в 3,5 минуты? В какую сторону смотреть?
в дополнение к советам:
1. проверьте очереди к диску в Мониторе ресурсов
2. проверьте процент попадания в кеш буфера, возможно sql-серверу банально не хватает физической памяти, например так:
SELECT ROUND(CAST(A.cntr_value1 AS NUMERIC) /
CAST(B.cntr_value2 AS NUMERIC),3) AS Buffer_Cache_Hit_Ratio
FROM ( SELECT cntr_value AS cntr_value1
FROM sys.dm_os_performance_counters WHERE object_name = 'SQLServer:Buffer Manager' AND counter_name = 'Buffer cache hit ratio') AS A,
(SELECT cntr_value AS cntr_value2 FROM sys.dm_os_performance_counters
WHERE object_name = 'SQLServer:Buffer Manager' AND counter_name = 'Buffer cache hit ratio base') AS B;
Старый 22.10.2015, 15:31   #15  
demianimp is offline
demianimp
Участник
 
202 / 104 (4) +++++
Регистрация: 10.10.2013
Цитата:
Сообщение от AlexeyS Посмотреть сообщение
в дополнение к советам:
1. проверьте очереди к диску в Мониторе ресурсов
2. проверьте процент попадания в кеш буфера, возможно sql-серверу банально не хватает физической памяти, например так:
SELECT ROUND(CAST(A.cntr_value1 AS NUMERIC) /
CAST(B.cntr_value2 AS NUMERIC),3) AS Buffer_Cache_Hit_Ratio
FROM ( SELECT cntr_value AS cntr_value1
FROM sys.dm_os_performance_counters WHERE object_name = 'SQLServer:Buffer Manager' AND counter_name = 'Buffer cache hit ratio') AS A,
(SELECT cntr_value AS cntr_value2 FROM sys.dm_os_performance_counters
WHERE object_name = 'SQLServer:Buffer Manager' AND counter_name = 'Buffer cache hit ratio base') AS B;
2. Какое значение в идеале 1?
Старый 22.10.2015, 16:10   #16  
gl00mie is offline
gl00mie
Участник
MCBMSS
Most Valuable Professional
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
3,684 / 5788 (200) ++++++++++
Регистрация: 28.11.2005
Адрес: Москва
Записей в блоге: 3
Совсем в идеале дисковые очереди должны быть в пределах 1-2 операций ввода-вывода на шпиндель См. также статью SQL Server Best Practices.
Старый 23.10.2015, 10:05   #17  
Alexius is offline
Alexius
Участник
Аватар для Alexius
 
461 / 248 (9) ++++++
Регистрация: 13.12.2001
Можно продолжить изучение DBCC SHOWCONTIG для остальных индексов (по умолчанию выдается информация по кластерному/псевдокластерному индексу)

А проблемы 1 и 2 не коррелируют по времени ?
Старый 23.10.2015, 12:15   #18  
demianimp is offline
demianimp
Участник
 
202 / 104 (4) +++++
Регистрация: 10.10.2013
Цитата:
Сообщение от Alexius Посмотреть сообщение
Можно продолжить изучение DBCC SHOWCONTIG для остальных индексов (по умолчанию выдается информация по кластерному/псевдокластерному индексу)

А проблемы 1 и 2 не коррелируют по времени ?
1 начала возникать только утром, после обслуживания базы(переиндексации и обновлении статистики).

2 проблема плавающая. Может возникнуть в 14:00, может в 16:37, может в 18:20 и т.д.
Теги
ax2009, dynamicsperf, sql server, производительность

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
AX 2009: зачем нужен балансировщик нагрузки, и как в кластере зайти на определенный AOS? gl00mie DAX: Администрирование 7 26.02.2015 16:38
Несколько AOS к одной БД alesander DAX: Администрирование 11 28.09.2010 16:12
daxis: Troubleshooting blocked SPIDS in AOS Blog bot DAX Blogs 0 01.04.2009 18:05
Arijit Basu: AX 4 AOS Basics: [Level 100] Blog bot DAX Blogs 0 18.11.2007 14:30
2 AOS + 2 БД = 1 сервер renat DAX: Администрирование 2 22.07.2003 09:20
Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

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

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

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 00:32.
Powered by vBulletin® v3.8.5. Перевод: zCarot
Контактная информация, Реклама.