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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 08.08.2004, 12:07   #1  
mazzy is offline
mazzy
Участник
Аватар для mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Записей в блоге: 10
Как выполнять дефрагментирование 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 / 192 (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 / 192 (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 / 192 (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 / 192 (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
 
65 / 106 (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 / 192 (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
 
65 / 106 (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
 
65 / 106 (4) +++++
Регистрация: 25.03.2005
Цитата:
Сообщение от velk
Виртуальных компаний нет....слава богу...
база архивируется каждый день
размер её 40Гб
сервер 2-х процессорный XEON
Ее надо "видеть" и вот так удаленно посоветовать что-либо сложно. Надо смотреть в каких таблицах сколько записей, искать что могло привести к такому печальному исходу и т.д. ...
Есть несколько способов идентификации и лечения проблемы, но они скорее представляют собой "сакральные знания" (как любят говорить в одной цветочной компании - "конкурентные преимущества"), которые на форуме выкладывать смысла не имеет.
Вот, например, Yaroslav Batozskiy, будучи представителем данной цветочной компании, кратко описывал методы решения данной проблемы с намеком продажу всем желающим (см. выше).

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

В любом случае Вам нужен профессионал который через это "проходил" и данную проблему решал неоднократно.
Старый 24.08.2006, 11:16   #18  
Kasper is offline
Kasper
Участник
 
34 / 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
 
65 / 106 (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, время: 17:58.