MSSQL join Oracle
От: maloi_alex СССР  
Дата: 14.10.13 17:59
Оценка:
Есть запрос к БД MSSQL для отчета, который должен возвращать данные как и с MSSQL так и из Oracle.

Нужно объединить две таблицы в разных БД по одному текстовому полю. Проблема в том, что в MSSQL может вернуться много записей, примерно 10 тыс, в Oracle таблице записей еще больше.

Можно ли как-то сделать такой джойн, что бы он был более быстрым? Или как-то без джойна. Главное скорость увеличить. И как обычно вообще такие такие отчеты строятся, когда данные берутся из нескольких разных БД и в больших количествах?
Re: MSSQL join Oracle
От: BlackEric http://black-eric.lj.ru
Дата: 14.10.13 20:16
Оценка: +1
Здравствуйте, maloi_alex, Вы писали:

_>Есть запрос к БД MSSQL для отчета, который должен возвращать данные как и с MSSQL так и из Oracle.


_>Нужно объединить две таблицы в разных БД по одному текстовому полю. Проблема в том, что в MSSQL может вернуться много записей, примерно 10 тыс, в Oracle таблице записей еще больше.


_>Можно ли как-то сделать такой джойн, что бы он был более быстрым? Или как-то без джойна. Главное скорость увеличить. И как обычно вообще такие такие отчеты строятся, когда данные берутся из нескольких разных БД и в больших количествах?


1. Индексы
2. Зачем вам столько записей в отчете? Возможно можно уменьшить выборку?
https://github.com/BlackEric001
Re: MSSQL join Oracle
От: wildwind Россия  
Дата: 14.10.13 22:41
Оценка: +2
Здравствуйте, maloi_alex, Вы писали:

_>Можно ли как-то сделать такой джойн, что бы он был более быстрым?


Можно. Для этого все необходимые данные должны быть в одной базе. При запросе из двух баз так и происходит: сначала данные вытягиваются из удаленнолй базы во временную таблицу, а затем уже выполняется соединение.

_>как обычно вообще такие такие отчеты строятся, когда данные берутся из нескольких разных БД и в больших количествах?


Данные заранее сводятся в одну базу (возможно с предварительной агрегацией) и обновляются по необходимости. Это может быть одна из исходных баз либо третья, специально для отчетов.
Re: MSSQL join Oracle
От: LuciferArh Россия  
Дата: 15.10.13 06:32
Оценка: +1
Здравствуйте, maloi_alex, Вы писали:

m> Можно ли как-то сделать такой джойн, что бы он был более быстрым? Или как-то без джойна. Главное скорость увеличить. И как обычно вообще такие такие отчеты строятся, когда данные берутся из нескольких разных БД и в больших количествах?


Я бы сделал линк на сервер MS SQL, а в Oracle — MATERIALIZED VIEW. Ну и индексы соответствующие.
avalon/1.0.433
Re[2]: MSSQL join Oracle
От: maloi_alex СССР  
Дата: 16.10.13 21:23
Оценка:
Здравствуйте, BlackEric, Вы писали:

BE>Здравствуйте, maloi_alex, Вы писали:


BE>1. Индексы

BE>2. Зачем вам столько записей в отчете? Возможно можно уменьшить выборку?

Так и сделал. Спасибо за подсказку.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.