Есть запрос к БД MSSQL для отчета, который должен возвращать данные как и с MSSQL так и из Oracle.
Нужно объединить две таблицы в разных БД по одному текстовому полю. Проблема в том, что в MSSQL может вернуться много записей, примерно 10 тыс, в Oracle таблице записей еще больше.
Можно ли как-то сделать такой джойн, что бы он был более быстрым? Или как-то без джойна. Главное скорость увеличить. И как обычно вообще такие такие отчеты строятся, когда данные берутся из нескольких разных БД и в больших количествах?
Здравствуйте, maloi_alex, Вы писали:
_>Есть запрос к БД MSSQL для отчета, который должен возвращать данные как и с MSSQL так и из Oracle.
_>Нужно объединить две таблицы в разных БД по одному текстовому полю. Проблема в том, что в MSSQL может вернуться много записей, примерно 10 тыс, в Oracle таблице записей еще больше.
_>Можно ли как-то сделать такой джойн, что бы он был более быстрым? Или как-то без джойна. Главное скорость увеличить. И как обычно вообще такие такие отчеты строятся, когда данные берутся из нескольких разных БД и в больших количествах?
1. Индексы
2. Зачем вам столько записей в отчете? Возможно можно уменьшить выборку?
Здравствуйте, maloi_alex, Вы писали:
_>Можно ли как-то сделать такой джойн, что бы он был более быстрым?
Можно. Для этого все необходимые данные должны быть в одной базе. При запросе из двух баз так и происходит: сначала данные вытягиваются из удаленнолй базы во временную таблицу, а затем уже выполняется соединение.
_>как обычно вообще такие такие отчеты строятся, когда данные берутся из нескольких разных БД и в больших количествах?
Данные заранее сводятся в одну базу (возможно с предварительной агрегацией) и обновляются по необходимости. Это может быть одна из исходных баз либо третья, специально для отчетов.
Здравствуйте, maloi_alex, Вы писали:
m> Можно ли как-то сделать такой джойн, что бы он был более быстрым? Или как-то без джойна. Главное скорость увеличить. И как обычно вообще такие такие отчеты строятся, когда данные берутся из нескольких разных БД и в больших количествах?
Я бы сделал линк на сервер MS SQL, а в Oracle — MATERIALIZED VIEW. Ну и индексы соответствующие.
Здравствуйте, BlackEric, Вы писали:
BE>Здравствуйте, maloi_alex, Вы писали:
BE>1. Индексы BE>2. Зачем вам столько записей в отчете? Возможно можно уменьшить выборку?