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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 19.08.2004, 13:38   #81  
mazzy is offline
mazzy
Участник
Аватар для mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Записей в блоге: 10
Цитата:
Изначально опубликовано Maxim Gorbunov
Я вовсе не против рекламы в этом топике. Просто мне кажется достаточно странным его наличие в форуме Проекты.
Максим, я понял твою аргументацию по поводу перемещения.
Готов согласиться с тем, что поступил мало подумав.

Сейчас предлагаю ничего не менять, оставить этот топик в проектах.
Впредь буду осторожнее.
Старый 19.08.2004, 19:17   #82  
Maxim Gorbunov is offline
Maxim Gorbunov
Administrator
Соотечественники
Лучший по профессии 2009
 
2,483 / 645 (26) +++++++
Регистрация: 27.11.2001
Адрес: Dubai, UAE
Цитата:
Изначально опубликовано Yaroslav Batozskiy
1. Условно согласен. В "перекрестном" случае это не всегда ОЛЦД. Как вариант, _можем_ выделить, например, для компаний разные диапазоны recId, например DAT-первый миллиард, холдинг--второй миллиард, и по одному на две аффилированные структуры
При этом в общей таблице при ее просмотре из холдинга будут битые ссылки, которые на самом деле ссылки на строки таблиц из компании DAT.
Цитата:
Изначально опубликовано Yaroslav Batozskiy
2. ????? Ни разу не видел ! Обновления производятся командой UPDATE (строка 139, AX3SP1), поэтому такой случай SQL просто пропустит, т.к. он при обновлении исключится фразой WHERE в коррелированном запросе. По моему, не может такого быть. Или я что-то проглядел ?
Да, тут я ошибся. Действительно пропустит.
Цитата:
Изначально опубликовано Yaroslav Batozskiy
3. Да. А поиск производился по каким модулям ? Я имел ввиду все модули, какая часть из них находится в наиболее часто используемых--не смотрел
Поиск проводился автоматически по всем таблицам.
Цитата:
Изначально опубликовано Yaroslav Batozskiy
Боюсь, что нет. В таблице LedgerTrans есть поле RTSLSessionTransId, которое ссылается на Recid таблицы RTSLSessionTrans--сессии трансляции--номер сессии, которая породлила проводку. В форме на этой табличке есть кнопка "Отменить"--откатывает трансляцию с удалением проводок.
После Exp-Imp или "Проверке..." в сессиях recid поменяется, а в проводках нет, поэтому сессию удалить можно будет только руками. Явный баг. Регистрирую в MBS.
На чем основано Ваше утверждение? Анализ приложения (стандартного Axapta 3.0 SP1 CIS) позволяет утверждать, что поле LedgerTrans.RTSLSessionTrans ссылается на поле RTSLSessionTrans.SessionTransId, а не на RTSLSessionTrans.RecId.
__________________
Not registered yet? Register here!
Have comments, questions, suggestions or anything else regarding our web site? Don't hesitate, send them to me
Старый 10.04.2006, 21:15   #83  
glibs is offline
glibs
Member
Сотрудники компании It Box
Most Valuable Professional
Лучший по профессии 2011
Лучший по профессии 2009
 
4,942 / 911 (40) +++++++
Регистрация: 10.06.2002
Адрес: I am from Kyiv, Ukraine. Now I am in Moscow. For private contacts: glibs@hotmail.com
На прошлых выходных развлекался попытками разогнать (в смысле, ускорить) стандартную процедуру на MS SQL (путем изнасилования кода процедуры). Заодно прочитал сначала данную ветку. Очень интересно.
Цитата:
Сообщение от Yaroslav Batozskiy
...
Наш скрипт написан целиком на T-SQL
...
А стандартная процедура пересчета RecId не далека от этого состояния.
Цитата:
Сообщение от Yaroslav Batozskiy
...
поэтому работает быстро (2 ГБ базы пересчитывается меньше, чем за полчаса на четырехпроцессорном XEON).
...
В моем случае на базе в 5 Gb с хвостиком (правда данных всего 2.5 Gb и столько же под индексами) удалось выйти на результат около 1:40. На однопроцессорном лаптопе (правда, база и лог были на внешнем диске: один, обычный IDEшный, подключенный по USB-интерфейсу). Память под MS SQL Server была ограничена до 300 Mb. Т.о. цифра далеко не предельная. В ходе опыта явно видно, что для дальнейшего ускорения процедуры нужно наращивать дисковую подсистему и/или память SQL Server.

