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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 08.08.2004, 12:07   #1  
mazzy is offline
mazzy
Administrator
Аватар для mazzy
Most Valuable Professional
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
28,813 / 3673 (180) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Как выполнять дефрагментирование RecID
Вопрос возник после реплики Yaroslav Batozskiy
http://www.axforum.info/forums/showt...0348#post40348

Цитата:
Например при дефрагментировании RecId я обнаружил, что есть поля со ссылками по Recid, тип которых не наследуется от RecId
Я, например, зарекся рыть в эту сторону после того как покопался в 2.5.
Именно из-за того, что есть поля, которые содержат ссылку на RecID, но не унаследованы от RecIdRef.

А кто как делает дефрагментацию RecID?
И надо ли делать эту дефрагментацию?

Yaroslav Batozskiy, очень хотелось бы услышать ваше мнение.
За это сообщение автора поблагодарили: alex55 (1).
Старый 25.07.2006, 09:17   #2  
velk is offline
velk
Участник
 
194 / 10 (1) +
Регистрация: 17.05.2004
Здравстуйте
помогите решить проблему
на данный момент поле nextVal в таблице SystemSequences равно -13
соответсвенно в базе работать невозможно ругается на дубрирование записи и не создает....
как решить проблему?
Старый 25.07.2006, 09:55   #3  
Recoilme is offline
Recoilme
злыдень
Аватар для Recoilme
Злыдни
 
895 / 191 (8) ++++++
Регистрация: 18.06.2003
Цитата:
Сообщение от velk
Здравстуйте
помогите решить проблему
на данный момент поле nextVal в таблице SystemSequences равно -13
соответсвенно в базе работать невозможно ругается на дубрирование записи и не создает....
как решить проблему?
Обычной перезагрузкой )) АОС перезапустить
__________________
Ибо зло есть лучшая сила человека. "Человек должен становиться все лучше и злее" -- так учу я. /Ф. Ницше/
Старый 25.07.2006, 10:03   #4  
velk is offline
velk
Участник
 
