Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Şunlar için geçerlidir:SQL Server
Azure SQL Yönetilen Örneği
SQL Server Agent tarafından planlanmış işlerin yürütülmesi hakkında bilgi içerir.
Uyarı
Çoğu durumda, veriler yalnızca iş adımı tamamlandıktan sonra güncellenir ve tablo genellikle şu anda devam eden iş adımlarına dair kayıt içermez. Bazı durumlarda, temel süreçler devam eden iş adımları hakkında bilgi sağlar.
Bu tablo veritabanında msdb saklanır.
| Sütun adı | Veri türü | Description |
|---|---|---|
instance_id |
int | Satır için benzersiz tanımlayıcı. |
job_id |
uniqueidentifier | İş Kimliği. |
step_id |
int | İşin adımının kimliği. |
step_name |
sysname | Adımın adı. |
sql_message_id |
int | İş başarısız olursa geri dönen herhangi bir SQL Server hata mesajının kimliği. |
sql_severity |
int | Herhangi bir SQL Server hatasının ciddiyeti. |
message |
nvarchar(4000) | Varsa, SQL Server hatası metni. |
run_status |
int | İşin yürütülme durumu:0 = Başarısız oldu1 = Başarılı oldu2 = Tekrar deneme3 = İptal edildi4 = Devam Ediyor |
run_date |
int | İşin veya adımın başlatma tarihini formatta yyyyMMdd belirtin. Devam eden bir tarih için, bu değer tarihin yazıldığı tarih ve zamandır. |
run_time |
int | İşin veya adımın formatında başlama HHmmss zamanı. |
run_duration |
int | İşin yürütülmesinde geçen zaman veya 24 saate kadar olan adım HHmmss formatı.
Örnekte daha uzun çalışma sürelerini çevirecek kod bulun. |
operator_id_emailed |
int | İş tamamlandığında operatörün kimliği bildirildi. |
operator_id_netsent |
int | İş tamamlandığında bir mesajla bildirilen operatörün kimliği. |
operator_id_paged |
int | İş tamamlandığında pager tarafından bildirilen operatörün kimliği. |
retries_attempted |
int | İş veya adım için yapılan tekrar deneme sayısı. |
server |
sysname | İşin yürütüldiği sunucunun adı. |
Örnekler
Aşağıdaki Transact-SQL sorgu run_date , ve run_time sütunlarını bir tarih saati sütununa dönüştürür LastRunStartDateTime. Sütun, run_duration 'de bir int sütununa dönüştürülür LastRunDurationSeconds. Bu iki sütun daha sonra .LastRunFinishDateTime Sütun run_duration ayrıca daha kullanıcı dostu bir formata dönüştürülmüştür. Script'i SQL Server Management Studio veya Azure Data Studio'da çalıştırabilirsiniz.
SET NOCOUNT ON;
SELECT sj.name AS Name,
sh.step_name AS StepName,
shp.LastRunStartDateTime,
DATEADD(SECOND, shp.LastRunDurationSeconds, shp.LastRunStartDateTime) AS LastRunFinishDateTime,
shp.LastRunDurationSeconds,
CASE
WHEN sh.run_duration > 235959
THEN CAST((CAST(LEFT(CAST(sh.run_duration AS VARCHAR),
LEN(CAST(sh.run_duration AS VARCHAR)) - 4) AS INT) / 24) AS VARCHAR)
+ '.' + RIGHT('00' + CAST(CAST(LEFT(CAST(sh.run_duration AS VARCHAR),
LEN(CAST(sh.run_duration AS VARCHAR)) - 4) AS INT) % 24 AS VARCHAR), 2)
+ ':' + STUFF(CAST(RIGHT(CAST(sh.run_duration AS VARCHAR), 4) AS VARCHAR(6)), 3, 0, ':')
ELSE STUFF(STUFF(RIGHT(REPLICATE('0', 6) + CAST(sh.run_duration AS VARCHAR(6)), 6), 3, 0, ':'), 6, 0, ':')
END AS [LastRunDuration (d.HH:MM:SS)],
DATEADD(SECOND, shp.LastRunDurationSeconds, shp.LastRunStartDateTime) AS LastRunFinishDateTime
FROM msdb.dbo.sysjobs sj
INNER JOIN msdb.dbo.sysjobhistory sh ON sj.job_id = sh.job_id
CROSS APPLY (SELECT DATETIMEFROMPARTS(sh.run_date / 10000, -- years
sh.run_date % 10000 / 100, -- months
sh.run_date % 100, -- days
sh.run_time / 10000, -- hours
sh.run_time % 10000 / 100, -- minutes
sh.run_time % 100, -- seconds
0 -- milliseconds
) AS LastRunStartDateTime,
(sh.run_duration / 10000) * 3600 -- convert hours to seconds, can be greater than 24
+ ((sh.run_duration % 10000) / 100) * 60 -- convert minutes to seconds
+ (sh.run_duration % 100) AS LastRunDurationSeconds
) AS shp;
GO