04.11.2005, 11:59 | #1 |
Участник
|
Регенерация RecID
Добрый день.
Мы столкнулись с очень серьезной проблемой. А именно с необходимостью регенерировать RecID в одной из компаний нашего клиента. Axapta 3.0 SP2 работает чуть более полутора лет. БД на MS SQL около 70GB. Проблема в том, что для этого у нас есть окно в 24 часа. Клиент работает 24 часа 7 дней в неделю и согласен остановить бизнес только на 1 сутки! В тестовой базе регенерация станадтнымы средствами Аксапты заняла около 40 часов. Причем 90% этого времени занимает регенерация 7 самых крупных таблиц. Есть ли у кого-нибудь опыт оптимизации этого процесса? Мои личные испытания привели к улучшению на 20%, что все равно недостаточно. Я добился этого путем изменения индекса на переходной таблице AXOLDTONEWRECIDS. В оригинале было CREATE INDEX AXOLDTONEWRECIDSIDX ON AXOLDTONEWRECIDS (OLDRECID) изменил на CREATE INDEX AXOLDTONEWRECIDSIDX ON AXOLDTONEWRECIDS (OLDRECID,NEWRECID) Это позволило уменьшить количество операций чтения по этой таблице, т.к. SQL получает всю информацию из индекса и нет необходимости читать саму таблицу. Может у кого есть получше идеи, покоординальнее? В принципе, теоретически существует возможность регенерации RecID в онлайн режиме. Может кто-то уже делал это? Заранее благодарен за ответы. |
|
|
За это сообщение автора поблагодарили: glibs (5). |