194 / 10 (1) +
Регистрация: 17.05.2004
Цитата:
Сообщение от Recoilme
Обычной перезагрузкой )) АОС перезапустить
Всмысле не понял как это????
А я думал что RecID кончились :-(((
Старый 25.07.2006, 10:52   #5  
Recoilme is offline
Recoilme
злыдень
Аватар для Recoilme
Злыдни
 
895 / 191 (8) ++++++
Регистрация: 18.06.2003
Цитата:
Сообщение от velk
Здравстуйте
помогите решить проблему
на данный момент поле nextVal в таблице SystemSequences равно -13
соответсвенно в базе работать невозможно ругается на дубрирование записи и не создает....
как решить проблему?
-114 поставьте
__________________
Ибо зло есть лучшая сила человека. "Человек должен становиться все лучше и злее" -- так учу я. /Ф. Ницше/
Старый 25.07.2006, 11:34   #6  
velk is offline
velk
Участник
 
194 / 10 (1) +
Регистрация: 17.05.2004
Цитата:
Сообщение от Recoilme
-114 поставьте
у нас увеличивается за раз на 250
Старый 25.07.2006, 12:10   #7  
velk is offline
velk
Участник
 
194 / 10 (1) +
Регистрация: 17.05.2004
PHP код:
systemSequence systemSequence = new systemSequence();
;
Info(Strfmt("?? - %1"systemSequence.getCacheSize())); 
Возвращает 250
сейчас установили 10
Старый 25.07.2006, 10:06   #8  
Recoilme is offline
Recoilme
злыдень
Аватар для Recoilme
Злыдни
 
895 / 191 (8) ++++++
Регистрация: 18.06.2003
Рано радуетесь)) Вот как 400000 строк заказов в день научитесь разносить так и приходите за 64 битным рекид
Скорей всего у Вас просто псевдо сцылочностная целкостность нарушилась.
__________________
Ибо зло есть лучшая сила человека. "Человек должен становиться все лучше и злее" -- так учу я. /Ф. Ницше/
Старый 25.07.2006, 10:18   #9  
velk is offline
velk
Участник
 
194 / 10 (1) +
Регистрация: 17.05.2004
Мдааа сложно
может подскажете как ее решить...:-(
а то база стоит работать не возможно
и как найти свободный диапазон RECID чтоб сместить его?
Старый 25.07.2006, 10:23   #10  
Recoilme is offline
Recoilme
злыдень
Аватар для Recoilme
Злыдни
 
895 / 191 (8) ++++++
Регистрация: 18.06.2003
Цитата:
Сообщение от velk
Мдааа сложно
может подскажете как ее решить...:-(
а то база стоит работать не возможно
и как найти свободный диапазон RECID чтоб сместить его?
Старт/стоп AOS а не помог???
__________________
Ибо зло есть лучшая сила человека. "Человек должен становиться все лучше и злее" -- так учу я. /Ф. Ницше/
Старый 25.07.2006, 10:31   #11  
velk is offline
velk
Участник
 
194 / 10 (1) +
Регистрация: 17.05.2004
Цитата:
Сообщение от Recoilme
Старт/стоп AOS а не помог???
Нет конечно :-(
Старый 25.07.2006, 10:44   #12  
ziva is offline
ziva
Иван Захаров
Злыдни
Лучший по профессии AXAWARD 2013
 
63 / 102 (4) +++++
Регистрация: 25.03.2005
Цитата:
Сообщение от velk
Мдааа сложно
может подскажете как ее решить...:-(
а то база стоит работать не возможно
и как найти свободный диапазон RECID чтоб сместить его?
Вот, процитирую себя:
http://axforum.info/forums/showthrea...992#post110992

По результатам телефонного митинга с John McBride (менеджер команды разработки) и Mathieu Kemenovic (глобальная служба поддержки) мне подтвердили что они ничего менять в 3.0 не будут (и даже не будут делать private hot-fix) и предоставлили набор SQL-скриптов, которые ищут большие "дырки" последовательности идентификаторов записей и используют их. Данные скрипты неавтоматические и необходимо выполнять ряд шаманских танцев с бубнами...
.
Старый 25.07.2006, 10:58   #13  
Recoilme is offline
Recoilme
злыдень
Аватар для Recoilme
Злыдни
 
895 / 191 (8) ++++++
Регистрация: 18.06.2003
Потом выгрузите в текстовый файд список всех таблиц
(Встаньте на список таблиц а энтерпрайзменеджере и экспорт лист)

на любом языге нопишите select min(recid) from "тут_ваша_таблица"

если с язаком сложно - откройте список таблиц в экселе , добавьте колонку про селект , СЦЕПИТЬ(а,б)

и выполните этот скрипт из кверианалайзера например ,

Выгрузите результаты запроса в ексель, например и посмотрите минимум, это и буде Ваш nextVal

СОРРИ: сумбурно очень, но примерно так я бы делал ибо не знаю как список всех таблиц например запросом получить и т.п.
__________________
Ибо зло есть лучшая сила человека. "Человек должен становиться все лучше и злее" -- так учу я. /Ф. Ницше/
Старый 25.07.2006, 12:18   #14  
velk is offline
velk
Участник
 
194 / 10 (1) +
Регистрация: 17.05.2004
и сместили значение nextVal в обратную сторону
промежуток RecId взяли из LedgerTrans
вроде бы пошло
но проблема в том что в таблице LedgerTrans есть этот промежуток RecId
значит эти RecId где то были использованы...
и если будем делать дефрагментанцию то корректно либудет произведена она?
Старый 25.07.2006, 13:02   #15  
ziva is offline
ziva
Иван Захаров
Злыдни
Лучший по профессии AXAWARD 2013
 
63 / 102 (4) +++++
Регистрация: 25.03.2005
Цитата:
Сообщение от velk
... если будем делать дефрагментанцию то корректно либудет произведена она?
Для начала попытайтесь воспользоваться стандартным средством -
Администрирование\Периодические операции\SQL Администрирование\Проверка кодов записей. (Classes\SysRecIdRepair)
Он сам выстраивает в рамках компании все записи последовательно и перенумеровывает их.
Насколько результат работы данного средства будет положительным зависит от размера базы, мощности серверов и прочего.

Предостережение:
Не стоит впадать в крайности и сразу запускать данную обработку в production environment - необходимо сделать копию "боевой" версии.
Кроме того, если Вы используете виртуальные компании - следует особо внимательно проверить результаты работы данного механизма - если у Вас таблицы, со связями по RecId сделаны "общими".
Старый 25.07.2006, 14:29   #16  
velk is offline
velk
Участник
 
194 / 10 (1) +
Регистрация: 17.05.2004
Виртуальных компаний нет....слава богу...
база архивируется каждый день
размер её 40Гб
сервер 2-х процессорный XEON
Старый 25.07.2006, 16:31   #17  
ziva is offline
ziva
Иван Захаров
Злыдни
Лучший по профессии AXAWARD 2013
 
63 / 102 (4) +++++
Регистрация: 25.03.2005
Цитата:
Сообщение от velk
Виртуальных компаний нет....слава богу...
база архивируется каждый день
размер её 40Гб
сервер 2-х процессорный XEON
Ее надо "видеть" и вот так удаленно посоветовать что-либо сложно. Надо смотреть в каких таблицах сколько записей, искать что могло привести к такому печальному исходу и т.д. ...
Есть несколько способов идентификации и лечения проблемы, но они скорее представляют собой "сакральные знания" (как любят говорить в одной цветочной компании - "конкурентные преимущества"), которые на форуме выкладывать смысла не имеет.
Вот, например, Yaroslav Batozskiy, будучи представителем данной цветочной компании, кратко описывал методы решения данной проблемы с намеком продажу всем желающим (см. выше).

А можно поинтересоваться, Вы сами внедряете (внутренний проект) или пользуетесь услугами консультантов? Если Вы работаете с внедренцем - адресуйте вопрос ему - ведущий разработчик должен решить проблему.

В любом случае Вам нужен профессионал который через это "проходил" и данную проблему решал неоднократно.
Старый 24.08.2006, 11:16   #18  
Kasper is offline
Kasper
Участник
 
31 / 19 (1) ++
Регистрация: 30.11.2005
Цитата:
Сообщение от ziva
Есть несколько способов идентификации и лечения проблемы, но они скорее представляют собой "сакральные знания" (как любят говорить в одной цветочной компании - "конкурентные преимущества"), которые на форуме выкладывать смысла не имеет.
Вот, например, Yaroslav Batozskiy, будучи представителем данной цветочной компании, кратко описывал методы решения данной проблемы с намеком продажу всем желающим (см. выше).
Hi !

Ziva, а почему эту известную компанию называют "цветочной" ?

Давно уже не в теме, но попробую вспомнить, чего я тогда наваял.
1. Берем связи по recid из словаря--формируем таблицу связей.
2. Запускаем анализатор БД. Он полчаса шуршит, и выдает такую же таблицу, как в п.1., но с дополнительной колонкой "Вероятность". Там, где вероятности меньше процентов 75 -- отбрасываем сразу. Осталось 5...10 строк. Смотрим данные. На тех клиентах, где я это делал -- по 2...3 связи из этих 10 предполагаемых -- это реальные связи и кастом код разработчика, которые они не отразили в типах полей и которые надо врукопашную добавить в таблицу, полученную в п.1. Остальные--случайные совпадения
3. Запускаем дефрагментатор.
Все.

А в чем вопрос-то ?
П. 1 и 3 реализуются тривиально на T-SQL, причем для первого, по моему, достаточно одного select'а. В смысле, алгоритм тривиальный, а клаву топтать надо будет долго.
П.2 имеет смысл, если кастом-кода много, приложение старое, и источники знаний уже покинули компанию. Если разработчики здесь--то недокументированные связи извлекаем из голов.
Старый 24.08.2006, 12:21   #19  
ziva is offline
ziva
Иван Захаров
Злыдни
Лучший по профессии AXAWARD 2013
 
63 / 102 (4) +++++
Регистрация: 25.03.2005
Цитата:
Сообщение от Kasper
Ziva, а почему эту известную компанию называют "цветочной" ?
Тык "клумба"-ж ...
Старый 01.08.2006, 08:21   #20  
velk is offline
velk
Участник
 
194 / 10 (1) +
Регистрация: 17.05.2004
а может кто посоветует как провести процедуру дефрагментации несколькими этапами?
у нас база уходит в down и уже дня три - четыре никакого эффекта
Теги
ax3.0, faq, recid, дефрагментирование recid

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
if (record) vs if (record.RecId) kashperuk DAX: Программирование 18 27.11.2008 18:53
поля, содержащие RecId somebody DAX: Программирование 15 16.05.2008 17:50
aEremenko: Дефрагментация RecID Blog bot DAX Blogs 2 06.03.2007 22:25
Два RecId у одной записи таблицы sparur DAX: Программирование 33 18.12.2006 15:56
Форма InventOnhandItem, Почему RecID у InventSum в этой форме всегда 0? Кирилл DAX: Программирование 2 25.05.2004 18:15
Опции темы Поиск в этой теме
Поиск в этой теме:

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

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

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

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 21:09.
Powered by vBulletin® v3.8.5. Перевод: zCarot
Контактная информация, Реклама.