При получении объектов в нашем приложении Documentum это занимает много времени.Мы активировали опцию длительных запросов в источнике данных och, но обнаружили, что приведенный ниже запрос занимает слишком много времени:
select all
b.r_object_id, dm_repeating1_0.state_name, a.object_name
from
dm_policy_sp a,
dm_sysobject_sp b,
dm_policy_rp dm_repeating1_0
where
(
(a.r_object_id=b.r_policy_id)
and (dm_repeating1_0.i_state_no=b.r_current_state)
and b.r_object_id in (N'a long, long list of IDs')
or a.r_object_id in (N'a long, long list of IDs')
)
and /* ... */
Как видите, таблица "a" является таблицей политики, и онаимеет только 7 записей.В операторе SQL после операторов «или» мы ищем object_id
между 100 объектами в таблице «а»!Мы выполнили запрос и искали эти объекты в таблице "b" (systemObjects
) и обнаружили, что эти объекты принадлежат таблице b!
Приведенный выше запрос занимает около 17 минут.Когда мы изменили имя таблицы после оператора «или» в таблице на b, это заняло всего 10 секунд!
Мы предполагаем, что этот запрос неверен.Мы не знаем, является ли это ошибкой в Documentum или мы неправильно настроили Documentum.Мы не знаем, где мы можем найти DQL, который создает этот SQL или связанные компоненты?Любая идея?