البرمجة

كيفية تحديد الوظائف التي فشلت في SQL Server

في SQL Server، جدول sysjobs في قاعدة البيانات MSDB يحتوي على معلومات حول الوظائف المجدولة عبر SQL Agent. ومن خلال استخدام هذا الجدول، يمكنك تحديد الوظائف التي فشلت من خلال الاطلاع على العمود current_execution_status والذي يحتوي على حالة تنفيذ الوظيفة الحالية.

لتحديد الوظائف التي فشلت، يمكنك تنفيذ استعلام SQL يشبه هذا:

sql
SELECT 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 وكيفية تحديد الوظائف التي فشلت:

  1. الحالات الناتجة: القيمة في العمود run_status في جدول sysjobhistory تحدد حالة تنفيذ الوظيفة. قيمة 0 تعني فشل التنفيذ، 1 تعني نجاح التنفيذ، 2 تعني محاولة إعادة التنفيذ، و3 تعني إلغاء التنفيذ.

  2. تحديد الوظائف التي تم تشغيلها مؤخرًا: يمكنك استخدام العمودين last_run_date و last_run_time في جدول sysjobs لمعرفة تاريخ ووقت آخر تشغيل لكل وظيفة.

  3. تفاصيل الوظائف: يحتوي جدول sysjobs على العديد من الأعمدة التي تحتوي على معلومات مفيدة حول الوظائف، مثل تكرار التنفيذ، ووقت التنفيذ المحدد، وحالة التمكين، والمزيد. يمكنك استخدام هذه المعلومات لتنظيم ومراقبة الوظائف بشكل أفضل.

  4. الإشعارات البريدية: كما ذكرت، يمكنك تكوين الإشعارات البريدية في SQL Agent لتلقي إشعارات عند فشل تنفيذ الوظيفة. يمكنك استخدام هذه الإشعارات لمعرفة المشكلات بسرعة واتخاذ الإجراءات اللازمة.

  5. مراقبة الأداء: يمكن استخدام جدول sysjobs وجدول sysjobhistory لمراقبة أداء الوظائف بشكل عام، بما في ذلك معرفة الوظائف التي تستغرق وقتًا طويلاً للتنفيذ أو التي تواجه مشاكل بانتظام.

إذا كان لديك أي استفسارات أو احتياجات إضافية، فلا تتردد في طرحها!

زر الذهاب إلى الأعلى