22.10.2015, 09:21 | #1 |
Участник
|
Аномальное поведение 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 |
Участник
|
По вопросу 1 - возможно у вас сама табличка фрагментирована. Поройте эту тему.
2. Такое бывает на больших табличках. Возможно долгий вызов соответствует случаю когда таблички не было в кеше БД. А быстрый - когда она уже закеширована. Покопайтесь в кеше - какие таблички и индексы в этот момент там сидят. |
|
22.10.2015, 10:02 | #3 |
NavAx
|
Цитата:
А версия у вас какая?
__________________
Isn't it nice when things just work? |
|
22.10.2015, 10:13 | #4 |
Участник
|
Цитата:
Цитата:
Цитата:
Axapta 2009 + MS SQL 2008 |
|
22.10.2015, 10:22 | #5 |
Модератор
|
Цитата:
Цитата:
Помогает ручная переиндексация таблиц, через Администрирование SQL
Цитата:
Но у нас каждый день выполняется переиндексация индексов у которых количество страниц больше 30 и фрагментация больше 5%
Нормально, что нужно каждый день "вручную" переиндексировать таблицы? Или у нас неправильно работает SQL? Цитата:
Проблема №2:
.. В какую сторону смотреть?
__________________
-ТСЯ или -ТЬСЯ ? |
|
|
За это сообщение автора поблагодарили: Logger (3), gl00mie (2), demianimp (1). |
22.10.2015, 10:34 | #6 |
Участник
|
|
|
22.10.2015, 10:42 | #7 |
Участник
|
|
|
22.10.2015, 10:49 | #8 |
Участник
|
Цитата:
Цитата:
Сообщение от Vadik
Проблемные запросы отловить пытались, планы смотрели?
Это "гильотина как средство от головы". Да, статистика от перестройки индексов обновится и что самое важное сбросится кэш планов исполнения. Если это происходит регулярно, надо разбираться почему они у вас постоянно "протухают". Версия AX? Компаний больше одной? Распределение данных неравномерное? Версия AX? 2009 Компаний больше одной? конкретно в этом приложении используется одна компания. Распределение данных неравномерное? Что это значит? Я не понимаю, объясните пожалуйста |
|
22.10.2015, 11:13 | #9 |
Участник
|
Обычно на предмет производительности "пинают" штатного DBA, но что-то мне подсказывает, что в данном случае его нет
Цитата:
Цитата:
См. также Troubleshooting that elusive “slowdown” in AX using Performance Analyzer 1.20 for Microsoft Dynamics |
|
|
За это сообщение автора поблагодарили: demianimp (1). |
22.10.2015, 11:49 | #10 |
Участник
|
Цитата:
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 |
Модератор
|
У Вас просто проблема не во фрагментации, вот и все. Натравите на свое окружение 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 |
Участник
|
|
|
22.10.2015, 13:42 | #13 |
Модератор
|
Как закончите его разворачивать, прошерстите весь блог PFE, это Вас займет дней так на пару - как раз столько (примерно) времени надо DynamicsPerf чтобы более-менее релевантную статистику собрать. Если к тому моменту останутся какие-то вопросы - обращайтесь, постараюсь помочь
__________________
-ТСЯ или -ТЬСЯ ? |
|
22.10.2015, 14:39 | #14 |
Участник
|
Цитата:
Сообщение от 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 |
Участник
|
Цитата:
Сообщение от 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; |
|
22.10.2015, 16:10 | #16 |
Участник
|
Совсем в идеале дисковые очереди должны быть в пределах 1-2 операций ввода-вывода на шпиндель См. также статью SQL Server Best Practices.
|
|
23.10.2015, 10:05 | #17 |
Участник
|
Можно продолжить изучение DBCC SHOWCONTIG для остальных индексов (по умолчанию выдается информация по кластерному/псевдокластерному индексу)
А проблемы 1 и 2 не коррелируют по времени ? |
|
23.10.2015, 12:15 | #18 |
Участник
|
Цитата:
2 проблема плавающая. Может возникнуть в 14:00, может в 16:37, может в 18:20 и т.д. |
|
Теги |
ax2009, dynamicsperf, sql server, производительность |
|
|