الأحداث الموسّعة في قاعدة بيانات Azure SQL
ينطبق على: قاعدة بيانات Azure SQL
مجموعة ميزات الأحداث الموسّعة في قاعدة بيانات Azure SQL هي مجموعة فرعية قوية من الميزات الموجودة على SQL Server وAzure SQL Managed Instance.
XEvents هو لقب غير رسمي يُستخدم أحياناً لـ "الأحداث الموسّعة" في المدونات وغيرها من المواقع غير الرسمية.
تتوفر معلومات إضافية حول الأحداث الموسّعة في:
المتطلبات الأساسية
تفترض هذه المقالة أن لديك بالفعل بعض المعرفة عن:
ينطبق الجزء الأكبر من وثائقنا حول الأحداث الموسّعة على SQL Server، وقاعدة بيانات Azure SQL، وAzure SQL Managed Instance.
يُعد التعرض المسبق للعناصر التالية مفيداً عند اختيار Event File ليكون الهدف:
نماذج التعليمات البرمجية
تقدم المقالات ذات الصلة عينتين من التعليمات البرمجية:
التعليمة البرمجية لهدف لـ Ring Buffer للأحداث الموسَّعة في قاعدة بيانات Azure SQL
- برنامج نصي بسيط وقصير لـ Transact-SQL.
- نؤكد في مقال نموذج التعليمات البرمجية أنه عند الانتهاء من هدف Ring Buffer يجب تحرير موارده بتنفيذ عبارة alter-drop
ALTER EVENT SESSION ... ON DATABASE DROP TARGET ...;
. يمكنك لاحقاً إضافة مثيل آخر من Ring Buffer بواسطةALTER EVENT SESSION ... ON DATABASE ADD TARGET ...
.
التعليمة البرمجية لهدف Event File للأحداث الوسّعة في قاعدة بيانات Azure SQL
- المرحلة 1 هي PowerShell لإنشاء حاوية Azure Storage.
- المرحلة 2 هي Transact-SQL التي تستخدم حاوية Azure Storage.
اختلافات 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 في تعريفات جلسة عمل الحدث.
الروابط ذات الصلة
- Azure Storage Cmdlets
- استخدام Azure PowerShell مع Azure Storage
- كيفية استخدام مخزن البيانات الثنائية الكبيرة من.NET
- إنشاء بيانات اعتماد (Transact-SQL)
- إنشاء جلسة عمل الحدث (Transact-SQL)
- صفحة ويب تحديثات خدمة Azure، تم تضييقها بواسطة المعلمة إلى قاعدة بيانات Azure SQL: