Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / linked server. непонятное ограничение. / 8 сообщений из 8, страница 1 из 1
04.01.2018, 12:15
    #39579277
valv
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
linked server. непонятное ограничение.
Добрый день,
вопрос про линкед сервер.
линкед сервер создан на стандартных серверах ms sql server ver 2012/2014/2016, и подлючает базу данных на azure (MS Azure SQL database).
Код: sql
1.
exec sp_addlinkedserver @server = N'AZUREDWH', @srvproduct=N'', @provider=N'SQLNCLI', @datasrc=N'abcsqlsrv.database.windows.net', @catalog=N'dwh'

стандартные сервера должны записывать данные в базу данных на azure через линкед сервер, и это единственная возможность связать сервера.
select из линкед сервера работает приемлимо, но insert работает катастрофически медленно.
причем скорость разная на разных серверах, в зависимости от настороек безопасности и канала.
найден такой путь: вставляем строки небольшими порциями:
Код: sql
1.
2.
3.
4.
5.
while ...
begin
	insert into [AZUREDWH].dwh.stage.patient_diagnoses (a,b,c)
	select top 6 a, b, c from #tb where id > ...
end


на особо медленных серверах наблюдается примерно такая картина:
Код: sql
1.
2.
3.
4.
5.
insert ... select top 5 --работает 4-6 sec
insert ... select top 6 --работает 4-6 sec
insert ... select top 7 --работает 2-3 min (!)
insert ... select top 100 --работает 50 min (!!)
insert ... select top 200 --вылетает через час с ошибкой типа "SMux Provider: Physical connection is not usable [xFFFFFFFF]."

(на каждом сервере по разному, это пример)

между 6 и 7 строками очень существенная разница.
то есть существует какое-то ограничение, по-видимому по размеру передаваемого пакета, связанный именно с линкед сервером либо с azure.
(если вставлять строки через SSIS, на том же сервере все работает очень быстро, без проблем.)

вопрос: кто сталкивался, что это за ограничение такое? как оно называется, чтобы поискать в документации?
спасибо!
...
Рейтинг: 0 / 0
04.01.2018, 13:39
    #39579333
Andy_OLAP
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
linked server. непонятное ограничение.
valvстандартные сервера должны записывать данные в базу данных на azure через линкед сервер, и это единственная возможность связать сервера.
select из линкед сервера работает приемлимо, но insert работает катастрофически медленно.
причем скорость разная на разных серверах, в зависимости от настороек безопасности и канала.

Коллега, на тарифе P11 скорость журнала будет 43 Мбайт/сек. На всех прочих тарифах, например стандартных S, намного меньше.

Сама вставка в облако работает следующим образом. Инстанс в одном ЦОД получает строку, пишет ее в журнал, далее в режиме синхронного Always On пересылает эту строку за океан в другие ЦОД, там записывает в другие инстансы, и только после этого возвращает клиенту сигнал "готов к следующему insert".

Так что низкая скорость вставки в облако - это нормально. Не устраивает - переводите в более дорогой тариф и ждите от нескольких минут до суток, чтобы она выросла.
...
Рейтинг: 0 / 0
04.01.2018, 13:40
    #39579336
Andy_OLAP
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
linked server. непонятное ограничение.
valvвопрос: кто сталкивался, что это за ограничение такое? как оно называется, чтобы поискать в документации?
спасибо!
Еще в марте 2016 обсуждали тут на форуме.
...
Рейтинг: 0 / 0
04.01.2018, 13:52
    #39579341
valv
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
linked server. непонятное ограничение.
Andy_OLAP,

спасибо, в данном случае скорость не критична.
вопрос немного не об этом.
вопрос об оптимальном размере пакета.
пример, который я привел, показывает:
если передавать 200 строк порциями по 4 строки за раз, это займет (200/4)*5sec = 4 min.
если же передавать те же 200 строк порциями по 7 строк, (200/7)*2 min = 56 min.
мне необходимо понять, как рассчитать этот лимит, или что это такое; почему такая неимоверная разница.
...
Рейтинг: 0 / 0
04.01.2018, 14:01
    #39579344
Andy_OLAP
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
linked server. непонятное ограничение.
valvAndy_OLAP,

спасибо, в данном случае скорость не критична.
вопрос немного не об этом.
вопрос об оптимальном размере пакета.
пример, который я привел, показывает:
если передавать 200 строк порциями по 4 строки за раз, это займет (200/4)*5sec = 4 min.
если же передавать те же 200 строк порциями по 7 строк, (200/7)*2 min = 56 min.
мне необходимо понять, как рассчитать этот лимит, или что это такое; почему такая неимоверная разница.
Смотреть нужно в свой тариф и считать по IOPS. А у Вас тариф то вообще какой?

Ну и конечно создавать ВМ в том же регионе. Потому что другие регионы для репликации по факту.
Another thing you could to is create a VM in the same region as your SQL Database and run from there to remove the latency
...
Рейтинг: 0 / 0
04.01.2018, 14:03
    #39579346
Andy_OLAP
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
linked server. непонятное ограничение.
valv,

Вот тут в одном из комментариев есть нужные ссылки.
...
Рейтинг: 0 / 0
04.01.2018, 14:06
    #39579347
Andy_OLAP
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
linked server. непонятное ограничение.
valv,

И потом - может быть Вам стоит подумать про использование Azure Table storage , если нужно заливать кучу строк в таблицу?
...
Рейтинг: 0 / 0
04.01.2018, 15:29
    #39579385
valv
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
linked server. непонятное ограничение.
Andy_OLAPСмотреть нужно в свой тариф и считать по IOPS. А у Вас тариф то вообще какой?
тариф "S3". но даже если бы был "basic", предоставляемых DTU хватает вполне.
примерно 20 серверов пару раз в сутки скидывают 1000-1500 строк каждый.
если превратить result set в xml, его размер меньше мегабайта. это вообще ничто.

Andy_OLAPvalv,
Вот тут в одном из комментариев есть нужные ссылки.ага, спасибо.
похоже у topic starter'а та же проблема, что и у меня.
и ему также советуют то улучшить тариф, то разбить крупные вставки на более мелкие (что он изначально знает).
как расчитать размер пакета, и что за ограничение загадочное, вот в чём вопрос.
...
Рейтинг: 0 / 0
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / linked server. непонятное ограничение. / 8 сообщений из 8, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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