في SQL Server، جدول sysjobs
في قاعدة البيانات MSDB
يحتوي على معلومات حول الوظائف المجدولة عبر SQL Agent. ومن خلال استخدام هذا الجدول، يمكنك تحديد الوظائف التي فشلت من خلال الاطلاع على العمود current_execution_status
والذي يحتوي على حالة تنفيذ الوظيفة الحالية.
لتحديد الوظائف التي فشلت، يمكنك تنفيذ استعلام SQL يشبه هذا:
sqlSELECT
j.name AS 'Job Name',
h.run_date AS 'Last Run Date',
h.run_time AS 'Last Run Time',
CASE
WHEN h.run_status = 0 THEN 'Failed'
WHEN h.run_status = 1 THEN 'Succeeded'
WHEN h.run_status = 2 THEN 'Retry'
WHEN h.run_status = 3 THEN 'Canceled'
END AS 'Run Status'
FROM
msdb.dbo.sysjobs j
INNER JOIN
msdb.dbo.sysjobhistory h ON j.job_id = h.job_id
WHERE
h.step_id = 0 -- Only consider the overall job status
AND h.run_status <> 1 -- Filter to show only failed jobs
ORDER BY
h.run_date DESC, h.run_time DESC;
هذا الاستعلام يقوم بالانضمام بين جدول sysjobs
وجدول sysjobhistory
للحصول على معلومات تاريخ تشغيل الوظيفة. يقوم الاستعلام بعرض اسم الوظيفة، وتاريخ آخر تشغيل، ووقت آخر تشغيل، وحالة تنفيذ الوظيفة. ويتم تصفية النتائج لعرض فقط الوظائف التي فشلت (باستثناء الوظائف التي تم تكرارها أو تم إلغاؤها).
يرجى ملاحظة أنه يجب أن تكون لديك الصلاحيات اللازمة للوصول إلى قاعدة البيانات MSDB
وجدول sysjobhistory
لتنفيذ هذا الاستعلام.
المزيد من المعلومات
بالطبع، هنا بعض المعلومات الإضافية التي قد تكون مفيدة بشأن جدول sysjobs
وكيفية تحديد الوظائف التي فشلت:
-
الحالات الناتجة: القيمة في العمود
run_status
في جدولsysjobhistory
تحدد حالة تنفيذ الوظيفة. قيمة 0 تعني فشل التنفيذ، 1 تعني نجاح التنفيذ، 2 تعني محاولة إعادة التنفيذ، و3 تعني إلغاء التنفيذ. -
تحديد الوظائف التي تم تشغيلها مؤخرًا: يمكنك استخدام العمودين
last_run_date
وlast_run_time
في جدولsysjobs
لمعرفة تاريخ ووقت آخر تشغيل لكل وظيفة. -
تفاصيل الوظائف: يحتوي جدول
sysjobs
على العديد من الأعمدة التي تحتوي على معلومات مفيدة حول الوظائف، مثل تكرار التنفيذ، ووقت التنفيذ المحدد، وحالة التمكين، والمزيد. يمكنك استخدام هذه المعلومات لتنظيم ومراقبة الوظائف بشكل أفضل. -
الإشعارات البريدية: كما ذكرت، يمكنك تكوين الإشعارات البريدية في SQL Agent لتلقي إشعارات عند فشل تنفيذ الوظيفة. يمكنك استخدام هذه الإشعارات لمعرفة المشكلات بسرعة واتخاذ الإجراءات اللازمة.
-
مراقبة الأداء: يمكن استخدام جدول
sysjobs
وجدولsysjobhistory
لمراقبة أداء الوظائف بشكل عام، بما في ذلك معرفة الوظائف التي تستغرق وقتًا طويلاً للتنفيذ أو التي تواجه مشاكل بانتظام.
إذا كان لديك أي استفسارات أو احتياجات إضافية، فلا تتردد في طرحها!