/ الدليل / الملعب / PerformanceMonitor
● مجتمع erikdarlingdata ⚡ فوري

PerformanceMonitor

بواسطة erikdarlingdata · erikdarlingdata/PerformanceMonitor

اسأل 'لماذا SQL Server بطيء؟' واحصل على إحصائيات الانتظار وسلاسل التسد وتحليل الخطة بصيغة واضحة عبر MCP الخاص بـ Erik Darling.

PerformanceMonitor هو تطبيق مراقبة SQL Server مجاني من Erik Darling مع خادم MCP مُدمّج. يوفر 50+ أداة تشخيصية للقراءة فقط (إحصائيات الانتظار والتسد والجمودات وتحليل الخطة وtempdb والذاكرة) عبر HTTP على localhost، مما يتيح لوكيل AI إجراء الفحص الأولي على خادم بطيء أو متعطل.

لماذا تستخدمه

الميزات الأساسية

عرض مباشر

كيف يبدو في الممارسة

performancemonitor.replay ▶ جاهز
0/0

التثبيت

اختر العميل

~/Library/Application Support/Claude/claude_desktop_config.json  · Windows: %APPDATA%\Claude\claude_desktop_config.json
{
  "mcpServers": {
    "performancemonitor": {
      "command": "TODO",
      "args": [
        "See README: https://github.com/erikdarlingdata/PerformanceMonitor"
      ],
      "_inferred": true
    }
  }
}

افتح Claude Desktop → Settings → Developer → Edit Config. أعد التشغيل بعد الحفظ.

~/.cursor/mcp.json · .cursor/mcp.json
{
  "mcpServers": {
    "performancemonitor": {
      "command": "TODO",
      "args": [
        "See README: https://github.com/erikdarlingdata/PerformanceMonitor"
      ],
      "_inferred": true
    }
  }
}

يستخدم Cursor نفس مخطط mcpServers مثل Claude Desktop. إعدادات المشروع أولى من الإعدادات العامة.

VS Code → Cline → MCP Servers → Edit
{
  "mcpServers": {
    "performancemonitor": {
      "command": "TODO",
      "args": [
        "See README: https://github.com/erikdarlingdata/PerformanceMonitor"
      ],
      "_inferred": true
    }
  }
}

انقر على أيقونة MCP Servers في شريط Cline الجانبي، ثم "Edit Configuration".

~/.codeium/windsurf/mcp_config.json
{
  "mcpServers": {
    "performancemonitor": {
      "command": "TODO",
      "args": [
        "See README: https://github.com/erikdarlingdata/PerformanceMonitor"
      ],
      "_inferred": true
    }
  }
}

نفس الصيغة مثل Claude Desktop. أعد تشغيل Windsurf لتطبيق التغييرات.

~/.continue/config.json
{
  "mcpServers": [
    {
      "name": "performancemonitor",
      "command": "TODO",
      "args": [
        "See README: https://github.com/erikdarlingdata/PerformanceMonitor"
      ]
    }
  ]
}

يستخدم Continue مصفوفة من كائنات الخادم بدلاً من خريطة.

~/.config/zed/settings.json
{
  "context_servers": {
    "performancemonitor": {
      "command": {
        "path": "TODO",
        "args": [
          "See README: https://github.com/erikdarlingdata/PerformanceMonitor"
        ]
      }
    }
  }
}

أضف إلى context_servers. يعيد Zed التحميل تلقائيًا عند الحفظ.

claude mcp add performancemonitor -- TODO 'See README: https://github.com/erikdarlingdata/PerformanceMonitor'

أمر من سطر واحد. تحقق باستخدام claude mcp list. احذف باستخدام claude mcp remove.

حالات الاستخدام

استخدامات عملية: PerformanceMonitor

فحص خادم SQL Server بطيء أثناء حادث

👤 مسؤولو قواعد البيانات وSREs في الخدمة لمشاكل قواعد البيانات ⏱ ~5 min intermediate

متى تستخدمه: المستخدمون يبلغون عن انقطاعات الاتصال وتحتاج إلى معرفة من يسد من في الـ 60 ثانية القادمة.

المتطلبات الأساسية
  • تطبيق PerformanceMonitor مثبت ومتصل بخادم الهدف — حمل من إصدارات GitHub وأشر إلى قاعدة البيانات الخاصة بك للمراقبة
  • بيان تسجيل الدخول الهدف لديه VIEW SERVER STATE — GRANT VIEW SERVER STATE TO [monitor_login]
  • MCP مسجل مع عميلك — claude mcp add --transport http --scope user sql-monitor http://localhost:5151/
