|
![]() |
#1 |
китайский стажер
|
Все таки меня напрягает вот какой момент. Есть 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; } }
__________________
Может быть выйдет, а может не-е-е-ет... Новая песня вместо штиблет.. |
|
![]() |
#2 |
Ищущий знания...
|
все как то очень странно... но чудес не бывает
![]() покажите запрос, который уходит в базу, по последнему примеру (выборке по LedgerTable). P.S. кстати, глобальную компиляцию пробовали?
__________________
"Страх перед возможностью ошибки не должен отвращать нас от поисков истины." (с) С Уважением, Елизаров Артем |
|
![]() |
#3 |
китайский стажер
|
Цитата:
А запрос, который делается в случае rename primary key, я даже ловить не буду. Думаю это куча запросов, на основе перебора всех reference к ledgertable.
__________________
Может быть выйдет, а может не-е-е-ет... Новая песня вместо штиблет.. |
|
![]() |
#4 |
Участник
|
Цитата:
если уж так хотите внутреннюю транзакцию, то заведите LedgerTrans2 и обновляйте его. Цитата:
В запросе не указан ни индекс, ни сортировка. Поэтому SQL может выбрать любой порядок, удобный для него. виртуальность компании не должна влиять. |
|
![]() |
#5 |
Administrator
|
Цитата:
Собственно - на всех справочниках в АХ обычно присутствует кластерный индекс, ибо Best Practice его ставить рекомендует на ключевое поле совместно с первичным индексом. А вот чего бы я посоветовал бы сделать - так это обратить внимание на фрагментацию таблиц без кластерного индекса. Реиндексация конечно свое дело сделала ... для таблиц, у которых уже есть кластерный индекс. А вот таблицы без кластерного индекса - могут быть сильно фрагментированы. Тут поможет команда PHP код:
НО! Тут надо смотреть. Если проблема на табличке без кластерного индекса - то тогда "это оно". Если нет, и проблема явно в дисках - то тут нужно думать в другом направлении. Если бы у Вас был бы Recovery Model=Full - то я бы обратил внимание на то, на какой диск пишется Shipping Log - ибо частые снимки базы не могут не напрягать диски.
__________________
Возможно сделать все. Вопрос времени |
|
Теги |
ax2009, upgrade, производительность, тормоза |
|
Опции темы | Поиск в этой теме |
Опции просмотра | |
|