Гость
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / проблемы запросов соединяющих данные с разных серверов через Linked / 18 сообщений из 18, страница 1 из 1
17.01.2020, 10:39
    #39915245
a_voronin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
проблемы запросов соединяющих данные с разных серверов через Linked
Господа,
столкнулся такой ситуаций. У одной группы разработчиков, сложилась практика писать запросы соединяющие данные с разных ПРОДАКШН баз через LINKED сервера. Пример:
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
INSERT INTO [PRODSERVER1].[PRODDB1].[dbo].[TABLE1](
...
          )
SELECT DISTINCT ....
from [PRODSERVER1].[PRODDB1].[dbo].[TABLE2] ev with(nolock)
left join [PRODSERVER1].[PRODDB1].[dbo].[TABLE3] an with(nolock) on ...
left join [PRODSERVER1].[PRODDB1].[dbo].[TABLE4] ics with(nolock) on ....
left join [PRODSERVER1].[PRODDB1].[dbo].[TABLE5] sh on ....
left join [PRODSERVER1].[PRODDB1].[dbo].[TABLE6] ile with(nolock) on ...


delete from [PRODSERVER1].[PRODDB1].[dbo].[TABLE8] where [Дата]>=...
INSERT INTO [PRODSERVER1].[PRODDB1].[dbo].[TABLE8]
(...)
SELECT ....
FROM [PRODSERVER2].[PRODDB2].[dbo].[TABLE9] t1
left join [PRODSERVER3].[PRODDB3].[dbo].[TABLE7] t2
 on ....
where [Дата]>=...



Какие аргументы следуют привести а) начальству б) программистам, чтобы отучить их делать так?
...
Рейтинг: 0 / 0
17.01.2020, 10:43
    #39915250
TaPaK
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
проблемы запросов соединяющих данные с разных серверов через Linked
a_voronin,

не знаю таких проблем. И в примере как-то все один сервер-бд.

Точнее не понял вопрос. Подозреваю что была практика разнесения бд по серверам, пусть перейдут на синонимы :)
...
Рейтинг: 0 / 0
17.01.2020, 10:48
    #39915257
a_voronin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
проблемы запросов соединяющих данные с разных серверов через Linked
TaPaK
a_voronin,

не знаю таких проблем. И в примере как-то все один сервер-бд.

Точнее не понял вопрос. Подозреваю что была практика разнесения бд по серверам, пусть перейдут на синонимы :)


Я добавил второй пример и в первом пример, два сервера. Второй -- тот, на котором исполняется запрос, хоть он явно и не указан. Речь одет о смешении DWH - OLTP и массовым запросам на продакшн сервера.
...
Рейтинг: 0 / 0
17.01.2020, 11:09
    #39915287
TaPaK
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
проблемы запросов соединяющих данные с разных серверов через Linked
a_voronin,

ну так то
1. все ограничения на использование линкед
2. транзакции? dtc держать
3. всё улетает через odbc даже на локальном, это в общем в первом
4. Были какие-то проблемы с оптимизаторами и использованием статистик, хз что сейчас
...
Рейтинг: 0 / 0
17.01.2020, 11:44
    #39915324
Владислав Колосов
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
проблемы запросов соединяющих данные с разных серверов через Linked
a_voronin,

должны быть какие-то объективные причины, которые будут препятствовать им так делать, в самом грубом приближении - это рецензирование кода согласно установленным правилам. Либо они должны обосновать своё видение мира.
...
Рейтинг: 0 / 0
17.01.2020, 12:05
    #39915338
Гулин Федор
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
проблемы запросов соединяющих данные с разных серверов через Linked
a_voronin,
а в пользу чего ?
ну т.е что вы предлагаете вместо этого ?

SELECT * FROM OPENQUERY( [VSRV-SQL], '' )
ну т.е если надо реаьлно данные с нескольких серверов тащить данные
...
Рейтинг: 0 / 0
17.01.2020, 12:07
    #39915340
