AXForum  
Go Back   AXForum > Microsoft Dynamics AX > DAX: Администрирование
All
Forgotten Your Password?
Register Forum Rules FAQ Members List Today's Posts Search Mark Forums Read

 
 
Thread Tools Search this Thread Display Modes
Old 22.10.2015, 09:21   #1  
demianimp is offline
demianimp
Участник
 
202 / 104 (4) +++++
Join Date: 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 минуты? В какую сторону смотреть?
Old 22.10.2015, 10:00   #2  
Logger is offline
Logger
Участник
Лучший по профессии 2015
Лучший по профессии 2014
 
4,000 / 3298 (118) ++++++++++
Join Date: 12.10.2004
Location: Москва
Blog Entries: 2
По вопросу 1 - возможно у вас сама табличка фрагментирована. Поройте эту тему.

2. Такое бывает на больших табличках. Возможно долгий вызов соответствует случаю когда таблички не было в кеше БД. А быстрый - когда она уже закеширована. Покопайтесь в кеше - какие таблички и индексы в этот момент там сидят.
Old 22.10.2015, 10:02   #3  
macklakov is offline
macklakov
NavAx
macklakov's Avatar
 
2,347 / 996 (38) +++++++
Join Date: 03.04.2002
Quote:
Originally Posted by demianimp View Post
Из-за чего может быть разница в работе в 3,5 минуты? В какую сторону смотреть?
Возможно, банально сеть между SQL и AOS ложится.
А версия у вас какая?
__________________
Isn't it nice when things just work?
Old 22.10.2015, 10:13   #4  
demianimp is offline
demianimp
Участник
 
202 / 104 (4) +++++
Join Date: 10.10.2013
Quote:
Originally Posted by Logger View Post
По вопросу 1 - возможно у вас сама табличка фрагментирована. Поройте эту тему.
1. спасибо, посмотрю.


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

Axapta 2009 + MS SQL 2008
Old 22.10.2015, 10:22   #5  
Vadik is offline
Vadik
Модератор
Vadik's Avatar
Лучший по профессии 2017
Лучший по профессии 2015
 
3,631 / 1853 (69) ++++++++
Join Date: 18.11.2002
Location: гражданин Москвы
Quote:
Originally Posted by demianimp View Post
Пользователи начали жаловаться на зависания в работе с таблицами CustInvoiceTable и CustInvoiceTrans
Проблемные запросы отловить пытались, планы смотрели?
Quote:
Помогает ручная переиндексация таблиц, через Администрирование SQL
Это "гильотина как средство от головы". Да, статистика от перестройки индексов обновится и что самое важное сбросится кэш планов исполнения. Если это происходит регулярно, надо разбираться почему они у вас постоянно "протухают". Версия AX? Компаний больше одной? Распределение данных неравномерное?
Quote:
Но у нас каждый день выполняется переиндексация индексов у которых количество страниц больше 30 и фрагментация больше 5%
Нормально, что нужно каждый день "вручную" переиндексировать таблицы? Или у нас неправильно работает SQL?
Ежедневная реиндексация, что ручная, что автоматическая - это ненормально. Пинайте DBA, пусть собирает статистику по запросам, вертит ее по разным критериям, анализирует - в общем, работает вместо того чтобы заниматься отписками
Quote:
Проблема №2:
..
В какую сторону смотреть?
Tools for monitoring performance [AX 2012]
__________________
-ТСЯ или -ТЬСЯ ?
This post has been rated by: Logger (3), gl00mie (2), demianimp (1).
Old 22.10.2015, 10:34   #6  
Logger is offline
Logger
Участник
Лучший по профессии 2015
Лучший по профессии 2014
 
4,000 / 3298 (118) ++++++++++
Join Date: 12.10.2004
Location: Москва
Blog Entries: 2
Quote:
Originally Posted by demianimp View Post
В этом случае трассировка долгих запросов должны выдать сообщение?
Должна конечно.
Old 22.10.2015, 10:42   #7  
demianimp is offline
demianimp
Участник
 
202 / 104 (4) +++++
Join Date: 10.10.2013
Quote:
Originally Posted by Logger View Post
Должна конечно.
А инфологов нет Вот и приходить гадать на кофейней гуще
Old 22.10.2015, 10:49   #8  
demianimp is offline
demianimp
Участник
 
202 / 104 (4) +++++
Join Date: 10.10.2013
Quote:
Originally Posted by Vadik View Post
Ежедневная реиндексация, что ручная, что автоматическая - это ненормально. Пинайте DBA, пусть собирает статистику по запросам, вертит ее по разным критериям, анализирует - в общем, работает вместо того чтобы заниматься отписками
Было бы кого пинать, обязательно бы запинал А так пока во всем виноват программис

Quote:
Originally Posted by Vadik View Post
Проблемные запросы отловить пытались, планы смотрели?

