Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Медленно выполняется запрос к линкед серверу  [new]
RAMZEZ II
Member

Откуда: Приморье
Сообщений: 535
Ребята, всем привет!
Случился такой казус: есть запрос, который выполняется с SQL сервера 2008R2 на БД Оракл.
Так вот как только создали линкед время выполнения запроса было одно, приемлемое, но прошло 5 дней (запрос выполняется периодически в течение суток) и запрос стал отрабатывать значительно медленнее. В какую сторону смотреть?
оракловый клиент 11.2g, может ли быть проблема в нем?
23 ноя 17, 11:02    [20977281]     Ответить | Цитировать Сообщить модератору
 Re: Медленно выполняется запрос к линкед серверу  [new]
Владислав Колосов
Member

Откуда:
Сообщений: 7401
RAMZEZ II,

сомореть во все стороны - загрузка серверов, транспорт данных, оптимизация запросов и так далее.
24 ноя 17, 14:09    [20981002]     Ответить | Цитировать Сообщить модератору
 Re: Медленно выполняется запрос к линкед серверу  [new]
Andy_OLAP
Member

Откуда: я знаю, что Хапоэль Беэр-Шева - чемпион
Сообщений: 3151
RAMZEZ II
Ребята, всем привет!
Случился такой казус: есть запрос, который выполняется с SQL сервера 2008R2 на БД Оракл.
Так вот как только создали линкед время выполнения запроса было одно, приемлемое, но прошло 5 дней (запрос выполняется периодически в течение суток) и запрос стал отрабатывать значительно медленнее. В какую сторону смотреть?
оракловый клиент 11.2g, может ли быть проблема в нем?

Есть 4 варианта запросов через linked server.
Вариант первый, медленный - вытягиваем все строки и далее фильтруем.
select c1,c2 from [linked_server].[oracle_table] where [c3]='текст_для_отбора'

Вариант второй, быстрый - фильтруем и вытягиваем нужные строки.
select c1,c2 from openquery([linked_server],'select "c1","c2" from "oracle_table" where "c3"=''текст_для_отбора'' ')

Вариант третий, очень медленный - вытягиваем все строки и соединяем с локальной таблицей.
select t1.c1,t1.c2,t2.c4
from [linked_server].[oracle_table] t1
inner join [локальная_таблица] t4 on t1.[c1] = t4.[c1]
where [c3]='текст_для_отбора'

Вариант четвертый, непонятный - вытягиваем нужные строки и соединяем с локальной таблицей.
select t1.c1,t1.c2,t2.c4 
from openquery([linked_server],'select "c1","c2" from "oracle_table" where "c3"=''текст_для_отбора'' ') t1
inner join [локальная_таблица] t4 on t1.[c1] = t4.[c1]


У Вас какой вариант?
24 ноя 17, 14:16    [20981029]     Ответить | Цитировать Сообщить модератору
 Re: Медленно выполняется запрос к линкед серверу  [new]
Andy_OLAP
Member

Откуда: я знаю, что Хапоэль Беэр-Шева - чемпион
Сообщений: 3151
Andy_OLAP,

В третьем и четвертом - алиас t2 для второй таблицы, а не t4, разумеется.
24 ноя 17, 14:17    [20981033]     Ответить | Цитировать Сообщить модератору
 Re: Медленно выполняется запрос к линкед серверу  [new]
Руслан Дамирович
Member

Откуда: Резиновая нерезиновая
Сообщений: 940
Я бы для начала убедился, что дело не в самом запросе на БД Oracle.
А то может он, как в анекдоте, летал, потому что ему подтяжки дверью прищемило.
24 ноя 17, 18:40    [20981925]     Ответить | Цитировать Сообщить модератору
 Re: Медленно выполняется запрос к линкед серверу  [new]
Andy_OLAP
Member

Откуда: я знаю, что Хапоэль Беэр-Шева - чемпион
Сообщений: 3151
Руслан Дамирович,
+

Включив режим мощной телепатии, могу как эксперт сказать - Вы правы, дело именно в самом запросе. Коллега до сих пор использует lateral вместо cross apply :)
24 ноя 17, 19:08    [20981993]     Ответить | Цитировать Сообщить модератору
 Re: Медленно выполняется запрос к линкед серверу  [new]
Andy_OLAP
Member

Откуда: я знаю, что Хапоэль Беэр-Шева - чемпион
Сообщений: 3151
RAMZEZ II
Ребята, всем привет!
Случился такой казус: есть запрос, который выполняется с SQL сервера 2008R2 на БД Оракл.
Так вот как только создали линкед время выполнения запроса было одно, приемлемое, но прошло 5 дней (запрос выполняется периодически в течение суток) и запрос стал отрабатывать значительно медленнее. В какую сторону смотреть?
оракловый клиент 11.2g, может ли быть проблема в нем?

Вы в самом Oracle прогоняли запросы, которые от MSSQL прилетают?
Попробуйте их переделать. Хорошая статья, хоть в ней про 12, а у Вас 11.2
24 ноя 17, 19:10    [20981998]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить