Очень интересный вопрос...
Т.к. наша база постоянно развивается, а модель данных эпизодически меняется - встает вопрос о групповом изменении/удалении/добавлении атрибутов (или их значений) для накопленных объектов
Сейчас эта задача решается через подборку. НО Вы-же сами представляете:
- отбор 100.000 объектов в подборку ~ 30 мин
- выделение 100.000 объектов в подборке ~1-2 часа
- групповая операция с атрибутами выбранных объектов ~10-20 часов
да и то при условии что внешняя среда работает устойчиво и ничего не отрубится после первых 5 часов работы, да и Лоция подогревает интерес тем что запустит свой счетчик процесса который после 700~1500 обработанных объектов - 'зависает' (правда не всегда) и что там происходит дальше - не известно никому (хотя в 98% случаев все обрабатывается до конца)
По идее в SQL это можно сделать в 1000 раз быстрее
Никто-не делал, что-то подобное
Нужно отобрать объекты по типу и прицепить к ним строковый атрибут созданный в Лоции и имеющий установленное для текущего объекта значение по умолчанию.
Дальше оно кончечно будет меняться обычным путем.
Если да- поделитесь запросом плиз
Как быстро присвоить атрибут со значением 100.000 объектам?
- Александр
- Активный участник
- Сообщения: 1652
- Зарегистрирован: 24 авг 2006, 08:06
- Используемое ПО: Lotsia PDM PLUS
- Откуда: 55.745578,37.665825
Как быстро присвоить атрибут со значением 100.000 объектам?
Софт - RicCRM<<LotsiaPDM(4.40)<<MsSQL(5/8)
Уровень администрирования - Альтернативный
- Старик Крупский
- Активный участник
- Сообщения: 803
- Зарегистрирован: 27 июл 2006, 22:17
- Откуда: Москва
- Anderyt
- Активный участник
- Сообщения: 777
- Зарегистрирован: 15 июл 2004, 13:15
- Используемое ПО: Lotsia PDM PLUS
- Откуда: Тюмень
- Контактная информация:
насчет прицепления атрибутов объектам и расширенного импорта ничего не скажу, но по поводу ИЗМНЕНИЯ атрибута - есть одна идея. у нас бывает такое, что где то под конец проектирования какого либо заказа вдруг кто то решает, что надо изменить ШИФР этого заказа... а объектов в базе с таким неправильным шифром - немало... не 100 000, конечно, но все же, через подборку - тоже невесело. и причем шифры сами по себе конечно уникальны. то есть НИ старого, НИ нового шифра у объектов, НЕ принадлежащих этому заказу, НЕТУ. и поэтому можно легко и быстро найти в таблице value_string (например) строку со старым шифром и изменить ее на новый шифр. и все
повторю, процедура пригодна только для ИЗМЕНЕНИЯ атрибута.
повторю, процедура пригодна только для ИЗМЕНЕНИЯ атрибута.
лучше день потерять, потом за пять минут долететь!
- Александр
- Активный участник
- Сообщения: 1652
- Зарегистрирован: 24 авг 2006, 08:06
- Используемое ПО: Lotsia PDM PLUS
- Откуда: 55.745578,37.665825
Крупский- вы как всегда правы Техподдержка сказала то же.
Я конечно посмотрел на SQL, но почему бы не попробовать и расширеный импорт.
Короче я уже в процессе - расширенный импорт по добавлению атрибута со значением всем объектам базы найденным по SQL запросу.
Первые впечатления - данные отобрались мгновенно все идет со скоростью 1000 объектов в 5 минут
Ждемс, но судя по всему не долго
Для сравнения в подборке 1 объект обрабатывался 3~5сек, а тут 5~10 объектов в сек. Вобщем круто!!!
Правда уже после 6000 объекта скорость снизилась до 5 объектов в сек, но как говориться уже поздно пить боржоми
Я конечно посмотрел на SQL, но почему бы не попробовать и расширеный импорт.
Короче я уже в процессе - расширенный импорт по добавлению атрибута со значением всем объектам базы найденным по SQL запросу.
Первые впечатления - данные отобрались мгновенно все идет со скоростью 1000 объектов в 5 минут
Ждемс, но судя по всему не долго
Для сравнения в подборке 1 объект обрабатывался 3~5сек, а тут 5~10 объектов в сек. Вобщем круто!!!
Правда уже после 6000 объекта скорость снизилась до 5 объектов в сек, но как говориться уже поздно пить боржоми
Софт - RicCRM<<LotsiaPDM(4.40)<<MsSQL(5/8)
Уровень администрирования - Альтернативный
- Старик Крупский
- Активный участник
- Сообщения: 803
- Зарегистрирован: 27 июл 2006, 22:17
- Откуда: Москва
Расширенный импорт, действительно крутая штучка. По себе знаю. А вот с замедлением импорта - это фича Майкрософта. Блин, на самом деле, если не измненяет память, то чуть ли не быстрее будет импортить 10 раз по 10 тысяч объектов или 20 раз по 5 тысяч, чем один раз 100 тысяч.
Спасибо Биллу
Спасибо Биллу
"Лучше меньше, да лучше" (C)
- Александр
- Активный участник
- Сообщения: 1652
- Зарегистрирован: 24 авг 2006, 08:06
- Используемое ПО: Lotsia PDM PLUS
- Откуда: 55.745578,37.665825
расширенный импорт опять помог
нужно было найти все объекты одного типа определить у кого из них отсутствует атрибут и оптом приписать этот атрибут с установленным значением к каждому обделенному объекту
Расширенный импорт на запросе
для 10474 объектов справился с этой задачей за 40 минут, а сколько бы это заняло времени через подборку - подумать страшно
нужно было найти все объекты одного типа определить у кого из них отсутствует атрибут и оптом приписать этот атрибут с установленным значением к каждому обделенному объекту
Расширенный импорт на запросе
Код: Выделить всё
SELECT *
FROM
(select OBJ_REF.id as m_id
from LSDBO.tree_link_view TREE_LNK,
LSDBO.object_reference_view OBJ_REF
where OBJ_REF.id = TREE_LNK.link_id
and OBJ_REF.type_id=2000000000002) as table_all
WHERE NOT EXISTS(
SELECT *
FROM
(select OBJ_REF.id as m_id
from LSDBO.tree_link_view TREE_LNK,
LSDBO.object_reference_view OBJ_REF,
LSDBO.attrib_value_view ATR_V,
LSDBO.Value_numeric_view V_NUM
where OBJ_REF.id = TREE_LNK.link_id
and OBJ_REF.type_id=2000000000002
AND ATR_V.Attrib_ID = 100000019000005
AND V_NUM.Attrib_ID = 100000019000005
and ATR_V.object_id = obj_ref.id
AND V_NUM.id = ATR_V.value_id ) as table_Atr
WHERE table_Atr.m_id=table_all.m_id)
Софт - RicCRM<<LotsiaPDM(4.40)<<MsSQL(5/8)
Уровень администрирования - Альтернативный