Это "гильотина как средство от головы". Да, статистика от перестройки индексов обновится и что самое важное сбросится кэш планов исполнения. Если это происходит регулярно, надо разбираться почему они у вас постоянно "протухают". Версия AX? Компаний больше одной? Распределение данных неравномерное?
Извините, но у меня только начальные знания по администрированию SQL.
Версия AX? 2009
Компаний больше одной? конкретно в этом приложении используется одна компания.
Распределение данных неравномерное? Что это значит? Я не понимаю, объясните пожалуйста
Old 22.10.2015, 11:13   #9  
gl00mie is offline
gl00mie
Участник
MCBMSS
Most Valuable Professional
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
3,684 / 5813 (201) ++++++++++
Join Date: 28.11.2005
Location: Москва
Blog Entries: 3
Quote:
Originally Posted by demianimp View Post
Было бы кого пинать, обязательно бы запинал
Обычно на предмет производительности "пинают" штатного DBA, но что-то мне подсказывает, что в данном случае его нет
Quote:
Originally Posted by demianimp View Post
Извините, но у меня только начальные знания по администрированию SQL.
Из вас решили сделать DBA "по бразильской системе"?
Quote:
Originally Posted by demianimp View Post
Компаний больше одной? конкретно в этом приложении используется одна компания.
Распределение данных неравномерное? Что это значит? Я не понимаю
Если у вас одна компания, то вопрос про неравномерное распределение данных к вашему случаю не относится. Обычно неравномерность проявляется в том, что в БД - несколько компаний Аксапты, при этом 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
This post has been rated by: demianimp (1).
Old 22.10.2015, 11:49   #10  
demianimp is offline
demianimp
Участник
 
202 / 104 (4) +++++
Join Date: 10.10.2013
Quote:
Originally Posted by Logger View Post
По вопросу 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.
Если я правильно прочитал результат, то у меня не все так плохо.
Old 22.10.2015, 12:03   #11  
Vadik is offline
Vadik
Модератор
Vadik's Avatar
Лучший по профессии 2017
Лучший по профессии 2015
 
3,631 / 1853 (69) ++++++++
Join Date: 18.11.2002
Location: гражданин Москвы
Quote:
Originally Posted by demianimp View Post
Если я правильно прочитал результат, то у меня не все так плохо
У Вас просто проблема не во фрагментации, вот и все. Натравите на свое окружение 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
__________________
-ТСЯ или -ТЬСЯ ?
This post has been rated by: Михаил Андреев (2).
Old 22.10.2015, 13:20   #12  
demianimp is offline
demianimp
Участник
 
202 / 104 (4) +++++
Join Date: 10.10.2013
Thumbs up
Quote:
Originally Posted by Vadik View Post
У Вас просто проблема не во фрагментации, вот и все. Натравите на свое окружение DynamicsPerf, гарантирую массу открытий чудных
Действительно DynamicsPerf хороший инструмент
Осталось понять, куда смотреть и как анализировать информацию.
Old 22.10.2015, 13:42   #13  
Vadik is offline
Vadik
Модератор
Vadik's Avatar
Лучший по профессии 2017
Лучший по профессии 2015
 
3,631 / 1853 (69) ++++++++
Join Date: 18.11.2002
Location: гражданин Москвы
Quote:
Originally Posted by demianimp View Post
Действительно DynamicsPerf хороший инструмент
Осталось понять, куда смотреть и как анализировать информацию
Как закончите его разворачивать, прошерстите весь блог PFE, это Вас займет дней так на пару - как раз столько (примерно) времени надо DynamicsPerf чтобы более-менее релевантную статистику собрать. Если к тому моменту останутся какие-то вопросы - обращайтесь, постараюсь помочь
__________________
-ТСЯ или -ТЬСЯ ?
Old 22.10.2015, 14:39   #14  
AlexeyS is offline
AlexeyS
Участник
 
404 / 339 (12) ++++++
Join Date: 15.06.2004
Location: москва
Quote:
Originally Posted by demianimp View Post
Проблема в том, что в одно время он работает 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;
Old 22.10.2015, 15:31   #15  
demianimp is offline
demianimp
Участник
 
202 / 104 (4) +++++
Join Date: 10.10.2013
Quote:
Originally Posted by AlexeyS View Post
в дополнение к советам:
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?
Old 22.10.2015, 16:10   #16  
gl00mie is offline
gl00mie
Участник
MCBMSS
Most Valuable Professional
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
3,684 / 5813 (201) ++++++++++
Join Date: 28.11.2005
Location: Москва
Blog Entries: 3
Совсем в идеале дисковые очереди должны быть в пределах 1-2 операций ввода-вывода на шпиндель См. также статью SQL Server Best Practices.
Old 23.10.2015, 10:05   #17  
Alexius is offline
Alexius
Участник
Alexius's Avatar
 
461 / 248 (9) ++++++
Join Date: 13.12.2001
Можно продолжить изучение DBCC SHOWCONTIG для остальных индексов (по умолчанию выдается информация по кластерному/псевдокластерному индексу)

А проблемы 1 и 2 не коррелируют по времени ?
Old 23.10.2015, 12:15   #18  
demianimp is offline
demianimp
Участник
 
202 / 104 (4) +++++
Join Date: 10.10.2013
Quote:
Originally Posted by Alexius View Post
Можно продолжить изучение DBCC SHOWCONTIG для остальных индексов (по умолчанию выдается информация по кластерному/псевдокластерному индексу)

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

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

 

Similar Threads
Thread Thread Starter Forum Replies Last Post
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
Thread Tools Search this Thread
Search this Thread:

Advanced Search
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Forum Jump

Рейтинг@Mail.ru
All times are GMT +3. The time now is 08:52.
Powered by vBulletin® Version 3.8.5
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Contacts E-mail, Advertising.