|
Multiple Database Query sql server
|
|||
---|---|---|---|
#18+
Добрый день! Ситуация следующая: Есть 30 серваков с sql server все они разбросаны по разным районам неважно какой области. Структура баз одинаковая везде. И отдельный сервак с репорСервером и sql server Часто для отчетов нужно пробежать по всем базам и собрать к примеру оплаты. Насоздавал линков на каждую из 30ти баз и в цикле с основного сервера динамическим запросом собираю данные. Запара в том что запрос по сбору данных я пишу на одном из этих 30 баз. Позже пишу скрипт по отработке по всем, и это занимает время, т.к. нужно статический запрос экранировать(правильно причем) и превратить в динамику. Этот метод бесит, т.к иногда нужно быстро для себя что-то посчитать по всем базам. Может есть способы попроще это делать, что то типа статический запрос, но пробегает по всем базам??? ... |
|||
:
Нравится:
Не нравится:
|
|||
26.03.2020, 12:09 |
|
Multiple Database Query sql server
|
|||
---|---|---|---|
#18+
belik_lch Может есть способы попроще это делать, что то типа статический запрос, но пробегает по всем базам??? ... |
|||
:
Нравится:
Не нравится:
|
|||
26.03.2020, 12:52 |
|
Multiple Database Query sql server
|
|||
---|---|---|---|
#18+
belik_lch, задача решается средствами SSIS. Создайте таблицу с адресами сервером, потом контейнером цикла проходите по таблице, подменяете строку подключения в коннекторе и забираете с каждого сервера. Изучайте Integration Services. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.03.2020, 13:07 |
|
Multiple Database Query sql server
|
|||
---|---|---|---|
#18+
alexeyvg, читал об этих возможностях SSMS, и это решает мою проблему, даже так как я хочу. Но на сколько я понял, это доступно только в SSMS т.к. это фича самого приложения. Я использую Azure Data Studio, и там тоже есть возможность группировать сервера, но без возможности выполнения запросов по самой группе. Если бы такие вещи можно было бы творить скриптом, к примеру: "USE [servGroup] select...", то было бы прекрасно. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.03.2020, 14:44 |
|
Multiple Database Query sql server
|
|||
---|---|---|---|
#18+
Владислав Колосов, спасибо за ответ. Узнал немного нового, инструмент очень полезный, но скорее не решает моей проблемы т.к. мне не нужно перекачивать данные в одну базу. Данных очень много, и насколько я понял синхронизация данных происходит по расписанию. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.03.2020, 14:49 |
|
Multiple Database Query sql server
|
|||
---|---|---|---|
#18+
Держу вариант в голове, но не знаю насколько он адекватный: Создать вьюху vPay со след. содержимым select col1, col2... from server1.database.dbo.Pay UNION ALL select col1, col2... from server2.database.dbo.Pay UNION ALL ... select col1, col2... from server30.database.dbo.Pay И с нее уже под определенными условиями тянуть данные Насколько это тормознутая вещь выйдет, не знаю, может вы подскажете? ... |
|||
:
Нравится:
Не нравится:
|
|||
26.03.2020, 14:55 |
|
Multiple Database Query sql server
|
|||
---|---|---|---|
#18+
belik_lch, Там, откуда выполняете все эти запросы, заведите таблицу Код: sql 1.
Тогда выполнить один запрос на всех источниках можно так Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19.
... |
|||
:
Нравится:
Не нравится:
|
|||
26.03.2020, 15:03 |
|
Multiple Database Query sql server
|
|||
---|---|---|---|
#18+
belik_lch, если это не регулярно, чаще всего "прямщас" и всегда что-то разное, то: Execute Statements Against Multiple Servers Simultaneously если регулярное, заставьте все сервера работать на Вас по команде с центра - СервисБрокер в помощь а от SSIS в этом случае я отказался, по-моему push всегда лучше чем pull. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.03.2020, 15:04 |
|
Multiple Database Query sql server
|
|||
---|---|---|---|
#18+
ShIgor, не всегда лучше, т.к. ресурсы принимающей стороны часто ограничены и она решает в какой момент какую загрузку выполнять. Часто выполняют комбинированный способ - данные передают по готовности в промежуточное хранилище, файловое, FTP или иное, а принимающая сторона обрабатывает это хранилище по своей готовности. Т.е. PUSH-PULL. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.03.2020, 15:08 |
|
Multiple Database Query sql server
|
|||
---|---|---|---|
#18+
belik_lch, данные для отчета собирайте не запросом "на лету", а подготовьте таблицу - витрину, которая будет источником отчета. Витрину можно заполнить средствами SSIS или какими будет удобно. Витрина может хранить исторические "срезы", что позволит немедленно формировать отчеты за нужную дату. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.03.2020, 15:10 |
|
Multiple Database Query sql server
|
|||
---|---|---|---|
#18+
Владислав Колосов, я не против, и если уж по микроскопом рассматривать, то и работу сервис-брокера можно подогнать под Ваше описание. клиент пушнул, а вот когда оно доставится и уж тем более обработается это уж как напишешь.. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.03.2020, 15:16 |
|
Multiple Database Query sql server
|
|||
---|---|---|---|
#18+
belik_lch alexeyvg, читал об этих возможностях SSMS, и это решает мою проблему, даже так как я хочу. Но на сколько я понял, это доступно только в SSMS т.к. это фича самого приложения. Я использую Azure Data Studio, и там тоже есть возможность группировать сервера, но без возможности выполнения запросов по самой группе. Если бы такие вещи можно было бы творить скриптом, к примеру: "USE [servGroup] select...", то было бы прекрасно. Я думал, у вас вопрос про возможности SSMS, но если нет, то либо программируйте сами (динамику, свой исполнитель запросов, вьюхи), либо ищите удобный инструмент работы с сиквелом, который умеет то, что вам нужно. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.03.2020, 15:48 |
|
Multiple Database Query sql server
|
|||
---|---|---|---|
#18+
belik_lch, делайте уж по-нормальному - консолидированное хранилище ... |
|||
:
Нравится:
Не нравится:
|
|||
26.03.2020, 15:58 |
|
Multiple Database Query sql server
|
|||
---|---|---|---|
#18+
Спасибо всем за ответы! Обязательно вернусь к еще к ним(когда будет время на изучение вышеописанных инструментов). А пока для себя решил проверять данные запросами по группе серверов SSMS. Для других случаев напишу приблуду которая будет принимать статику и выплевывать уже динамику. Временное решение я думаю не плохое. А дальше буду расширять обзор своих знаний ... |
|||
:
Нравится:
Не нравится:
|
|||
27.03.2020, 09:38 |
|
Multiple Database Query sql server
|
|||
---|---|---|---|
#18+
belik_lch, Такие решения прекрасно делаются либо группой серверов, PowerShell, SSIS-пакетом + ForEachLoop Есть все шаблоны под все решения и варианты, могу помочь во всем в реализации, если надо Пишите в личку P.S. - да, идеальный ответ на форуме, я знаю :) ... |
|||
:
Нравится:
Не нравится:
|
|||
27.03.2020, 13:29 |
|
Multiple Database Query sql server
|
|||
---|---|---|---|
#18+
belik_lch, Как вариант - использовать SSMS в SQLCMD mode. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.03.2020, 15:14 |
|
Multiple Database Query sql server
|
|||
---|---|---|---|
#18+
belik_lch Может есть способы попроще это делать, что то типа статический запрос, но пробегает по всем базам??? Ну... обучись пользоваться синонимами. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.03.2020, 15:27 |
|
|
start [/forum/topic.php?fid=46&msg=39941680&tid=1686287]: |
0ms |
get settings: |
7ms |
get forum list: |
16ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
54ms |
get topic data: |
12ms |
get forum data: |
2ms |
get page messages: |
49ms |
get tp. blocked users: |
1ms |
others: | 313ms |
total: | 462ms |
0 / 0 |