SQL-Мониторинг в консоли PowerShell {Онлайн}

05.08.20

Администрирование - Мониторинг

Скрипт PowerShell, который поможет увидеть/наблюдать происходящее на серверах СУБД (для MSSQL).

Файлы

ВНИМАНИЕ: Файлы из Базы знаний - это исходный код разработки. Это примеры решения задач, шаблоны, заготовки, "строительные материалы" для учетной системы. Файлы ориентированы на специалистов 1С, которые могут разобраться в коде и оптимизировать программу для запуска в базе данных. Гарантии работоспособности нет. Возврата нет. Технической поддержки нет.

Наименование Скачано Купить файл
SQL-Монитор
.zip 21,11Kb
20 2 500 руб. Купить

Подписка PRO — скачивайте любые файлы со скидкой до 85% из Базы знаний

Оформите подписку на компанию для решения рабочих задач

Оформить подписку и скачать решение со скидкой

Вы можете заказать платную доработку или адаптацию этой разработки под вашу конфигурацию на «Бирже заказов».

  • 0% комиссии — оплата напрямую исполнителю;
  • Исполнители любого масштаба — от отдельных специалистов до команд под проект;
  • Прямой обмен контактами между заказчиком и исполнителем;
  • Безопасная сделка — при необходимости;
  • Рейтинги, кейсы и прозрачная система откликов.

Идея такая: Запускаешь и смотришь. ВСЁ! Смотришь своими глазами. Не глазами PRTG, ZABBIX и прочих систем, они тоже присутствуют и молодцы, но не о них сейчас... И хорошо, когда наблюдение ведешь на отдельном экране. И совсем идеально, когда на отдельном компе (с отдельным же экраном!). Можно так же выводить на общий монитор или телевизор в кабинетах групп поддержки, разработки, дежурных смен и т.д. И бывает что судорожно-срочно нужно ответить руководству "что там у нас происходит на серверах"? Да, на всех и сразу. Чтобы иметь мгновенное представление, пускай в первом приближении, обзавелся таким скриптом.

В скрипте присутствует интерактивное меню, помогающее выбрать параметры мониторинга. Есть параметры, которые задаются только аргументами командной строки:

 -Refresh <n>: Период запуска обновления, в секундах. Указывается в диапазоне от 3 до 600. Период обновления иначе. НО следует понимать, что опрос серверов выполняется последовательно, и в случае, когда вы собираетесь наблюдать за большим количеством инстанций, то реальный период обновления будет складываться из всех времён, затраченных на опрос этих инстанций. Например: наблюдаем 10 инстанций, и на опрос каждой тратится около 0,5 сек, тогда реальный период опроса будет ~8 секунд (при параметре -Refresh 3).   Совет: при большом количестве инстанций устанавливайте меньшие значения этого параметра. По умолчанию период равен 15 секундам.

SQL_Monitor.ps1 -Refresh 3

-Select: Включает режим выбора площадок. Эммм. У нас в организации несколько площадок. Разные назначения, платформы, масштабы, охваты и тд,.. Каждая площадка имеет свой шифр/код, и это обычно 3 символа. В каждой площадке есть Продуктив и "всё остальное", т.е. разработка и тестирование. У нас площадки: FHD (бухгалтерия), ENB (биллинг), NVD (торговля), LK (личный кабинет) и т.д.  По-хорошему, следовало бы разделить мониторинг по этому признаку "продуктив-или-тест", но пока без него. Нам и так хорошо). Итак, если данный параметр указан при запуске, то меню выбора площадки для мониторинга станет множественным. С ним можно одновременно выбрать более одной площадки. Без указания этого параметра - мониторим одну площадку или сразу все (в меню появляется пункт "ALL").

SQL_Monitor.ps1 -Select

Сразу после запуска скрипта появляются несколько меню (друг за другом):

вот как выглядит меню без параметра select:

а вот как с параметром select:

Далее следует выбрать продолжительность мониторинга в минутах, 4 варианта: "Бесконечно, 10, 30, 60"

Кстати, отдельный скрипт для таких менюшек я выкладывал, в данной публикации он обновлен и встроен в _CommonFunctions.min.ps1. В этом файле много чего собрано, пользуйтесь на здоровье ;-)