Так что в плане скорости вышеупомянутый скрипт, IMHO, не является панацеей.
Цитата:
Сообщение от Yaroslav Batozskiy
...
Ув. glibs. Я просто дал совет. Хотите-разберитесь, хотите-проигнорируйте.
...
Поглядев на код и поэкспериментировав неприязнь к штатному алгоритму не разделяю. Скорее наоборот я бы отдал предпочтение стандартному алгоритму, нежели алгоритму, который не использует данные из АОТа и работает исключительно на базе эвристического анализа с элементами теории вероятности.

Хотя использовать его для обнаружения незадокументированных должным образом в АОТе связей по RecId можно попробовать. А много вышеупомянутый скрипт нашел таких связей (если вдруг Yaroslav Batozskiy не ответит на данный вопрос, может кто-то имел возможность скриптом попользоваться на законных основаниях и может прокомментировать)?
__________________
С уважением,
glibs®
Старый 15.04.2006, 23:28   #84  
glibs is offline
glibs
Member
Сотрудники компании It Box
Most Valuable Professional
Лучший по профессии 2011
Лучший по профессии 2009
 
4,942 / 911 (40) +++++++
Регистрация: 10.06.2002
Адрес: I am from Kyiv, Ukraine. Now I am in Moscow. For private contacts: glibs@hotmail.com
Цитата:
Сообщение от Maxim Gorbunov
Кстати, был в какой-то ветке вопрос (в какой, уже не помню), какие таблицы не переживут дефрагментацию RecId.

Исчерпывающего ответа не дам, но внесу первый вклад:
smmTransLog
Похоже, он же и последний. Если не считать tutorial_AuctionBids.

Проверял путем анализа названий полей (а иногда, например, TaxTrans.TaxRefId, и кода с данными), базовый тип которых Integer. Анализировал глазками.

Пока рисовал джоб, который помогал мне делать все вышеперечисленное, заметил несколько временных таблиц, которые страдают неспользованием типов, унаследованных от recId, для полей, в которых реально хранятся recId. Но я такие таблицы отбросил.

Т.о. дефрагментация recId очень даже рабочая. Но при попытках ее использовать на инсталляциях с кастомизированным приложением, имеет смысл проверить корректность собственоручно созданных табличек.
__________________
С уважением,
glibs®
Старый 25.07.2006, 09:17   #85  
velk is offline
velk
Участник
 
194 / 10 (1) +
Регистрация: 17.05.2004
Здравстуйте
помогите решить проблему
на данный момент поле nextVal в таблице SystemSequences равно -13
соответсвенно в базе работать невозможно ругается на дубрирование записи и не создает....
как решить проблему?
Старый 25.07.2006, 09:55   #86  
Recoilme is offline
Recoilme
злыдень
Аватар для Recoilme
Злыдни
 
895 / 192 (8) ++++++
Регистрация: 18.06.2003
Цитата:
Сообщение от velk
Здравстуйте
помогите решить проблему
на данный момент поле nextVal в таблице SystemSequences равно -13
соответсвенно в базе работать невозможно ругается на дубрирование записи и не создает....
как решить проблему?
Обычной перезагрузкой )) АОС перезапустить
__________________
Ибо зло есть лучшая сила человека. "Человек должен становиться все лучше и злее" -- так учу я. /Ф. Ницше/
Старый 25.07.2006, 10:03   #87  
velk is offline
velk
Участник
 