msLex
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
проблемы запросов соединяющих данные с разных серверов через Linked
Гулин Федор
a_voronin,
а в пользу чего ?
ну т.е что вы предлагаете вместо этого ?

SELECT * FROM OPENQUERY( [VSRV-SQL], '' )
ну т.е если надо реаьлно данные с нескольких серверов тащить данные


"джойнить в SSIS" (tm)
...
Рейтинг: 0 / 0
17.01.2020, 12:20
    #39915358
a_voronin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
проблемы запросов соединяющих данные с разных серверов через Linked
msLex
Гулин Федор
a_voronin,
а в пользу чего ?
ну т.е что вы предлагаете вместо этого ?

SELECT * FROM OPENQUERY( [VSRV-SQL], '' )
ну т.е если надо реаьлно данные с нескольких серверов тащить данные


"джойнить в SSIS" (tm)


Вопрос был о том, почему так нельзя.

А как надо:

1) Выгружать в ODS https://en.wikipedia.org/wiki/Operational_data_store
2) Джойнить в ODS
...
Рейтинг: 0 / 0
17.01.2020, 12:21
    #39915359
StarikNavy
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
проблемы запросов соединяющих данные с разных серверов через Linked
a_voronin,

программисты пусть посмотрят планы запросов
а начальство пусть посмотрит время выполнения
...
Рейтинг: 0 / 0
17.01.2020, 12:23
    #39915361
a_voronin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
проблемы запросов соединяющих данные с разных серверов через Linked
StarikNavy
a_voronin,

программисты пусть посмотрят планы запросов
а начальство пусть посмотрит время выполнения


С начальством так работать нельзя.

Давайте вернемся к изначальному вопросу:

Какие аргументы следуют привести а) начальству б) программистам, чтобы отучить их делать так?
...
Рейтинг: 0 / 0
17.01.2020, 12:24
    #39915363
msLex
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
проблемы запросов соединяющих данные с разных серверов через Linked
StarikNavy
a_voronin,

программисты пусть посмотрят планы запросов
а начальство пусть посмотрит время выполнения


Это не главное.

Если текущее решение справляется с поставленными задачами, то зачем искать другое ( с дополнительными денежными вложениями как в разработку так и железо)? В чем профит?
Вот с этой колокольни и смотрит на любое "рац.предложения" руководство.
...
Рейтинг: 0 / 0
17.01.2020, 12:25
    #39915365
msLex
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
проблемы запросов соединяющих данные с разных серверов через Linked
a_voronin
Какие аргументы следуют привести а) начальству

Начальству нужно показать реальные проблемы текущего решения. Если их нет, то все ваши телодвижения будут являться пустой тратой денег.
...
Рейтинг: 0 / 0
17.01.2020, 12:26
    #39915366
a_voronin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
проблемы запросов соединяющих данные с разных серверов через Linked
msLex
StarikNavy
a_voronin,

программисты пусть посмотрят планы запросов
а начальство пусть посмотрит время выполнения


Это не главное.

Если текущее решение справляется с поставленными задачами, то зачем искать другое ( с дополнительными денежными вложениями как в разработку так и железо)? В чем профит?
Вот с этой колокольни и смотрит на любое "рац.предложения" руководство.


Недавно был сбой, в результате которого колокольня пошатнулась и накренилась. Отсюда и мой вопрос.
...
Рейтинг: 0 / 0
17.01.2020, 12:28
    #39915367
msLex
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
проблемы запросов соединяющих данные с разных серверов через Linked
a_voronin
msLex
пропущено...


Это не главное.

Если текущее решение справляется с поставленными задачами, то зачем искать другое ( с дополнительными денежными вложениями как в разработку так и железо)? В чем профит?
Вот с этой колокольни и смотрит на любое "рац.предложения" руководство.


Недавно был сбой, в результате которого колокольня пошатнулась и накренилась. Отсюда и мой вопрос.

