powered by simpleCommunicator - 2.0.52     © 2025 Programmizd 02
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Скорость выполнения запроса через linked server
15 сообщений из 40, страница 2 из 2
Скорость выполнения запроса через linked server
    #40031071
Danion
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
invm,

Из плана на сервере, где через linked server запускаю. В основном ожидание OLEDB от использования связанного сервера.
...
Рейтинг: 0 / 0
Скорость выполнения запроса через linked server
    #40031080
invm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Danion
В основном ожидание OLEDB от использования связанного сервера.
Вот вам и ответ. Там полчаса с хвостиком набежало.
...
Рейтинг: 0 / 0
Скорость выполнения запроса через linked server
    #40031081
Фотография alexeyvg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Danion
Из плана на сервере, где через linked server запускаю. В основном ожидание OLEDB от использования связанного сервера.
Понятное дело, это ожидание, пока выполнится запрос на связанном сервере.
...
Рейтинг: 0 / 0
Скорость выполнения запроса через linked server
    #40031082
Фотография alexeyvg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
alexeyvg
Danion
Из плана на сервере, где через linked server запускаю. В основном ожидание OLEDB от использования связанного сервера.
Понятное дело, это ожидание, пока выполнится запрос на связанном сервере.
Включая ожидание закачивания результата.
...
Рейтинг: 0 / 0
Скорость выполнения запроса через linked server
    #40031119
Danion
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
На сервере источнике во время выполнения сессия то ждёт CXPACKET, то ASYNC_NETWORK_IO. Но там и при запуске через SSMS напрямую к инстансу эти же типы ожидания, но время выполнения в 10 раз меньше.

"Вот вам и ответ. Там полчаса с хвостиком набежало" Так вопрос то и был, почему такая разница при одинаковых планах выполнения на источнике. Что большую часть ожиданий через связанный сервер покажет OLEDB не удивило, так всегда вроде, если только селект.
...
Рейтинг: 0 / 0
Скорость выполнения запроса через linked server
    #40031126
invm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Danion,

А попробуйте вот так:
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
exec [linked-server].DB.sys.sp_executesql N'SELECT id, 
   direction_id, 
   order_number, 
   request, 
   response, 
  date_time, 
  status 
FROM dbo.Table  
WITH  
   ( 
      NOLOCK 
   )  
ORDER BY id ASC';
...
Рейтинг: 0 / 0
Скорость выполнения запроса через linked server
    #40031172
Danion
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
invm,

По плану там селект+удаленный просмотр(remote scan), на источнике данных план совпадает с прошлыми.
38 минут выполнялось, от обычного запроса через связанный сервер не отличается.
...
Рейтинг: 0 / 0
Скорость выполнения запроса через linked server
    #40031191
Фотография env
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Danion,

А сколько строк возвращает запрос?
...
Рейтинг: 0 / 0
Скорость выполнения запроса через linked server
    #40031194
Danion
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
env,

Около 1.1млн, последний раз было 1135242.
На следующей неделе попробуем обновить драйвер, который рекомендовали тут попробовать, может начнёт работать через него.
...
Рейтинг: 0 / 0
Скорость выполнения запроса через linked server
    #40031196
Фотография env
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Danion,

Т.е. событие возникает на каждые 100 строк.

Пальцем в небо, через openquery с добавлением set nocount on - такая же картина?
...
Рейтинг: 0 / 0
Скорость выполнения запроса через linked server
    #40031397
Фотография vikkiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Только что у себя по быстрому проверил на всякий случай - получается 3~4 разных драйвера
вполне приемлемо работают (больше вместе с подверсиями и разными способами).

так что вполне есть из чего выбирать, можно перебрать с различными настройками.

даже с разных машин и сетей попробовать (ближе/дальше к источнику),
или принудить его по TCP самому на себя линкованный сервер сделать проверив как он запрос
на себе-же исполняет по линкованному серверу (или по openrowset указав connection string)
может у вас с сетью проблемы (лаговый route, перегружена, или качество такое что теряет пакеты)

