А меняются шейпы в процессе указанной работы?
Если не меняются, может имеет смысл аттрибуты хранить где-то временно (не в слое), а потом просто в базу их переписывать.
Я, если требуется какое-то множество объектов просто указываю либо setDefinitionExpression на карте, либо делаю QueryFilter на слое и прохожусь по курсору, что надо-меняю.
Наверное смотря какого рода работа.