Конечно, все предлагаемые на выбор параметры прописаны в скрипте, в виде обыкновенных списков или массивов значений. Можете отредактировать своими преференциями! ;Ъ

Естественно, необходимо настроить под свой ландшафт переменные, они определены в коде.

$global:_txt_land    = ("FHD","ENB","NVD","RDS","LK","KC","IRK") - список площадок

$_arr_sql_instances - массив SQL-инстанций, 

где Первая колонка - это DNS-имя хоста и/или инстанса, (именно инстанса, т.е. можно указывать имя_хоста\имя_инстанса), но в большинстве случаев достаточно DNS имени СУБД хоста. Вторая колонка - это имя площадки, к которой принадлежит инстанс, заполняется значениями из $global:_txt_land. Или наоборот, значения в списке _txt_land должны коррелировать со значениями второй колонке массива инстансов, ну вы поняли. Третья колонка - это тип инстанса: продуктив или тест, пока не влияет ни на что - задел на будущее.

 

Ниже скриншот, на котором выполняется бесконечный мониторинг, площадки "ENB", с интервалом в 15 секунд.

в "шапке" 1 - выбранная площадка; 2 - когда запущен, когда будет остановлен, интервал обновления; 3- легенда, по которой осуществляется раскраска строк. Сортировка строк выполнена по полю продолжительность, по убыванию. 4 - список инстанций, с временами работы запроса по каждой. Имеет свою "раскраску" по времени ответа, попробуйте разгадать)

5 - Главное, ради чего запускается скрипт. Текущие запросы на СУБД в момент его опроса, то чем занят СКУЛЬ.

Колонки тут следующие:

Progress % - Процент (прогресс) выполнения запроса. MSSQL выдаёт такую информацию по некоторым командам (архивирование, восстановление, команды DBCC и т.д.), остальные остаются чёрными, у них процент всегда пустой.

[X] - пока не функционально, для будущих версий.

Instance - Имя инстанса. Кривая стрелочка означает, что инстанс тот же, просто помогает визуально разделить инстансы с похожими именами...

spID - идентификатор процесса выполняемого запроса.

Blckr - блокирующий spID, он мешает текущему запросу выполниться.

User - имя пользователя, выполняющего запрос.

DB name - база данных, в контексте которой выполняется запрос.

Command - команда, тип, статус. всё через "или".

Duration - длительность этого запроса. ЧЧ:ММ:СС.мс, после 24 часов - сбрасывается на ноль.

~Estimated end - ожидаемое (прогнозируемое) время завершения запроса. как и Progress %, заполняется не для всех запросов. хоть и очень полезное.

Query (trimmed) - несколько первых букв текста запроса/команды/батча/скрипта/...называйте_как_хотите...  и (trimmed) - говорит что запрос "подстрижен".

Имейте в виду, что все поля, содержащие строки чрезмерной длины будут подрезаны до определенных значений. это сделано чтобы такие строки не "сбивали строй" у таблицы. На скриншоте: вторая строка снизу, значение поля "User" подрезано и добавлен знак "~".

Скрипт поочередно выполняет опрос выбранных СУБД с помощью PS командлета "Invoke-SQLcmd", поэтому нужно убедиться в наличии "SqlServer" среди установленных модулей (команда "Get-Module"). В случае отсутствия, установить его можно с помощью команды "Install-Module -Name SqlServer".

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

Совет: в настройках окна PowerShell используйте точечный шрифт 5х12, иначе окно может не поместиться в монитор.

В архиве три файла, общие функции, скрипт для псевдографики, и сам запускающий мониторинг скрипт. Прошу!

Обоснованная критика приветствуется.

... всех С Наступающим 2020!

Обновление:

добавлен интерфейсный параметр запуска -lang, имеет два значения "en" (по-умолчанию) и "ru". 

Вступайте в нашу телеграмм-группу Инфостарт

мониторинг наблюдение процесс SQL MSSQL monitor

См. также

