Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / IBM DB2, WebSphere, IMS, U2, etc Новый топик    Ответить
 Есть ли у кого-нибудь опыт связывания DB2 с MSSQL?  [new]
DB2
Guest
Господа, уже задавал этот вопрос в соседней ветке, но там он был не совсем по теме:
Есть ли у кого-нибудь опыт связывания DB2 с MSSQL?
linked servers по скорости связи с DB2 v7.2 меня сильно разочаровал.
Пытался законектится через фирменный майкрософтовский OLE DB Provider для DB2 (скачал свежий с сайта MS).
Для проверки на обоих серверах располагались одинаковые таблицы с идентичными индексами, содержащие около двух миллионов записей.
Запрос выборки в пару тысяч записей по индексированному текстовому полю (VARCHAR) отдельно и на MSSQL и на DB2 выполнялся за доли секунды.
А при запуске того же запроса с MSSQL через linked server на DB2, запрос выполнялся порядка 20 секунд :(
То ли MSSQL вообще не пользуется индексами DB2, то ли убого ими пользуется, то ли DB2 v7.2 тупит через OLE DB (то есть виновата сама связь), то ли еще чего...

Очень не хочется отказываться от идеи соединить их по-нормальному, иначе придется дублировать кучу таблиц на обеих серверах и выдумывать хитрый механизм репликации.
27 фев 06, 14:28    [2394710]     Ответить | Цитировать Сообщить модератору
 Re: Есть ли у кого-нибудь опыт связывания DB2 с MSSQL?  [new]
Ден
Member

Откуда: Москва
Сообщений: 2076
А как вы вызывали из MSSQL запрос к DB2? Можете привести текст запроса? У меня аналогичные проблемы были..
27 фев 06, 14:37    [2394756]     Ответить | Цитировать Сообщить модератору
 Re: Есть ли у кого-нибудь опыт связывания DB2 с MSSQL?  [new]
DB2
Guest
Ден
А как вы вызывали из MSSQL запрос к DB2? Можете привести текст запроса? У меня аналогичные проблемы были..
Да тестовые запросы были совсем простые. Ну что-то типа:
SELECT ... FROM DB2_T1 WHERE "имя_колонки" = '...' / LIKE '...%'
где DB2_T1 - синоним для таблицы DB2-сервера, подключенного через linked server (MSSQL2005)

Еще пару простых запросов, где возвращаемый с DB2 селект джойнился с данными из таблиц MSSQL.
Если бы только эти запросы с JOIN-ами тормозили, можно было бы подумать, что-то типа того, что у MSSQL нет объективных данных об индексах DB2 и статистики по этим индексам.
Но простые запросы к таблицам на DB2 то же тормозили.
Скорее всего тормоза где-то в связи. Может какие-то параметры для OLEDB виноваты/ответственны. Я пока ничего толкового в них не нашел. Может плохо искал, конечно.
27 фев 06, 14:57    [2394878]     Ответить | Цитировать Сообщить модератору
 Re: Есть ли у кого-нибудь опыт связывания DB2 с MSSQL?  [new]
1024
Member

Откуда: Нижний Новгород
Сообщений: 14267

чудес не бывает. Связанный запрос по таблицам из нескольких разных
серверов - это скачать на один из серверов данные с другого во временную
таблицу и сделать результирующую выборку.

20 с. это время за которое все данные перекачиваются с одного сервера на
другой


Posted via ActualForum NNTP Server 1.3

27 фев 06, 15:39    [2395169]     Ответить | Цитировать Сообщить модератору
 Re: Есть ли у кого-нибудь опыт связывания DB2 с MSSQL?  [new]
DB2
Guest
1024

чудес не бывает. Связанный запрос по таблицам из нескольких разных
серверов - это скачать на один из серверов данные с другого во временную
таблицу и сделать результирующую выборку.

20 с. это время за которое все данные перекачиваются с одного сервера на
другой
Ну да, вообщем-то, вы правы.
По идее, часть запроса отрабатывается на DB2, результирующая выборка действительно должна попадать в какую-нибудь временную таблицу.
Но разве <1000 результирующих записей и без BLOB полей это много? Тем более, что в тестовом варианте, сервера жили на одной машине.
Мне все же кажется, что затык где-то в настройках связи по OLE DB.
Ладно, будем искать...
27 фев 06, 16:05    [2395303]     Ответить | Цитировать Сообщить модератору
 Re: Есть ли у кого-нибудь опыт связывания DB2 с MSSQL?  [new]
ASCRUS
Member

Откуда: МО Электросталь
Сообщений: 5994
1024

чудес не бывает. Связанный запрос по таблицам из нескольких разных
серверов - это скачать на один из серверов данные с другого во временную
таблицу и сделать результирующую выборку.

20 с. это время за которое все данные перекачиваются с одного сервера на
другой


Posted via ActualForum NNTP Server 1.3

Обычно РСУБД умные и не будут тащить все данные на себя с чужого сервера. Оптимизатор разберет запрос, выщемит с него все таблицы, связи и условия, которые идут на чужой сервер, посмотрев что он умеет и пошлет на удаленный сервер свой, а не оригинальный запрос, с учетом максимального приближения к задаче заставить все что можно сделать удаленному серверу.
Потом останется доделать то, что не умеет удаленный сервер и дальше работать с полученными результатами. Таким образом запрос:
SELECT ... FROM DB2_T1 WHERE "имя_колонки" = '...' / LIKE '...%'
полностью должен отработать на DB2 и MSSQL получит только результат выполнения этого запроса, если конечно он умный сервер :)
27 фев 06, 16:13    [2395359]     Ответить | Цитировать Сообщить модератору
 Re: Есть ли у кого-нибудь опыт связывания DB2 с MSSQL?  [new]
1024
Member

Откуда: Нижний Новгород
Сообщений: 14267

Обычно РСУБД умные и не будут тащить все данные на себя с чужого сервера.
Оптимизатор разберет запрос, выщемит с него все таблицы, связи и условия,
которые идут на чужой сервер, посмотрев что он умеет и пошлет на удаленный
сервер свой, а не
-------



вообще-то я говорил о связных (джойнах т.е.).

select * from mssql.orders join db2.customers on ...

не может оптимизирваться



вероятно чтоб выяснить где тормозит надо сделать несколько запросов для
учёта погрешности, например десяток select top 1 * и десяток select top 1000
*

может он не на перекачке данных тормозит, может он при каждом запросе заново
соединяется и соединение эти 20 с и идёт


Posted via ActualForum NNTP Server 1.3

27 фев 06, 16:30    [2395433]     Ответить | Цитировать Сообщить модератору
 Re: Есть ли у кого-нибудь опыт связывания DB2 с MSSQL?  [new]
DB2
Guest
ASCRUS
полностью должен отработать на DB2 и MSSQL получит только результат выполнения этого запроса, если конечно он умный сервер :)
Естественно, он так и делает.
Если бы он тащил к себе всю таблицу в пару миллионов записей а потом еще и шарился по ней, это было бы не 10~20 секунд, а несколько минут.

автор
может он не на перекачке данных тормозит, может он при каждом запросе заново соединяется и соединение эти 20 с и идёт
Да нет, не похоже .
Надо будет попробывать еще через какой-нибудь IBM-овский OLE DB провайдер приконектится для полноты картины. Через тот который идет с 7.2 мне законектится пока не удалось, по не очень понятным причинам.
27 фев 06, 16:51    [2395591]     Ответить | Цитировать Сообщить модератору
Все форумы / IBM DB2, WebSphere, IMS, U2, etc Ответить