вот с этим сбоем, его причинами, и вариантами их устранения и нужно идти к начальству
...
Рейтинг: 0 / 0
17.01.2020, 12:31
    #39915368
Гулин Федор
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
проблемы запросов соединяющих данные с разных серверов через Linked
a_voronin
msLex
пропущено...


"джойнить в SSIS" (tm)


Вопрос был о том, почему так нельзя.

А как надо:

1) Выгружать в ODS https://en.wikipedia.org/wiki/Operational_data_store
2) Джойнить в ODS


я знаю что такеое ODS и даже кое где юзал
но имхо не всегда и везде это применимо
на тек. работе есть центр.офис+15 филиалов + лог. провайдер (с кучей серверов)
и линк. сервера используются от слова ВЕЗДЕ

я еще закачиваю инфу в кубы - вот там есть БД со всех филиалов (Фактически ODS)
но избавиться в OLTP от линк-серверов невозможно в принципе.
(там репликациии в 2 стороны )

т.е ваш вопрос это вопрос организации работы и данных
и вам надо показать (доказать) профит вашим боссам - без этого никак

а кстати информация в ODS уже есть - она обновляется корректно и регулярно и т.д
или это только Планы ?

PS Upd +1 ко сообщениям от MSLex
...
Рейтинг: 0 / 0
17.01.2020, 12:40
    #39915376
a_voronin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
проблемы запросов соединяющих данные с разных серверов через Linked
Гулин Федор
a_voronin
пропущено...


Вопрос был о том, почему так нельзя.

А как надо:

1) Выгружать в ODS https://en.wikipedia.org/wiki/Operational_data_store
2) Джойнить в ODS


я знаю что такеое ODS и даже кое где юзал
но имхо не всегда и везде это применимо
на тек. работе есть центр.офис+15 филиалов + лог. провайдер (с кучей серверов)
и линк. сервера используются от слова ВЕЗДЕ

я еще закачиваю инфу в кубы - вот там есть БД со всех филиалов (Фактически ODS)
но избавиться в OLTP от линк-серверов невозможно в принципе.
(там репликациии в 2 стороны )

т.е ваш вопрос это вопрос организации работы и данных


и вам надо показать (доказать) профит вашим боссам - без этого никак

а кстати информация в ODS уже есть - она обновляется корректно и регулярно и т.д
или это только Планы ?

PS Upd +1 ко сообщениям от MSLex


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

Есть ещё одна проблема -- это конфликты коллейшенов меж разными серверами.

Есть места где все сделано правильно, а есть где нет.
...
Рейтинг: 0 / 0
17.01.2020, 12:54
    #39915394
Exproment
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
проблемы запросов соединяющих данные с разных серверов через Linked
a_voronin, я бы пришел к начальству с аргументами:
1) скорость работы - она будет в сотни раз меньше чем при нормальном решении. Когда вырастет нагрузка, размера - DWH может просто положить OLTP в любой момент.
2) надежность - в случае выхода из стоя OLTP, падает DWH
3) стабильность - изменение схемы данных в OLTP вызовет моментальное падение всего процесса(хз что за процесс)
4) отсутсвие консистентности - возможны только грязные чтения из OLTP, которые могут легко портить данные в DWH и искать проблему можно очень долго
...
Рейтинг: 0 / 0
17.01.2020, 14:26
    #39915460
Владислав Колосов
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
проблемы запросов соединяющих данные с разных серверов через Linked
a_voronin,

вот к начальству и идите с фактами о возникновения риска дестабилизировать систему и с конкретными возникшими проблемами, на ликвидацию которых потребовалось N часов с простоем системы и прекращением обслуживания клиентов. Поднимите эту тему как аварию по причине несоблюдения рекомендаций.
...
Рейтинг: 0 / 0
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / проблемы запросов соединяющих данные с разных серверов через Linked / 18 сообщений из 18, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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