Работа с интерфейсом Анализ учета Мониторинг 1С:Предприятие 8 1С 8.3 1C:Бухгалтерия 1С:Бухгалтерия 3.0 1С:ERP Управление предприятием 2 1С:Управление холдингом 1С:Зарплата и Управление Персоналом 3.x 1С:Комплексная автоматизация 2.х 1С:Управление нашей фирмой 3.0 1С:Управление торговлей 11 Платные (руб)

Создайте свой функциональный интерфейс в любой конфигурации 1С с помощью расширения Infostart Dashboard. Настраивайте панели виджетов с метриками, индикаторами и показателями на начальном экране. Узнайте возможность внедрения подсистемы у себя в конфигурации с помощью бесплатной обработки "Анализ внедрения подсистемы 1С Infostart Dashboard"!

31720 руб.

27.03.2025    89948    69    44    

75

Инструменты администратора БД Корректировка данных Мониторинг Учет документов 1С 8.3 1С:Управление торговлей 10 1С:Розница 2 1С:ERP Управление предприятием 2 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Розница 3.0 Платные (руб)

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

6100 руб.

11.06.2026    718    2    0    

4

HighLoad оптимизация Мониторинг Системный администратор Программист 1С 8.3 Бесплатно (free)

Код не меняли год, а операция, которая раньше шла секунду, стала идти минуту. Виноват в таком обычно не код, а то, что данные перешли порог: у квадратичного алгоритма удвоение объёма стоит четырёхкратного роста работы, поэтому поломка не подкрадывается постепенно, а наступает сразу. В разборе - случай коллеги, где сервис деградировал месяц. Три объяснения закрыли замером, а развязку дал профиль на 16 642 снимках: 80,0 % процессорного времени в одной функции, которую при этом нельзя было чинить. Разогнали её 20 копий одного документа по 443 581 байту, наплодил их собственный экспортёр сервиса. Дальше - как отличить квадратичный рост от линейного двумя замерами, где такие места прячутся в коде 1С и что делать, если урезать боевую базу вдвое нельзя.

27.08.2026    780    nedomolkov.ivan    2    

0

DevOps и автоматизация разработки Мониторинг Тестирование QA Программист 1С:Предприятие 8 Бесплатно (free)

Платформа 1С давно вышла за рамки учетных систем. Сегодня это полноценная среда для создания сложных, высоконагруженных и распределенных приложений. А значит, и стек технологий современного разработчика кардинально изменился. Систематизируем весь инструментарий, который превращает 1С-программиста в инженера: от EDT и Git до автотестов на YAxUnit, контейнеризации приложений в Docker, мониторинга в Prometheus и организации шины данных на Kafka. Разберемся, зачем каждый инструмент нужен, как он вписывается в жизненный цикл разработки и с чего начать его внедрение.

25.08.2026    18873    mrXoxot    54    

75

Технологический журнал Мониторинг Мессенджеры и боты Системный администратор Программист 1С 8.3 1С 8.5 Россия Абонемент ($m)

Лёгкое расширение для 1С, которое ловит ошибки — включая упавшие внутри транзакции проведения и не замеченные типовыми средствами — и сразу шлёт алерты в Telegram и на почту. Не заимствует ни одного объекта конфигурации, ставится на любую базу (типовую или самописную, с БСП или без) за 5 минут. Дедуплицирует повторы, не спамит при шторме ошибок, маскирует персональные данные перед отправкой наружу. Работает даже при отключённом администратором штатном Журнале регистрации — у расширения есть собственный независимый журнал самодиагностики.

3 стартмани

25.08.2026    279    1    KonMa    0    

2

Мониторинг Системный администратор Программист 1С 8.3 Бесплатно (free)

Почему счётчики кластера не отвечают на вопрос и как спросить по-человечески. Подход вопрос вместо метрики, семь вопросов о нагрузке, и техника, без которой это не работает: зерно снимка агрегат, сетевой каталог для многоузлового кластера, определение своей базы по сеансу, версия RAS под сервер.

25.08.2026    719    nedomolkov.ivan    0    

0

Мониторинг Системный администратор Программист 1С 8.3 Абонемент ($m)

Мониторинг нагрузки кластера, который отвечает на человеческие вопросы: кто блокировал базу, кто грузил сервер, что было ночью. Диаграмма с именами людей вместо столбцов счётчиков. Штатный АдминистрированиеСервера, без rac.exe и COM, к СУБД не обращается. С регламентным сбором истории.

