الأحداث الموسّعة في قاعدة بيانات Azure SQL

ينطبق على: قاعدة بيانات Azure SQL

مجموعة ميزات الأحداث الموسّعة في قاعدة بيانات Azure SQL هي مجموعة فرعية قوية من الميزات الموجودة على SQL Server وAzure SQL Managed Instance.

XEvents هو لقب غير رسمي يُستخدم أحياناً لـ "الأحداث الموسّعة" في المدونات وغيرها من المواقع غير الرسمية.

تتوفر معلومات إضافية حول الأحداث الموسّعة في:

المتطلبات الأساسية

تفترض هذه المقالة أن لديك بالفعل بعض المعرفة عن:

يُعد التعرض المسبق للعناصر التالية مفيداً عند اختيار Event File ليكون الهدف:

نماذج التعليمات البرمجية

تقدم المقالات ذات الصلة عينتين من التعليمات البرمجية:

اختلافات Transact-SQL

  • عند تنفيذ الأمر CREATE EVENT SESSION على SQL Server، يمكنك استخدام عبارة ON SERVER. ولكن على قاعدة بيانات Azure SQL، يمكنك استخدام عبارة ON DATABASE بدلاً من ذلك.

  • تنطبق عبارة ON DATABASE أيضاً على أوامر Transact-SQL ALTER EVENT SESSION وDROP EVENT SESSION.

  • إن أفضل الممارسات تضمين خيار جلسة عمل الأحداث STARTUP_STATE = ON في عبارات CREATE EVENT SESSION أو ALTER EVENT SESSION.

    • تدعم القيمة = ON إعادة التشغيل التلقائي بعد إعادة تكوين قاعدة البيانات المنطقية بسبب تجاوز الفشل.

طرق عرض الكتالوج الجديدة

يتم اعتماد ميزة الأحداث الموسّعة من قِبل العديد من طرق عرض الكتالوج. تخبرك طرق عرض الكتالوج عن بيانات تعريف أو تعريفات جلسات عمل الحدث التي أنشأها المستخدم في قاعدة البيانات الحالية. لا تُرجع طرق العرض معلومات حول مثيلات جلسات عمل الحدث النشطة.

اسم طريقة عرض الكتالوج الوصف
sys.database_event_session_actions إرجاع صف لكل إجراء في كل حدث لجلسة عمل الحدث.
sys.database_event_session_events إرجاع صف لكل حدث في جلسة عمل الحدث.
sys.database_event_session_fields إرجاع صف لكل عمود قابل للتخصيص تم تعيينه صراحة على الأحداث والأهداف.
sys.database_event_session_targets إرجاع صف لكل هدف حدث لجلسة عمل الحدث.
sys.database_event_session_fields إرجاع صف لكل جلسة عمل حدث في قاعدة البيانات.

في Microsoft SQL Server، تحتوي طرق عرض الكتالوج المتشابهة على أسماء تتضمن .server_ بدلاً من .database_. نمط الاسم مثل sys.server_event_%.

طرق عرض الإدارة الديناميكية الجديدة (DMVs)

لدى قاعدة بيانات Azure SQL طرق عرض الإدارة الديناميكية (DMVs) التي تدعم الأحداث الموسّعة. تخبرك طرق عرض الإدارة الديناميكية بجلسات عمل الحدث النشطة.

اسم DMV الوصف
sys.dm_xe_database_session_event_actions إرجاع معلومات حول إجراءات جلسة عمل الحدث.
sys.dm_xe_database_session_events إرجاع معلومات حول أحداث جلسة العمل.
sys.dm_xe_database_session_object_columns إظهار قيم التكوين للكائنات المرتبطة بجلسة العمل.
sys.dm_xe_database_session_targets إرجاع معلومات حول أهداف جلسة العمل.
sys.dm_xe_database_sessions إرجاع صف لكل جلسة عمل حدث يتم تحديد نطاقها إلى قاعدة البيانات الحالية.

في Microsoft SQL Server، يتم تسمية طرق عرض الكتالوج المتشابهة دون وضع جزء _database في الاسم، مثل:

  • sys.dm_xe_sessions بدلاً من sys.dm_xe_database_sessions.

DMVs مشتركة لكليهما

للأحداث الموسّعة هناك DMVs إضافية مشتركة مع قاعدة بيانات Azure SQL، وAzure SQL Managed Instance، وMicrosoft SQL Server:

البحث عن الأحداث الموسّعة والإجراءات والأهداف المتوفرة

للحصول على قائمة بالأحداث والإجراءات والأهداف المتوفرة، استخدم نموذج الاستعلام:

SELECT
        o.object_type,
        p.name         AS [package_name],
        o.name         AS [db_object_name],
        o.description  AS [db_obj_description]
    FROM
                   sys.dm_xe_objects  AS o
        INNER JOIN sys.dm_xe_packages AS p  ON p.guid = o.package_guid
    WHERE
        o.object_type in
            (
            'action',  'event',  'target'
            )
    ORDER BY
        o.object_type,
        p.name,
        o.name;

 

أهداف جلسات عمل الحدث لقاعدة بيانات Azure SQL

فيما يلي الأهداف التي يمكنها التقاط النتائج من جلسات عمل الحدث على قاعدة بيانات Azure SQL:

  • هدف Ring Buffer - يحتفظ ببيانات الحدث لفترة وجيزة في الذاكرة.
  • هدف Event Counter - يحسب جميع الأحداث التي تحدث أثناء جلسة عمل أحداث موسّعة.
  • هدف Event File - يكتب مخازن مؤقتة كاملة إلى حاوية Azure Storage.

لا تتوفر واجهة برمجة تطبيقات تتبع الأحداث لـ Windows (ETW) للأحداث الموسّعة في قاعدة بيانات Azure SQL.

القيود

هناك نوعان من الاختلافات المتعلقة بالأمان تتناسب مع البيئة السحابية لقاعدة بيانات Azure SQL:

  • يتم تأسيس الأحداث الموسّعة على نموذج عزل المستأجر الأحادي. لا يمكن لجلسة حدث في قاعدة بيانات واحدة الوصول إلى البيانات أو الأحداث من قاعدة بيانات أخرى.
  • لا يمكنك إصدار عبارة CREATE EVENT SESSION في سياق قاعدة بيانات master.

نموذج الإذن

يجب أن يكون لديك إذن التحكم على قاعدة البيانات لإصدار عبارة CREATE EVENT SESSION. إن مالك قاعدة البيانات (dbo) لديه إذن التحكم.

تفويضات حاوية التخزين

يجب أن يقوم الرمز المميز SAS الذي أنشأته لحاوية Azure Storage بتحديد rwl للأذونات. توفر قيمة rwl الأذونات التالية:

  • قراءة
  • كتابة
  • قائمة

اعتبارات الأداء

هناك سيناريوهات يمكن أن يؤدي فيها الاستخدام المكثف للأحداث الموسّعة إلى تراكم ذاكرة نشطة أكثر مما هو صحي للنظام ككل. لذلك تقوم قاعدة بيانات Azure SQL بتعيين وضبط الحدود على مقدار الذاكرة النشطة التي يمكن تجميعها بواسطة جلسة عمل حدث بشكل ديناميكي. تدخل العديد من العوامل في الحساب الديناميكي.

يوجد حد أقصى للذاكرة المتوفرة لجلسات XEvent في قاعدة بيانات Azure SQL:

  • في قاعدة بيانات Azure SQL الأحادية في نموذج شراء DTU، يمكن لكل قاعدة بيانات استخدام ما يصل إلى 128 ميغابايت. يتم رفعه إلى 256 ميغابايت فقط في المستوى المميز.
  • في قاعدة بيانات Azure SQL الأحادية في نموذج شراء vCore، يمكن لكل قاعدة بيانات استخدام ما يصل إلى 128 ميغابايت.
  • في تجمع مرن، يتم تقييد قواعد البيانات الأحادية بحدود قاعدة البيانات الأحادية، وفي المجموع لا يمكن أن تتجاوز 512 ميغابايت.

إذا تلقيت رسالة خطأ تفيد بأنه تم فرض الحد الأقصى للذاكرة، فإن بعض الإجراءات التصحيحية التي يمكنك اتخاذها هي:

  • تشغيل عدد أقل من جلسات عمل الحدث المتزامنة.
  • من خلال عبارات CREATE وALTER لجلسات عمل الأحداث، قلّل مقدار الذاكرة الذي تحدده في عبارة MAX_MEMORY.

زمن الانتقال في الشبكة

قد يواجه هدف Event File زمن انتقال الشبكة أو فشلها أثناء استمرار البيانات إلى الكائنات الثنائية كبيرة الحجم لـ Azure Storage. قد تتأخر أحداث أخرى في قاعدة بيانات Azure SQL أثناء انتظارها اكتمال اتصال الشبكة. يمكن أن يؤدي هذا التأخير إلى إبطاء حمل العمل.

  • لتقليل مخاطر الأداء هذه، تجنب تعيين خيار EVENT_RETENTION_MODE على NO_EVENT_LOSS في تعريفات جلسة عمل الحدث.