но я-бы выборку урезал хотя-бы до пары минут, по пол часа+ ждать чисто для тестов - это жесть конечно..

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
declare @usr nvarchar(63)=N'MyLoginSQL',@pss nvarchar(128)=N'MySecretPass',@cat nvarchar(64)=N'AW17'
---- OLEDB/NCLI
EXEC master.dbo.sp_addlinkedserver @server = N'tcp:192.168.72.131,1433', @srvproduct=N'SQL Server'
EXEC master.dbo.sp_addlinkedserver @server = N'R-NCLI', @srvproduct=N'', @provider=N'SQLNCLI11', @datasrc=N'tcp:192.168.72.131,1433', @provstr=N'Provider=SQLNCLI11.1;Persist Security Info=False;Data Source=tcp:192.168.72.131,1433;Language=English;Connect Timeout=3;Workstation ID=MyTestPC;Application Intent=ReadOnly;Initial Catalog=AW17;Packet Size=8192', @catalog=@cat
EXEC master.dbo.sp_addlinkedserver @server = N'R-DRV', @srvproduct=N'', @provider=N'MSOLEDBSQL', @datasrc=N'tcp:192.168.72.131,1433', @provstr=N'Provider=MSOLEDBSQL.1;Persist Security Info=True;Data Source=tcp:192.168.72.131,1433;Language=English;Connect Timeout=3;Workstation ID=MyTestPC;Application Intent=ReadOnly;Initial Catalog=AW17;Packet Size=8192', @catalog=@cat
EXEC master.dbo.sp_addlinkedserver @server = N'R-MIX', @srvproduct=N'', @provider=N'SQLNCLI', @datasrc=N'tcp:192.168.72.131,1433', @provstr=N'Provider=SQLOLEDB.1;Persist Security Info=True;Data Source=tcp:192.168.72.131,1433;Language=English;Connect Timeout=3;Workstation ID=MyTestPC;Application Intent=ReadOnly;Initial Catalog=AW17;Packet Size=8192', @catalog=@cat
EXEC master.dbo.sp_addlinkedserver @server = N'R-PROV', @srvproduct=N'', @provider=N'SQLOLEDB', @datasrc=N'tcp:192.168.72.131,1433', @provstr=N'Provider=SQLOLEDB.1;Persist Security Info=True;Data Source=tcp:192.168.72.131,1433;Language=English;Connect Timeout=3;Workstation ID=MyTestPC;Application Intent=ReadOnly;Initial Catalog=AW17;Packet Size=8192', @catalog=@cat

EXEC master.dbo.sp_addlinkedsrvlogin @rmtsrvname=N'tcp:192.168.72.131,1433',@useself=N'False',@locallogin=NULL,@rmtuser=@usr,@rmtpassword=@pss
EXEC master.dbo.sp_addlinkedsrvlogin @rmtsrvname=N'R-NCLI',@useself=N'False',@locallogin=NULL,@rmtuser=@usr,@rmtpassword=@pss
EXEC master.dbo.sp_addlinkedsrvlogin @rmtsrvname=N'R-DRV',@useself=N'False',@locallogin=NULL,@rmtuser=@usr,@rmtpassword=@pss
EXEC master.dbo.sp_addlinkedsrvlogin @rmtsrvname=N'R-MIX',@useself=N'False',@locallogin=NULL,@rmtuser=@usr,@rmtpassword=@pss
EXEC master.dbo.sp_addlinkedsrvlogin @rmtsrvname=N'R-PROV',@useself=N'False',@locallogin=NULL,@rmtuser=@usr,@rmtpassword=@pss