10 стартмани

25.08.2026    482    5    nedomolkov.ivan    1    

0

Файловый обмен (TXT, XML, DBF), FTP Мониторинг Системный администратор Программист 1С 8.3 Бесплатно (free)

Три пакетных файла проверили на то, что они на самом деле возвращают. Один сообщал об ошибке при успешном завершении, два возвращали ноль после провала. Мониторинг по кодам возврата на этой цепочке горел бы красным там, где всё хорошо, и молчал бы там, где работа не делалась тридцать пять дней. Началось всё со скучной сверки расписания с журналом, а кончилось матрицей, в которой два шага из пяти стоят с нулём при шести прогонах из шести у соседей. Шаг, отработавший шесть раз, всё это время строил результат по срезу от десятого июня: сорок один день одних и тех же данных. Разбираю три механизма, каждый из которых превращал провал в зелёную строку отчёта, и почему единственная метрика, которая поймала бы всё сразу, - возраст данных внутри результата. Плюс честные границы: что после починки не замерили и какой вывод статьи на площадке так и не внедрили.

25.08.2026    711    nedomolkov.ivan    0    

1
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. Steelvan 317 30.12.19 17:08 Сейчас в теме
В каждую хрень надо добавить это дурацкое слово "online".
Типа, это слово несет информативную нагрузку.

Наблюдение итак собой подразумевает в текущем времени.
2. ddens 170 31.12.19 02:32 Сейчас в теме
(1)да да, в любой непонятной ситуации добавляйте слово "online" в заголовок...
3. qwertehok1 31.12.19 09:24 Сейчас в теме
давно уже придумали sp_whoisactive
Aleksey.Bochkov; YPermitin; +2 Ответить
6. user612295_death4321 02.01.20 22:18 Сейчас в теме
(3) Да, наверное самая удобная штука, что я юзал. Позволяет покрыть наверное процентов 85% проблем )
YPermitin; +1 Ответить
8. ddens 170 09.01.20 02:46 Сейчас в теме
(3) никогда не понимал таких комментаторов. По-вашему других средств быть не может? По-вашему: "придумало человечество колесо и всё! Первое деревянное, скрипучее, недолговечное, но ведь ехало и поедет сейчас... Зачем придумали какие-то подшипники? подшипники трения, скольжения, роликовые, шариковые, двурядные, сборные, конусные, упорные... нафига всё это??? вот же глупое человечество, ведь давно уже придумали колесо"
так по-вашему?)))

Конечно, я не сравниваю sp_whoisactive с деревянным колесом, и ни чуть не умаляю достоинств ни одного ни второго, и, конечно же, не ставлю свой скрипт в замену. Просто говорю, что можно еще вот так вести интерактивное наблюдение за протекающими запросами на ваших серверах. Право выбора остаётся за вами.
Pependos; +1 Ответить
11. Dansur 262 05.08.20 12:51 Сейчас в теме
(8) а выбор реализации на Powershell с псевдографикой не деревянное ли колесо у Вас?
4. пользователь 31.12.19 20:07
5. user1335935 31.12.19 20:41 Сейчас в теме
Поздравляю, Вы "изобрели" sqlblocks XD
YPermitin; +1 Ответить
7. ddens 170 09.01.20 02:24 Сейчас в теме
(5) я вас тоже поздравляю, вы "изобрели" только этот коммент.
baltbereg; +1 Ответить
9. user1274438 09.01.20 11:55 Сейчас в теме
мда...
Первое деревянное, скрипучее, недолговечное...

Если тут проводить аналогию с деревянным колесом, то у автора подшипники сплетены из веток ивы (или типа того), и название им "шариковы", но отнюдь не шариковые.
10. ddens 170 09.01.20 17:08 Сейчас в теме
12. user1839674 08.09.22 03:21 Сейчас в теме
ребята нету тут ничего, и не скачаете, это обман зрения
13. ddens 170 09.09.22 05:02 Сейчас в теме
(12) где пруф? или просто так ляпнул?
Для отправки сообщения требуется регистрация/авторизация