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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 23.08.2007, 10:10   #1  
polygris is offline
polygris
Участник
AxAssist
MCBMSS
 
272 / 67 (3) ++++
Регистрация: 14.06.2005
Адрес: Киев
Тормоза SQL при наличии в InventDimId русских букв.
Заметил интересную особенность SQL 2005 (Axapta 3.0 SP5 KR2).
Все номерные серии в Аксе у меня начинаются с русских букв (пример: НА99999 - InventDimId)
Так вот при joine к таблицам InventSum, InventTrans (запрос на T-SQL) происодят жуткие тормоза (загруз SQL на 8 процессорной тачке под 100%). Если в запросе в условии join TRIM первые руссие символы - запрос выполняется несколько секунд при слабой загрузке проца.
1-й вопрос: Используете ли вы в номерных сериях документов в Аксе русские буквы.
2-й вопрос: Может ли эта ситуация реально влиять на производительность выполнения запросов.
Старый 23.08.2007, 10:20   #2  
belugin is offline
belugin
Участник
Аватар для belugin
Сотрудники Microsoft Dynamics
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии 2011
Лучший по профессии 2009
 
4,622 / 2925 (107) +++++++++
Регистрация: 16.01.2004
Записей в блоге: 5
Я бы посмотрел план запроса - может со статистикой чего?
А SP какие-нибудь на SQL накатаны?
Старый 23.08.2007, 10:43   #3  
polygris is offline
polygris
Участник
AxAssist
MCBMSS
 
272 / 67 (3) ++++
Регистрация: 14.06.2005
Адрес: Киев
Статистику перед этим пересчитывал.
Да канечно все последний апдейты SP2
Старый 23.08.2007, 10:50   #4  
mazzy is offline
mazzy
Участник
Аватар для mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Записей в блоге: 10
Цитата:
Сообщение от polygris Посмотреть сообщение
Заметил интересную особенность SQL 2005 (Axapta 3.0 SP5 KR2).
Все номерные серии в Аксе у меня начинаются с русских букв (пример: НА99999 - InventDimId)
Так вот при joine к таблицам InventSum, InventTrans (запрос на T-SQL) происодят жуткие тормоза (загруз SQL на 8 процессорной тачке под 100%). Если в запросе в условии join TRIM первые руссие символы - запрос выполняется несколько секунд при слабой загрузке проца.
1-й вопрос: Используете ли вы в номерных сериях документов в Аксе русские буквы.
2-й вопрос: Может ли эта ситуация реально влиять на производительность выполнения запросов.
1. а какой collation установлен на SQL?
2. Для служебных идентификаторов лучше использовать не #, а спецсимвол &. Код получается компактнее.
http://axapta.mazzy.ru/lib/numbersequenceformat/
__________________
полезное на axForum, github, vk, coub.
Старый 23.08.2007, 10:56   #5  
polygris is offline
polygris
Участник
AxAssist
MCBMSS
 
272 / 67 (3) ++++
Регистрация: 14.06.2005
Адрес: Киев
Collation: Cyrillic_General_CI_AS
Старый 23.08.2007, 16:25   #6  
mazzy is offline
mazzy
Участник
Аватар для mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Записей в блоге: 10
тогда вряд ли из-за него.
смотрите в профайлер и в план запроса.
__________________
полезное на axForum, github, vk, coub.
Старый 28.08.2007, 12:28   #7  
polygris is offline
polygris
Участник
AxAssist
MCBMSS
 
272 / 67 (3) ++++
Регистрация: 14.06.2005
Адрес: Киев
Результаты расследования проблемы.
Первое, что сделали это в InventDim в поле InventDimId заменили (с помощьюе renamePrimaryKey()) первые две русские буквы нулями (запрос без трима начал работать и отработал за 30 сек. С тримом - отработал за 10 секунд (т.е. как и раньше, в принципе другого и не могло и быть)
Второе, что сделали это обрезали InventDimId в InventDim до трех цифр (опятьже с помощью renamePrimaryKey()). Результат запрос без тримов выполняется 3 секунды.
Т.е. можно сделать вывод о том чем меньше размер ключа в InventDimId, тем шустрей работает JOIN по этому полю.
Старый 28.08.2007, 12:55   #8  
Владимир Максимов is offline
Владимир Максимов
Участник
КОРУС Консалтинг
 
1,691 / 1195 (43) ++++++++
Регистрация: 13.01.2004
Записей в блоге: 3
Тебе уже намекнули, посмотри план выполнения этого запроса собственно на сервере. В MS SQL. И не мучь животинку (AXAPTA) разными настройками пока не поймешь причину тормоза.

Если бы ты с этого начал, то мог бы заметить, что от размера поля скорость завист слабо. Она зависит от используемых индексов. Если работает TRIM(), то индекс использовать нельзя. Вынужденно сканируем таблицу. Отсюда и тормоз.
Старый 28.08.2007, 13:02   #9  
polygris is offline
polygris
Участник
AxAssist
MCBMSS
 
272 / 67 (3) ++++
Регистрация: 14.06.2005
Адрес: Киев
Цитата:
Если бы ты с этого начал, то мог бы заметить, что от размера поля скорость завист слабо. Она зависит от используемых индексов. Если работает TRIM(), то индекс использовать нельзя. Вынужденно сканируем таблицу. Отсюда и тормоз
План канечно же смотрел.
Тогда получается при моем размере таблици InventDim скан работает быстрее чем прыжок по индексу.
Старый 28.08.2007, 13:48   #10  
Владимир Максимов is offline
Владимир Максимов
Участник
КОРУС Консалтинг
 
1,691 / 1195 (43) ++++++++
Регистрация: 13.01.2004
Записей в блоге: 3
Откуда же я знаю какой именно у тебя план выполнения в разных ситуациях? Ты же об это скромно умалчиваешь Поэтому твои выводы, мягко говоря, не достоверные. Скорее всего, следствие каких-либо стечений обстоятельств.
Теги
ax3.0

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Копирование "русских" данных из ORACLE в SQL. Результат кракозябры. Anton Sk. DAX: Программирование 3 25.03.2008 10:32
Почему Аксапта может зависать при использовании русских букв в штрихкоде? Logger DAX: Программирование 4 24.01.2008 10:12
Dynamics AX: SQL Server, Heart of Dynamics AX Blog bot DAX Blogs 0 13.07.2007 18:00
В NT 4 ПРИ ПЕЧАТИ ДОКУМЕНТОВ крякозябы вместо русских букв?! Mironov DAX: Администрирование 6 11.11.2003 16:59
Вместо русских букв - знаки вопроса Adson DAX: Функционал 6 12.09.2003 16:54
Опции темы Поиск в этой теме
Поиск в этой теме:

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

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

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

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