194 / 10 (1) +
Регистрация: 17.05.2004
Цитата:
Сообщение от Recoilme
Обычной перезагрузкой )) АОС перезапустить
Всмысле не понял как это????
А я думал что RecID кончились :-(((
Старый 25.07.2006, 10:06   #88  
Recoilme is offline
Recoilme
злыдень
Аватар для Recoilme
Злыдни
 
895 / 192 (8) ++++++
Регистрация: 18.06.2003
Рано радуетесь)) Вот как 400000 строк заказов в день научитесь разносить так и приходите за 64 битным рекид
Скорей всего у Вас просто псевдо сцылочностная целкостность нарушилась.
__________________
Ибо зло есть лучшая сила человека. "Человек должен становиться все лучше и злее" -- так учу я. /Ф. Ницше/
Старый 25.07.2006, 10:18   #89  
velk is offline
velk
Участник
 
194 / 10 (1) +
Регистрация: 17.05.2004
Мдааа сложно
может подскажете как ее решить...:-(
а то база стоит работать не возможно
и как найти свободный диапазон RECID чтоб сместить его?
Старый 25.07.2006, 10:23   #90  
Recoilme is offline
Recoilme
злыдень
Аватар для Recoilme
Злыдни
 
895 / 192 (8) ++++++
Регистрация: 18.06.2003
Цитата:
Сообщение от velk
Мдааа сложно
может подскажете как ее решить...:-(
а то база стоит работать не возможно
и как найти свободный диапазон RECID чтоб сместить его?
Старт/стоп AOS а не помог???
__________________
Ибо зло есть лучшая сила человека. "Человек должен становиться все лучше и злее" -- так учу я. /Ф. Ницше/
Старый 25.07.2006, 10:31   #91  
velk is offline
velk
Участник
 
194 / 10 (1) +
Регистрация: 17.05.2004
Цитата:
Сообщение от Recoilme
Старт/стоп AOS а не помог???
Нет конечно :-(
Старый 25.07.2006, 10:44   #92  
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:52   #93  
Recoilme is offline
Recoilme
злыдень
Аватар для Recoilme
Злыдни
 
895 / 192 (8) ++++++
Регистрация: 18.06.2003
Цитата:
Сообщение от velk
Здравстуйте
помогите решить проблему
на данный момент поле nextVal в таблице SystemSequences равно -13
соответсвенно в базе работать невозможно ругается на дубрирование записи и не создает....
как решить проблему?
-114 поставьте
__________________
Ибо зло есть лучшая сила человека. "Человек должен становиться все лучше и злее" -- так учу я. /Ф. Ницше/
Старый 25.07.2006, 10:58   #94  
Recoilme is offline
Recoilme
злыдень
Аватар для Recoilme
Злыдни
 
895 / 192 (8) ++++++
Регистрация: 18.06.2003
Потом выгрузите в текстовый файд список всех таблиц
(Встаньте на список таблиц а энтерпрайзменеджере и экспорт лист)

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

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

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

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

СОРРИ: сумбурно очень, но примерно так я бы делал ибо не знаю как список всех таблиц например запросом получить и т.п.
__________________
Ибо зло есть лучшая сила человека. "Человек должен становиться все лучше и злее" -- так учу я. /Ф. Ницше/
Старый 25.07.2006, 11:34   #95  
velk is offline
velk
Участник
 
194 / 10 (1) +
Регистрация: 17.05.2004
Цитата:
Сообщение от Recoilme
-114 поставьте
у нас увеличивается за раз на 250
Старый 25.07.2006, 12:10   #96  
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, 12:18   #97  
velk is offline
velk
Участник
 
194 / 10 (1) +
Регистрация: 17.05.2004
и сместили значение nextVal в обратную сторону
промежуток RecId взяли из LedgerTrans
вроде бы пошло
но проблема в том что в таблице LedgerTrans есть этот промежуток RecId
значит эти RecId где то были использованы...
и если будем делать дефрагментанцию то корректно либудет произведена она?
Старый 25.07.2006, 13:02   #98  
ziva is offline
ziva
Иван Захаров
Злыдни
Лучший по профессии AXAWARD 2013
 
65 / 106 (4) +++++
Регистрация: 25.03.2005
Цитата:
Сообщение от velk
... если будем делать дефрагментанцию то корректно либудет произведена она?
Для начала попытайтесь воспользоваться стандартным средством -
Администрирование\Периодические операции\SQL Администрирование\Проверка кодов записей. (Classes\SysRecIdRepair)
Он сам выстраивает в рамках компании все записи последовательно и перенумеровывает их.
Насколько результат работы данного средства будет положительным зависит от размера базы, мощности серверов и прочего.

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

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

В любом случае Вам нужен профессионал который через это "проходил" и данную проблему решал неоднократно.
Теги
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, время: 18:10.