|
15.05.2008, 13:00 | #1 |
MCITP
|
2 vc
ну да, где-то решение хорошее... жалко вот только в случае этого конкретного клиента не выполняется второе условие но зато уже знаю другого, кому это может пригодиться. спасибо!
__________________
Zhirenkov Vitaly |
|
15.05.2008, 17:12 | #2 |
Участник
|
Если грозит исчерпанием в будующем RecID можно воспользоваться следующим:
1) выделить наиболее прожорливые таблицы (обычно это какой-нибудь прожорливый протокол) в табличную коллекцию 2) колекцию в вируальную компанию 3) в виртуальную компанию включить вашу компанию (если компаний несколько, то создать для каждой по одной компании, или создавать для каждой таблицы... или выбирайте любую из допустимых комбинаций). Для виртуальной компании генерится свой собственный RecId Кстати, перекопав за долгие годы Аксапту вдоль и поперек, ни разу не встретил, чтобы RecId считалось где-то уникальным для всей системы (и сам такого никогда не писал, разумеется, и не давал так делать другим). Так что с этим проблем нет. Механизм с виртуальными компаниями и коллекциями прекрасно работал в 3-ке. В 4-ке это оказалось уже не нужным - переимеовал значения в dataareaId обратно и удалил настройки компаний и коллекций (чтоб не вспомниать года через два зачем это нужно). |
|
|
За это сообщение автора поблагодарили: mazzy (2), ZVV (1), Ace of Database (4), Kabardian (3). |
15.05.2008, 17:19 | #3 |
MCITP
|
Да, хорошее предложение - сам как-то не подумал про такой вариант...
__________________
Zhirenkov Vitaly |
|
15.05.2008, 17:26 | #4 |
MCITP
|
Владислав, а Вы не можете сказать, раз у Вас есть такой опят, как такое решение сказывается на производительности системы?
Если оно как-то сказывается? PS Например если "выкинуть" таким образом InventTrans.
__________________
Zhirenkov Vitaly Последний раз редактировалось ZVV; 15.05.2008 в 17:28. |
|
15.05.2008, 19:15 | #5 |
Участник
|
Опыт есть, но не InventTrans
Как я уже упоминал: был заказ протоколировать всякую хрень, и объем этого протоколирования угрожал за впрочем довольно долгое время, но все же "съесть" весь ресурс идентификаторов записей. Может если "выкинуть" подобное, то и для InventTrans хватит оставшихся двух миллиардов (это не считая отрицательных значений)? Падения производительности не заметил (да и к чему бы). Будет ли падение при обращении к InventTrans? Вряд ли. Аксапта ведь в SQL запрос с объединением передает не как a.dataareaId = 'my1' and a.dataareaId = b.dataareaId, а как a.dataareaId = 'my1' and b.dataareaId = 'my1' Нет, ну разумеется она там где-то внутри себя потратит время на "подстановку", но столь малой (надеюсь на это) величиной можно пренебречь |
|
16.05.2008, 07:57 | #6 |
MCITP
|
Кстати, если поискать, то можно найти что подобная тема обсуждалась уже пару лет назад:
Проблема производительности при использовании виртуальных компаний. Резюме: Пользуйтесь поиском, не изобретайте велики!
__________________
Zhirenkov Vitaly |
|
|
За это сообщение автора поблагодарили: mazzy (2). |
16.05.2008, 18:53 | #7 |
Участник
|
Ну вот "наобещал" и сегодня же (впервые) нарвался на место, где 3-ка предполагает уникальность RecId в пределах всей базы: таблица SpecTrans
Поле RefId было заменено в четверке на RefTableId и RefRecId Просто если пометить открытые проводки для сопоставления клиентские (CustTransOpen), то можно при наличии "своих" RecId в открытых проводках поставщика (VendTransOpen) доооолго размышлять, чего это она считает, что проводка еще где-то помечена. |
|