الخطوات
  1. احصل على نظرة عامة على الصحة
    قم بتشغيل فحص الصحة — هل هناك علامات حمراء على الانتظار أو التسد أو ضغط الذاكرة الآن؟✓ تم النسخ
    → قائمة قصيرة من المقاييس المرتفعة
  2. احفر في المشكلة الأساسية
    إذا كان التسد هو المشكلة الأولى، أظهر لي سلسلة كبير المسديات والنص SQL لجلسة التسد.✓ تم النسخ
    → SPID محدد + نص الاستعلام
  3. احصل على توصية
    هل يجب أن أقتل ذلك SPID أو أنتظره أم أن هناك فهرس مفقود قد يمنع هذا؟ كن محدداً.✓ تم النسخ
    → إجراء واحد موصى به واضح مع المنطق

النتيجة: حادث تم تشخيصه مع إجراء محدد تالي — قتل أو انتظار أو فهرسة أو تصعيد — في أقل من 5 دقائق.

المزالق
  • قتل مسد كان على وشك الالتزام قد يسبب ضرراً أكبر — اسأل دائماً عن مدة تشغيله وما إذا كان يحتفظ بمعاملة مفتوحة قبل القتل
  • المقاييس من قاعدة بيانات المراقبة تتخلف عن الخادم الحقيقي بفاصل المجمع — للعرض المباشر، استخدم أدوات 'الحالة الحالية' بدلاً من السجل المجمع
اجمعها مع: sentry

تحليل خطة استعلام بطيء مع مراجعة بمساعدة AI

👤 مطورو الواجهة الخلفية ومسؤولو قواعس البيانات الذين يضبطون الاستعلامات ⏱ ~15 min intermediate

متى تستخدمه: استعلام بطيء والخطة تحتوي على 200 عامل — لا تريد قراءتها يدويًا.

الخطوات
  1. جلب الخطة
    احصل على أحدث خطة لاستعلام hash 0xA1B2C3 وقم بتشغيل PlanAnalyzer عليها.✓ تم النسخ
    → الخطة + قائمة نتائج القواعد
  2. اشرح أسوأ نتيجة قاعدة
    اشرح نتيجة القاعدة رقم 1 باللغة الإنجليزية البسيطة — ما الذي يحدث ولماذا هو سيء.✓ تم النسخ
    → شرح من جملتين إلى ثلاث جمل واضحة وليس مصطلحات تقنية
  3. اقترح إصلاحًا
    اقترح أصغر تغيير لإصلاحه: فهرس أو إعادة كتابة أو تحديث الإحصائيات. قدّر التأثير.✓ تم النسخ
    → DDL محدد أو إعادة كتابة

النتيجة: إجراء ضبط محدد يدعمه كل من دليل الخطة وقاعدة PlanAnalyzer.

المزالق
  • تم تخزين الخطة في الذاكرة تحت مسار اكتشاف معامل مختلف — أعد إنشاء الخطة مع OPTION(RECOMPILE) قبل الوثوق بشكلها

إنتاج ملخص صحة SQL Server الأسبوعي

👤 مالكو قواعس البيانات الذين يريدون مراقبة سلبية وليس الخدمة المباشرة ⏱ ~20 min beginner

متى تستخدمه: ختام مساء يوم الجمعة؛ اعرف قبل أن يخبرك المستخدمون.

الخطوات
  1. اسحب إحصائيات أسبوع على أسبوع
    قارن أفضل الانتظارات والاستعلامات الأفضل هذا الأسبوع مقابل الأسبوع الماضي. ضع علم على أي شيء أصبح أسوأ بشكل ملموس.✓ تم النسخ
    → الفروقات مع النسب المئوية
  2. صيغ ملخصًا قابلاً للقراءة من قبل الفريق
    اكتب ملخص صحة بصفحة واحدة — جيد/سيء/قبيح — لقناة الهندسة.✓ تم النسخ
    → منشور Markdown جاهز للالصق

النتيجة: منشور صحة أسبوعي قابل للمشاركة مع عناصر محددة للتتبع الأسبوع القادم.

اجمعها مع: sentry

التركيبات

اجمعها مع خوادم MCP أخرى لتحقيق نتائج x10

performancemonitor + sentry

Sentry تميز ارتفاع انقطاع الاتصال؛ مراجعة مرجعية مع تسد SQL Server في نفس الوقت

