Наши базы данных для разработки (Oracle 9i) используют ссылку удаленной базы данных на удаленную общую базу данных.
Это решение было принято несколько лет назад, когда было непрактично размещать некоторые схемы базы данных на компьютере разработчика - они были слишком большими.
У нас есть определенные схемы на машинах разработки, и мы заставляем удаленные схемы выглядеть локальными, используя ссылки на базы данных Oracle, вместе с некоторыми синонимами на машинах разработки.
Проблема, с которой я столкнулся, заключается в том, что я хотел бы протестировать кусок SQL, который объединяет таблицы в схемах по обе стороны от ссылки на базу данных.
например. (упрощенный кейс):
select a.col, b.col
from a, b
where a.b_id = b.id
- a находится в локальной базе данных
- b находится в базе данных удаления
- У меня есть синоним на DB локали, так что 'b' фактически указывает на b@remotedb.
Выполнение запроса в среде разработки занимает много времени из-за ссылки. Запросы работают нормально (я не думаю, что оптимизатор на основе затрат Oracle может очень хорошо справляться со ссылками на базы данных).
В прошлом мы не очень хорошо писали модульные тесты для этих типов запросов - возможно, из-за низкой производительности - поэтому я хотел бы начать создавать для них несколько тестов.
Есть ли у кого-нибудь стратегии написания модульного теста для такого запроса, чтобы избежать проблем с производительностью использования ссылки на базу данных?
Обычно я бы искал способы попытаться смоделировать удаленный сервис, но, поскольку все это в SQL-запросе, я не вижу возможности легко смоделировать удаленную базу данных.