stvorennja_v_sql_sistemi_monitoringa_blokuvan

Различия

Показаны различия между двумя версиями страницы.

Ссылка на это сравнение

Предыдущая версия справа и слева Предыдущая версия
Следующая версия
Предыдущая версия
stvorennja_v_sql_sistemi_monitoringa_blokuvan [2026/05/01 14:46]
tro
stvorennja_v_sql_sistemi_monitoringa_blokuvan [2026/05/01 14:52] (текущий)
tro
Строка 226: Строка 226:
 PRINT 'Процедура оновлена успішно'; PRINT 'Процедура оновлена успішно';
 </code> </code>
-===== Крок 4 — Створюэмо SQL Agent Job: =====+===== Крок 4 — Створюємо SQL Agent Job: =====
 <code> <code>
 USE msdb; USE msdb;
Строка 234: Строка 234:
  
 EXEC sp_add_job EXEC sp_add_job
-    @job_name        = N'1C - Monitoring Capture', +    @job_name = N'1C - Monitoring Capture', 
-    @enabled         = 1+    @enabled = 1, 
-    @description     = N'Збір даних про блокування та важкі сесії кожні 2 хвилини'+    @job_id = @jobId OUTPUT;
-    @job_id          = @jobId OUTPUT;+
  
 EXEC sp_add_jobstep EXEC sp_add_jobstep
-    @job_id            = @jobId, +    @job_id = @jobId, 
-    @step_name         = N'Run monitoring capture'+    @step_name = N'Run monitoring capture', 
-    @step_id           = 1+    @subsystem = N'TSQL', 
-    @subsystem         = N'TSQL', +    @command = N'EXEC MonitoringDB.dbo.usp_CaptureMonitoring;', 
-    @command           = N'EXEC MonitoringDB.dbo.usp_CaptureMonitoring;', +    @database_name = N'MonitoringDB';
-    @database_name     = N'MonitoringDB'+
-    @on_success_action = 1, +
-    @on_fail_action    = 2;+
  
 EXEC sp_add_schedule EXEC sp_add_schedule
-    @schedule_name        = N'Every 2 minutes', +    @schedule_name = N'1C Monitor Every 2 min', 
-    @freq_type            = 4, +    @freq_type = 4, 
-    @freq_interval        = 1, +    @freq_interval = 1, 
-    @freq_subday_type     = 4, +    @freq_subday_type = 4, 
-    @freq_subday_interval = 2+    @freq_subday_interval = 2;
-    @active_start_time    = 60000, +
-    @active_end_time      = 235959;+
  
 EXEC sp_attach_schedule EXEC sp_attach_schedule
-    @job_id        = @jobId, +    @job_id = @jobId, 
-    @schedule_name = N'Every 2 minutes';+    @schedule_name = N'1C Monitor Every 2 min';
  
 EXEC sp_add_jobserver EXEC sp_add_jobserver
-    @job_id      = @jobId,+    @job_id = @jobId,
     @server_name = N'(LOCAL)';     @server_name = N'(LOCAL)';
 +
 +GO
 +
 +SELECT name, enabled, date_created
 +FROM msdb.dbo.sysjobs
 +WHERE name = N'1C - Monitoring Capture';
  
 PRINT 'Job створено успішно'; PRINT 'Job створено успішно';
 </code> </code>
 +==== Крок 4.1 - запуск завдання вручну (для перевірки) ====
 +<code>
 +-- Запускаємо вручну
 +EXEC msdb.dbo.sp_start_job N'1C - Monitoring Capture';
 +</code>
 +==== Крок 4.2 Перевырка успышносты запису ====
 +<code>
 +-- Перевіряємо що з'явився новий запис
 +SELECT * FROM MonitoringDB.dbo.SnapshotLog ORDER BY Id DESC;
  
 +-- Перевіряємо статус останнього запуску job-а
 +SELECT 
 +    j.name,
 +    h.run_date,
 +    h.run_time,
 +    h.run_duration,
 +    CASE h.run_status
 +        WHEN 0 THEN 'Помилка'
 +        WHEN 1 THEN 'Успішно'
 +        WHEN 2 THEN 'Повтор'
 +        WHEN 3 THEN 'Скасовано'
 +        WHEN 4 THEN 'Виконується'
 +    END AS run_status,
 +    h.message
 +FROM msdb.dbo.sysjobs j
 +JOIN msdb.dbo.sysjobhistory h ON j.job_id = h.job_id
 +WHERE j.name = N'1C - Monitoring Capture'
 +ORDER BY h.run_date DESC, h.run_time DESC;
 +</code>
 +===== Крок 6 - отримання результатів моніторинга =====
 +<code>
 +SELECT * FROM MonitoringDB.dbo.BlockingLog 
 +WHERE CaptureTime >= DATEADD(MINUTE, -30, GETDATE())
 +ORDER BY CaptureTime DESC;
 +
 +SELECT * FROM MonitoringDB.dbo.HeavySessionLog
 +WHERE CaptureTime >= DATEADD(MINUTE, -30, GETDATE())
 +ORDER BY CaptureTime DESC;
 +</code>
  
  • /sites/data/attic/stvorennja_v_sql_sistemi_monitoringa_blokuvan.1777646796.txt.gz
  • Последнее изменение: 2026/05/01 14:46
  • tro