حدث Sentry في 14:03 UTC يُظهر SqlException. ماذا كان يحدث على قاعدة البيانات بين 14:02 و 14:04 — هل كانت هناك قمم تسد أو انتظار؟✓ تم النسخ
performancemonitor + github

ابحث عن الالتزام الذي قدم استعلاماً بطيئاً

بدأ query hash 0xA1B2 بالظهور في أفضل 10 في 2026-03-22. ابحث عن التزامات GitHub لطبقة الوصول إلى البيانات حول هذا التاريخ.✓ تم النسخ

الأدوات

ما يوفره هذا الـ MCP

الأداةالمدخلاتمتى تستدعيهاالتكلفة
get_top_waits server_name?: str, hours_back?: int التوقف الأول في أي فحص — على ماذا ينتظر الخادم بالفعل 1 استعلام SQL على قاعدة بيانات المراقبة
get_active_blocking server_name?: str التحقيق المباشر من التسد 1 استعلام
get_deadlocks server_name?: str, hours_back?: int في أي وقت يقول شخص ما 'لقد حصلنا على جمود' 1 استعلام
analyze_query_plan plan_handle: bin, or xml: str ضبط استعلام بطيء محدد 1 استعلام + 30 تقييم قاعدة
get_memory_clerks server_name?: str التحقيق من ضغط الذاكرة 1 استعلام
get_tempdb_usage server_name?: str امتلاء tempdb أو الفيضانات في الخطط 1 استعلام

التكلفة والحدود

تكلفة التشغيل

حصة API
لا توجد حصة خارجية؛ محدودة بسعة قاعدة بيانات المراقبة الخاصة بك
الرموز لكل استدعاء
معظم الأدوات تعيد 200-2000 رمز؛ يمكن لخطة XML أن تكون 10000+
التكلفة المالية
مجاني ومفتوح المصدر (إصدارات Lite و Full)
نصيحة
إصدار Lite كافٍ لمعظم المتاجر ذات المثيل الواحد. يضيف Full مراقبة عبر الخوادم.

الأمان

الصلاحيات والأسرار ونطاق الأثر

الحد الأدنى من الصلاحيات: VIEW SERVER STATE على المثيل الهدف
تخزين بيانات الاعتماد: سلسلة اتصال قاعدة البيانات للمراقبة المُدارة في إعدادات التطبيق — تبقى على جهازك
نقل البيانات الخارجي: يرتبط MCP بـ localhost فقط؛ لا توجد استدعاءات خارجة من عملية MCP
لا تمنح أبدًا: sysadmin أو db_owner — VIEW SERVER STATE كافٍ

استكشاف الأخطاء

الأخطاء الشائعة وحلولها

لا يمكن الاتصال بـ http://localhost:5151/

التطبيق لا يعمل أو MCP معطل في الإعدادات. افتح التطبيق وفعّل MCP وتأكد من المنفذ.

تحقق: curl http://localhost:5151/
فشل تسجيل الدخول للمستخدم

بيانات اعتماد قاعدة البيانات للمراقبة خاطئة. أعد الإدخال في التطبيق وتأكد من VIEW SERVER STATE.

تحقق: sqlcmd -S <server> -U <user> -P <pwd> -Q 'SELECT 1'
محلل الخطة لا يعيد أي نتائج على استعلام بطيء واضح

قد لا تكون الخطة في الذاكرة. أعد تشغيل الاستعلام مع OPTION(RECOMPILE) وحاول مرة أخرى.

تحقق: SELECT plan_handle FROM sys.dm_exec_query_stats WHERE ...
المنفذ 5151 قيد الاستخدام بالفعل

غيّر منفذ MCP في الإعدادات (النطاق 1024-65535) وأعد التسجيل مع عميلك.

تحقق: netstat -an | grep 5151

البدائل

PerformanceMonitor مقابل البدائل

البديلمتى تستخدمهاالمقايضة
sp_BlitzFirst / Brent Ozar scriptsتفضل تشغيل إجراءات T-SQL مباشرة بدون تطبيقلا MCP — تلصق المخرجات في الدردشة بنفسك
SentryOne / Redgate SQL Monitorبيئات Enterprise التي لديها بالفعل راقب تجاريمدفوع؛ معظمها لا يكشف سطح MCP
postgres MCPأنت على Postgres وليس SQL Serverقاعدة بيانات مختلفة تماماً

المزيد

الموارد

📖 اقرأ ملف README الرسمي على GitHub

🐙 تصفح القضايا المفتوحة

🔍 تصفح أكثر من 400 خادم MCP و Skills