---- ODBC (only x64, no x86/x32)
EXEC master.dbo.sp_addlinkedserver @server = N'ODBC64-17', @srvproduct=N'', @provider=N'MSDASQL', @datasrc=N'odbc64-17', @catalog=@cat
EXEC master.dbo.sp_addlinkedserver @server = N'ODBC64-SQL', @srvproduct=N'', @provider=N'MSDASQL', @datasrc=N'odbc64-sql', @catalog=@cat
EXEC master.dbo.sp_addlinkedserver @server = N'ODBC64-NCLI', @srvproduct=N'', @provider=N'MSDASQL', @datasrc=N'odbc64-ncli', @catalog=@cat
EXEC master.dbo.sp_addlinkedserver @server = N'ODBC64-NCLI-RDA', @srvproduct=N'', @provider=N'MSDASQL', @datasrc=N'odbc64-ncli-rda', @catalog=@cat

EXEC master.dbo.sp_addlinkedsrvlogin @rmtsrvname=N'ODBC64-17',@useself=N'False',@locallogin=NULL,@rmtuser=@usr,@rmtpassword=@pss
EXEC master.dbo.sp_addlinkedsrvlogin @rmtsrvname=N'ODBC64-SQL',@useself=N'False',@locallogin=NULL,@rmtuser=@usr,@rmtpassword=@pss
EXEC master.dbo.sp_addlinkedsrvlogin @rmtsrvname=N'ODBC64-NCLI',@useself=N'False',@locallogin=NULL,@rmtuser=@usr,@rmtpassword=@pss
EXEC master.dbo.sp_addlinkedsrvlogin @rmtsrvname=N'ODBC64-NCLI-RDA',@useself=N'False',@locallogin=NULL,@rmtuser=@usr,@rmtpassword=@pss

...
Рейтинг: 0 / 0
Скорость выполнения запроса через linked server
    #40031710
Danion
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
set nocount on не помог.
Создал по примеру MSOLEDBSQL тоже без изменений.
По тестировал связанный сервер к себе же. На выбранной таблице просто селект выполняется за 1 минуту 50 секунд, а через связанный сервер за 3 минуты 51 секунд.
Пока на другом сервере попробую посмотреть через связанный к себе же насколько это типичное поведение.
...
Рейтинг: 0 / 0
Скорость выполнения запроса через linked server
    #40031739
Danion
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
vikkiv,

А что с MSOLEDBSQL может быть не так? До 18.5 обновили.
Добавляю по примеру из сообщения R-DRV с MSOLEDBSQL поменяв данные под свои и при использовании ошибка:
Внепроцессное использование поставщика OLE DB "MSOLEDBSQL" с SQL Server не поддерживается.
Меняю часть скрипта для варианта R-PROV, это в двух местах: @provider=N'SQLOLEDB', @provstr=N'Provider=SQLOLEDB.1
и нормально работает.
...
Рейтинг: 0 / 0
Скорость выполнения запроса через linked server
    #40031767
Фотография vikkiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Danion,

"Provider options>>Allow Inprocess" ?
да и прочих вариантов debug на месте достаточно (чтобы разобраться что не так {встало}), можно даже создать кликами через интерфейс..

для этого тестовые виртуальные среды и существуют - чтобы сбросить к началу и попробовать другим путём

p.s. мой скрипт выше был сильно урезанный - т.е. чисто для проверки по быстрому
там ещё такие настройки обычно идут
Код: sql
1.
2.
3.
--exec master.dbo.xp_enum_oledb_providers
--exec master.dbo.sp_MSset_oledb_prop
exec master.dbo.sp_serveroption @server= ....
...
Рейтинг: 0 / 0
Скорость выполнения запроса через linked server
    #40031776
Danion
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
vikkiv,

Я его пока запустить хоть хотел. Allow Inprocess помогло изменить текст ошибки, удалил несколько пунктов из строки и заработало.
Только скорость такая же медленная.
...
Рейтинг: 0 / 0
15 сообщений из 40, страница 2 из 2
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Скорость выполнения запроса через linked server
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]