إشعار
يتطلب الوصول إلى هذه الصفحة تخويلاً. يمكنك محاولة تسجيل الدخول أو تغيير الدلائل.
يتطلب الوصول إلى هذه الصفحة تخويلاً. يمكنك محاولة تغيير الدلائل.
مخزن الاستعلام هو ميزة في خادم مرن قاعدة بيانات Azure لـ PostgreSQL يوفر طريقة لتتبع أداء الاستعلام بمرور الوقت. يبسط مخزن الاستعلام استكشاف مشكلات الأداء وإصلاحها من خلال مساعدتك في العثور بسرعة على أطول استعلامات قيد التشغيل وأكثرها استخداما للموارد. يلتقط مخزن الاستعلامات تلقائيا محفوظات الاستعلامات وإحصائيات وقت التشغيل، ويحتفظ بها لمراجعتك. هو يقسم البيانات إلى شرائح حسب الوقت بحيث يمكنك أن ترى أنماط الاستخدام الزمني. يتم تخزين البيانات لجميع المستخدمين وقواعد البيانات والاستعلامات في قاعدة بيانات مسماة azure_sys في الخادم المرن قاعدة بيانات Azure لـ PostgreSQL.
تمكين مخزن الاستعلام
يتوفر مخزن الاستعلام دون أي رسوم إضافية. إنها ميزة اشتراك، لذلك لا يتم تمكينها بشكل افتراضي على الخادم. يمكنك تمكين مخزن الاستعلام أو تعطيله بشكل عام لجميع قواعد البيانات على خادم معين. لا يمكنك تشغيله أو إيقاف تشغيله لكل قاعدة بيانات.
Important
لا تقم بتمكين مخزن الاستعلام على مستوى التسعير القابل للاندفاع لأنه يسبب مشاكل في الأداء.
تمكين مخزن الاستعلام في مدخل Microsoft Azure
- سجل الدخول إلى مدخل Azure وحدد خادمك المرن قاعدة بيانات Azure لـ PostgreSQL.
- اختر المعلمات في قسم الإعدادات في القائمة.
- قم بإجراء بحث عن المعلمة
pg_qs.query_capture_mode. - قم بتعيين القيمة إلى
topأوall، اعتمادا على ما إذا كنت تريد تعقب استعلامات المستوى الأعلى أو الاستعلامات المتداخلة أيضا (تلك التي يتم تنفيذها داخل دالة أو إجراء)، وحدد حفظ. السماح بما يصل إلى 20 دقيقة للدفعة الأولى من البيانات للاستمرار فيazure_sysقاعدة البيانات.
تمكين أخذ عينات انتظار مخزن الاستعلام
- قم بإجراء بحث عن المعلمة
pgms_wait_sampling.query_capture_mode. - تعيين القيمة إلى
allو Save.
المعلومات في مخزن الاستعلام
يتكون مخزن الاستعلام من متجرين:
- مخزن إحصائيات وقت التشغيل لاستمرار معلومات إحصائيات تنفيذ الاستعلام.
- مخزن إحصائيات الانتظار لمعلومات إحصائيات الانتظار المستمرة.
تتضمن السيناريوهات الشائعة لاستخدام مخزن الاستعلام ما يلي:
- تحديد عدد المرات التي تم فيها تنفيذ استعلام في إطار زمني معين.
- مقارنة متوسط وقت تنفيذ استعلام عبر نوافذ الوقت لمشاهدة تباينات كبيرة.
- تحديد أطول استعلامات قيد التشغيل في الساعات القليلة الماضية.
- تحديد أهم استعلامات N التي تنتظر الموارد.
- فهم طبيعة انتظار استعلام معين.
لتقليل استخدام المساحة، يتم تجميع إحصائيات تنفيذ وقت التشغيل في مخزن إحصائيات وقت التشغيل عبر نافذة زمنية ثابتة وقابلة للتكوين. يمكنك الاستعلام عن المعلومات الموجودة في هذه المتاجر باستخدام طرق العرض.
الوصول إلى معلومات مخزن الاستعلام
قاعدة بيانات Azure لـ PostgreSQL يخزن الخادم المرن بيانات مخزن الاستعلام في azure_sys قاعدة البيانات.
يقوم الاستعلام التالي بإرجاع معلومات حول الاستعلامات التي سجلها مخزن الاستعلام:
SELECT * FROM query_store.qs_view;
ويعيد هذا الاستعلام معلومات حول إحصائيات الانتظار:
SELECT * FROM query_store.pgms_wait_sampling_view;
البحث عن استعلامات الانتظار
تقوم أنواع أحداث الانتظار بتجميع أحداث انتظار مختلفة في مستودعات بناء على التشابه. يوفر Query Store نوع حدث الانتظار واسم حدث الانتظار المحدد والاستعلام المعني. عند ربط معلومات الانتظار هذه بإحصائيات وقت تشغيل الاستعلام، فإنك تكتسب فهما أعمق لما يساهم في خصائص أداء الاستعلام.
فيما يلي بعض الأمثلة حول كيفية الحصول على مزيد من الرؤى حول حمل العمل الخاص بك باستخدام إحصائيات الانتظار في Query Store:
| المراقبة | Action |
|---|---|
| انتظارات قفل عالية | تحقق من نصوص الاستعلام للاستعلامات المتأثرة وحدد الكيانات المستهدفة. ابحث في Query Store عن الاستعلامات الأخرى التي يتم تنفيذها بشكل متكرر والتي لها مدة عالية وتعدل نفس الكيان. بعد تحديد هذه الاستعلامات، ضع في اعتبارك تغيير منطق التطبيق لتحسين التزامن، أو استخدام مستوى عزل أقل تقييداً. |
| انتظار الإدخال/الإدخال /الإدخال في المخزن المؤقت العالي | ابحث عن الاستعلامات التي بها عدد كبير من القراءات الفعلية في Query Store. إذا كانت تطابق الاستعلامات مع انتظار الإدخال والإخراج العالي، ففكر في تمكين ميزة الضبط المستقل لمعرفة ما إذا كان يمكنها التوصية بإنشاء بعض الفهارس التي قد تقلل من عدد القراءات الفعلية لتلك الاستعلامات. |
| انتظارات الذاكرة العالية | ابحث عن أهم استعلامات استهلاك الذاكرة في Query Store. من المحتمل أن تؤخر هذه الاستعلامات المزيد من التقدم في الاستعلامات المتأثرة. |
خيارات الإعداد
عند تمكين مخزن الاستعلام، فإنه يحفظ البيانات في نوافذ التجميع. يتم تحديد طول هذه النوافذ بواسطة المعلمة pg_qs.interval_length_minutes ، والتي يتم تعيينها افتراضيا إلى 15 دقيقة. لكل نافذة، يخزن مخزن الاستعلام ما يصل إلى 500 استعلام مميز. السمات التي تميز تفرد كل استعلام هي user_id (معرف المستخدم الذي ينفذ الاستعلام)، db_id (معرف قاعدة البيانات الذي ينفذ الاستعلام في سياقه)، و query_id (قيمة عدد صحيح تحدد الاستعلام المنفذ بشكل فريد). إذا وصل عدد الاستعلامات المميزة إلى 500 استعلام أثناء الفاصل الزمني المكون، يقوم مخزن الاستعلام بإلغاء تخصيص 5% من الاستعلامات المسجلة لتوفير مساحة لمزيد من المعلومات. الاستعلامات التي تم إلغاء تخصيصها أولا هي تلك التي تم تنفيذها بأقل عدد من المرات.
لتكوين معلمات Query Store، استخدم الخيارات التالية:
| المعلمة | الوصف | Default | نطاق |
|---|---|---|---|
pg_qs.interval_length_minutes |
التقاط الفاصل الزمني بالدقائق لمخزن الاستعلام. يحدد تكرار استمرار البيانات. | 15 |
1 - 30 |
pg_qs.max_captured_queries |
يستمر الحد الأقصى لعدد الاستعلامات التي يخزنها الاستعلام من جميع الاستعلامات المسجلة أثناء كل فاصل زمني للالتقاط. | 500 |
100 - 500 |
pg_qs.max_plan_size |
الحد الأقصى لعدد وحدات البايت التي يحفظها مخزن الاستعلام من نص خطة الاستعلام. يتم اقتطاع الخطط الأطول. | 7500 |
100 - 10000 |
pg_qs.max_query_text_length |
الحد الأقصى لطول الاستعلام الذي يمكن لمخزن الاستعلام حفظه. يتم اقتطاع الاستعلامات الأطول. | 6000 |
100 - 10000 |
pg_qs.parameters_capture_mode |
ما إذا كان يجب التقاط المعلمات الموضعية للاستعلام ومتى. | capture_parameterless_only |
capture_parameterless_only، capture_first_sample |
pg_qs.query_capture_mode |
عبارات لتعقبها. | none |
none، ، topall |
pg_qs.retention_period_in_days |
نافذة فترة الاستبقاء بالأيام لمخزن الاستعلام. يتم حذف البيانات القديمة تلقائيا. | 7 |
1 - 30 |
pg_qs.store_query_plans |
ما إذا كان يجب أن يحفظ مخزن الاستعلام خطط الاستعلام. | off |
on، off |
pg_qs.track_utility |
ما إذا كان يجب على مخزن الاستعلام تعقب أوامر الأداة المساعدة. | on |
on، off |
ملاحظة
إذا قمت بتغيير قيمة المعلمة pg_qs.max_query_text_length ، يستمر نص جميع الاستعلامات التي تم التقاطها في مخزن الاستعلام قبل إجراء التغيير في استخدام نفس query_id و sql_query_text. قد يعطي هذا السلوك انطباعا بأن القيمة الجديدة لا تسري ولكن بالنسبة للاستعلامات التي لم يسجلها مخزن الاستعلام من قبل، سترى أن نص الاستعلام يستخدم الحد الأقصى للطول الذي تم تكوينه حديثا. هذا السلوك حسب التصميم ويتم شرحه في طرق العرض والوظائف. إذا قمت بتنفيذ query_store.qs_reset، فإنه يزيل جميع المعلومات التي قام مخزن الاستعلام بتسجيلها حتى الآن، بما في ذلك النص الذي التقطه لكل معرف استعلام. إذا تم تنفيذ أي من هذه الاستعلامات مرة أخرى، يتم تطبيق الحد الأقصى للطول الذي تم تكوينه حديثا على النص الذي يتم التقاطه.
تنطبق الخيارات التالية خصيصا على إحصائيات الانتظار:
| المعلمة | الوصف | Default | نطاق |
|---|---|---|---|
pgms_wait_sampling.history_period |
التردد، بالمللي ثانية، حيث يتم أخذ عينات من أحداث الانتظار. | 100 |
1 - 600000 |
pgms_wait_sampling.query_capture_mode |
العبارات التي يجب أن يتعقبها pgms_wait_sampling الملحق. |
none |
none، all |
ملاحظة
pg_qs.query_capture_modeيحل محل .pgms_wait_sampling.query_capture_mode إذا كان pg_qs.query_capture_mode هو none، فلن يكون للإعداد pgms_wait_sampling.query_capture_mode أي تأثير.
استخدم مدخل Microsoft Azure للحصول على قيمة مختلفة لمعلمة أو تعيينها.
طرق العرض والوظائف
يمكنك الاستعلام عن المعلومات المسجلة بواسطة مخزن الاستعلام وحذفها باستخدام طرق العرض والوظائف المتوفرة query_store في مخطط azure_sys قاعدة البيانات. يمكن لأي شخص في دور PostgreSQL العام استخدام طرق العرض هذه لمشاهدة البيانات في مخزن الاستعلام. تتوفر طرق العرض هذه فقط في قاعدة بيانات azure_sys.
يتم تطبيع الاستعلامات من خلال النظر إلى بنيتها وتجاهل أي شيء غير مهم دلاليا، مثل القيم الحرفية أو الثوابت أو الأسماء المستعارة أو الاختلافات في الغلاف.
إذا كان استعلامين متطابقين دلاليا، حتى إذا استخدما أسماء مستعارة مختلفة لنفس الأعمدة والجداول المشار إليها، يتم تعريفهما بنفس query_id. إذا كان استعلابان يختلفان فقط في القيم الحرفية المستخدمة فيهما، يتم تعريفهما أيضا بنفس query_id. بالنسبة للاستعلامات التي تم تعريفها بنفس query_id، sql_query_text الخاص بها هو الاستعلام الذي تم تنفيذه أولا منذ بدء تشغيل مخزن الاستعلام نشاط التسجيل، أو منذ آخر مرة تم فيها تجاهل البيانات المستمرة بسبب تنفيذ الدالة query_store.qs_reset .
كيفية عمل تسوية الاستعلام
توضح الأمثلة التالية كيفية عمل تسوية الاستعلام:
لنفترض أنك أنشأت جدولا باستخدام العبارة التالية:
create table tableOne (columnOne int, columnTwo int);
يمكنك تمكين Query Store جمع البيانات، ويشغل مستخدم واحد أو أكثر الاستعلامات التالية بهذا الترتيب الدقيق:
select * from tableOne;
select columnOne, columnTwo from tableOne;
select columnOne as c1, columnTwo as c2 from tableOne as t1;
select columnOne as "column one", columnTwo as "column two" from tableOne as "table one";
تشترك جميع الاستعلامات السابقة في نفس معرف الاستعلام. يحتفظ Query Store نص الاستعلام الأول الذي يتم تشغيله بعد تمكين جمع البيانات. لذلك، يكون النص هو select * from tableOne;.
لا تتطابق مجموعة الاستعلامات التالية، بمجرد تسويتها، مع المجموعة السابقة من الاستعلامات لأن عبارة WHERE تجعلها مختلفة دلاليا:
select columnOne as c1, columnTwo as c2 from tableOne as t1 where columnOne = 1 and columnTwo = 1;
select * from tableOne where columnOne = -3 and columnTwo = -3;
select columnOne, columnTwo from tableOne where columnOne = '5' and columnTwo = '5';
select columnOne as "column one", columnTwo as "column two" from tableOne as "table one" where columnOne = 7 and columnTwo = 7;
ومع ذلك، تشترك جميع الاستعلامات في هذه المجموعة الأخيرة في معرف الاستعلام نفسه. النص الذي يعرفها كلها هو نص الاستعلام الأول في الدفعة: select columnOne as c1, columnTwo as c2 from tableOne as t1 where columnOne = 1 and columnTwo = 1;.
وأخيرا، لا تتطابق الاستعلامات التالية مع معرف الاستعلام للاستعلامات في الدفعة السابقة. يتم شرح سبب عدم مطابقتها في القائمة التالية:
الاستعلام:
select columnTwo as c2, columnOne as c1 from tableOne as t1 where columnOne = 1 and columnTwo = 1;
سبب عدم المطابقة: تشير قائمة الأعمدة إلى نفس العمودين (columnOne و ColumnTwo)، ولكن يتم عكس الترتيب. يتغير الطلب من columnOne, ColumnTwo في الدفعة السابقة إلى ColumnTwo, columnOne في هذا الاستعلام.
الاستعلام:
select * from tableOne where columnTwo = 25 and columnOne = 25;
سبب عدم المطابقة: يتم عكس الترتيب الذي يتم به تقييم التعبيرات في عبارة WHERE. يتغير الطلب من columnOne = ? and ColumnTwo = ? في الدفعة السابقة إلى ColumnTwo = ? and columnOne = ? في هذا الاستعلام.
الاستعلام:
select abs(columnOne), columnTwo from tableOne where columnOne = 12 and columnTwo = 21;
سبب عدم المطابقة: لم يعد التعبير الأول في قائمة columnOne الأعمدة بعد الآن، ولكن الدالة abs التي تم تقييمها عبر columnOne (abs(columnOne))، وهي ليست مكافئة دلاليا.
الاستعلام:
select columnOne as "column one", columnTwo as "column two" from tableOne as "table one" where columnOne = ceiling(16) and columnTwo = 16;
سبب عدم المطابقة: لا يقيم التعبير الأول في عبارة WHERE المساواة columnOne مع القيمة الحرفية بعد الآن، ولكن مع نتيجة الدالة ceiling التي تم تقييمها على قيمة حرفية، والتي ليست مكافئة دلاليا.
طرق العرض
query_store.qs_view
تقوم طريقة العرض هذه بإرجاع كافة البيانات التي يستمر تخزين الاستعلام في جداولها الداعمة. البيانات التي لا يزال مخزن الاستعلام يسجلها في الذاكرة للنافذة الزمنية النشطة حاليا غير مرئية حتى تنتهي النافذة الزمنية ويتم تجميع البيانات المتغيرة في الذاكرة واستمرارها في الجداول المخزنة على القرص. ترجع طريقة العرض هذه صفا مختلفا لكل قاعدة بيانات مميزة (db_id) والمستخدم (user_id) والاستعلام (query_id).
| الاسم | النوع | المراجع | الوصف |
|---|---|---|---|
runtime_stats_entry_id |
عدد صحيح كبير | معرف من الجدول runtime_stats_entries. | |
user_id |
معرف العنصر | pg_authid.oid | OID للمستخدم الذي قام بتنفيذ العبارة. |
db_id |
معرف العنصر | pg_database.oid | OID لقاعدة البيانات التي تم تنفيذ العبارة فيها. |
query_id |
عدد صحيح كبير | رمز التجزئة الداخلي، المحسوب من شجرة تحليل العبارة. | |
query_sql_text |
varchar(10000) | نص بيان تمثيلي. يتم تجميع الاستعلامات المختلفة بنفس البنية معا. هذا النص هو نص أول من الاستعلامات في نظام المجموعة. القيمة الافتراضية لأقصى طول لنص الاستعلام هي 6000، ويمكنك تعديلها باستخدام معلمة pg_qs.max_query_text_lengthمخزن الاستعلام . إذا تجاوز نص الاستعلام هذه القيمة القصوى، يتم اقتطاعه إلى البايت الأول pg_qs.max_query_text_length . |
|
plan_id |
عدد صحيح كبير | معرف الخطة المقابلة لهذا الاستعلام. | |
start_time |
الطابع الزمني | يتم تجميع الاستعلامات حسب نوافذ الوقت. المعلمة pg_qs.interval_length_minutes تحدد الفترة الزمنية لتلك النوافذ (الافتراضي هو 15 دقيقة). يتوافق هذا العمود مع وقت بدء النافذة التي تم تسجيل هذا الإدخال فيها. |
|
end_time |
الطابع الزمني | وقت الانتهاء المطابق للنافذة الزمنية لهذا الإدخال. | |
calls |
عدد صحيح كبير | عدد المرات التي تم فيها تنفيذ الاستعلام في هذه النافذة الزمنية. بالنسبة للاستعلامات المتوازية، يتوافق عدد الاستدعاءات لكل تنفيذ مع 1 لعملية الواجهة الخلفية التي تدفع تنفيذ الاستعلام، بالإضافة إلى العديد من الوحدات الأخرى لكل عملية عامل خلفية يتم تشغيلها للتعاون في تنفيذ الفروع المتوازية لشجرة التنفيذ. | |
total_time |
الدقة المزدوجة | إجمالي وقت تنفيذ الاستعلام، بالمللي ثانية. | |
min_time |
الدقة المزدوجة | الحد الأدنى لوقت تنفيذ الاستعلام، بالمللي ثانية. | |
max_time |
الدقة المزدوجة | الحد الأقصى لوقت تنفيذ الاستعلام، بالمللي ثانية. | |
mean_time |
الدقة المزدوجة | متوسط وقت تنفيذ الاستعلام، بالمللي ثانية. | |
stddev_time |
الدقة المزدوجة | الانحراف المعياري لوقت تنفيذ الاستعلام، بالمللي ثانية. | |
rows |
عدد صحيح كبير | إجمالي عدد الصفوف التي تم استردادها أو المتأثرة بالجملة. بالنسبة للاستعلامات المتوازية، يتوافق عدد الصفوف لكل تنفيذ مع عدد الصفوف التي يعيدها العميل من قبل عملية الخلفية التي تدفع تنفيذ الاستعلام، بالإضافة إلى مجموع جميع الصفوف التي يعيدها كل عامل خلفية، الذي يطلق لتنفيذ الفروع المتوازية لشجرة التنفيذ، إلى العملية الخلفية التي تدفع تنفيذ الاستعلام. | |
shared_blks_hit |
عدد صحيح كبير | إجمالي عدد مرات الوصول إلى ذاكرة التخزين المؤقت للكتلة المشتركة بواسطة العبارة . | |
shared_blks_read |
عدد صحيح كبير | إجمالي عدد الكتل المشتركة المقروءة بواسطة العبارة . | |
shared_blks_dirtied |
عدد صحيح كبير | إجمالي عدد الكتل المشتركة التي تم اتساخها بواسطة العبارة . | |
shared_blks_written |
عدد صحيح كبير | إجمالي عدد الكتل المشتركة المكتوبة بواسطة العبارة . | |
local_blks_hit |
عدد صحيح كبير | إجمالي عدد مرات الوصول إلى ذاكرة التخزين المؤقت للكتلة المحلية بواسطة العبارة . | |
local_blks_read |
عدد صحيح كبير | إجمالي عدد الكتل المحلية المقروءة بواسطة العبارة . | |
local_blks_dirtied |
عدد صحيح كبير | إجمالي عدد الكتل المحلية التي تم اتساخها بواسطة العبارة . | |
local_blks_written |
عدد صحيح كبير | إجمالي عدد الكتل المحلية المكتوبة بواسطة العبارة . | |
temp_blks_read |
عدد صحيح كبير | إجمالي عدد الكتل المؤقتة المقروءة بواسطة العبارة . | |
temp_blks_written |
عدد صحيح كبير | إجمالي عدد الكتل المؤقتة المكتوبة بواسطة العبارة . | |
blk_read_time |
الدقة المزدوجة | إجمالي الوقت الذي أمضته العبارة في قراءة الكتل، بالمللي ثانية (إذا تم تمكين track_io_timing، وإلا فلن تكون هناك أي كتل). | |
blk_write_time |
الدقة المزدوجة | إجمالي الوقت الذي أمضته العبارة في كتابة الكتل، بالمللي ثانية (إذا تم تمكين track_io_timing، وبخلاف ذلك صفر). | |
is_system_query |
منطقيه | تحديد ما إذا كان الدور مع user_id = 10 (azuresu) قام بتنفيذ الاستعلام. يتمتع هذا المستخدم بامتيازات المستخدم الفائق ويستخدم لتنفيذ عمليات وحدة التحكم. نظرا لأن هذه الخدمة هي خدمة PaaS مدارة، فإن Microsoft فقط هي جزء من دور المستخدم الفائق هذا. | |
query_type |
النص | نوع العملية التي يمثلها الاستعلام. القيم المحتملة هي unknown، select، update، insert، delete، merge، utility، ، nothing. undefined |
|
search_path |
النص | قيمة search_path المعينة في وقت التقاط الاستعلام. | |
query_parameters |
النص | تمثيل نصي لكائن JSON بالقيم التي تم تمريرها إلى المعلمات الموضعية لاستعلام ذي معلمات. يملأ هذا العمود قيمته فقط في حالتين: 1) للاستعلامات غير المعلمة. 2) بالنسبة للاستعلامات ذات المعلمات، عندما pg_qs.parameters_capture_mode يتم تعيين إلى capture_first_sample، وإذا كان مخزن الاستعلام يمكنه إحضار قيم معلمات الاستعلام في وقت التنفيذ. |
|
parameters_capture_status |
النص | نوع العملية التي يمثلها الاستعلام. القيم المحتملة هي succeeded (إما أن الاستعلام لم يتم تحديد معلماته أو أنه استعلام ذو معلمات وتم التقاط القيم بنجاح)، disabled (تم تحديد معلمات الاستعلام ولكن، لم يتم التقاط المعلمات لأنه pg_qs.parameters_capture_mode تم تعيينها إلى capture_parameterless_only)، too_long_to_capture (تم تحديد معلمات الاستعلام، ولكن لم يتم التقاط المعلمات لأن طول JSON الناتج الذي سيتم عرضه في query_parameters عمود طريقة العرض هذه، اعتبر طويلا بشكل مفرط حتى يستمر مخزن الاستعلام)، too_many_to_capture (تم وضع معلمات للاستعلام، ولكن لم يتم التقاط المعلمات لأن العدد الإجمالي للمعلمات، اعتبر مفرطا لاستمرار مخزن الاستعلام)، serialization_failed (تم وضع معلمات على الاستعلام، ولكن لا يمكن تسلسل قيمة واحدة على الأقل من القيم التي تم تمريرها كمعلمة إلى نص). |
query_store.query_text_view
تقوم طريقة العرض هذه بإرجاع بيانات نص الاستعلام في Query Store. يوجد صف واحد لكل query_sql_text مميز.
| الاسم | النوع | الوصف |
|---|---|---|
query_text_id |
عدد صحيح كبير | معرف الجدول query_texts |
query_sql_text |
varchar(10000) | نص بيان تمثيلي. يتم تجميع الاستعلامات المختلفة بنفس البنية معا. هذا النص هو نص أول من الاستعلامات في نظام المجموعة. |
query_type |
Smallint | نوع العملية التي يمثلها الاستعلام. في إصدارات PostgreSQL <= 14، تكون 0 القيم المحتملة (غير معروفة)، (تحديد)، 1 (تحديث)، 2 (إدراج)، 3 (حذف)، 54 (أداة مساعدة)، 6 (لا شيء). في إصدارات PostgreSQL >= 15، تكون 0 القيم المحتملة (غير معروفة)، (تحديد)، 1 (تحديث)، 2 (إدراج)، 3 (حذف)، 54 (دمج)، 6 (أداة مساعدة)، 7 (لا شيء). |
query_store.pgms_wait_sampling_view
تقوم طريقة العرض هذه بإرجاع بيانات أحداث الانتظار في Query Store. ترجع طريقة العرض هذه صفا مختلفا لكل قاعدة بيانات مميزة (db_id) والمستخدم (user_id) والاستعلام (query_id) والحدث (الحدث).
| الاسم | النوع | المراجع | الوصف |
|---|---|---|---|
start_time |
الطابع الزمني | يتم تجميع الاستعلامات حسب نوافذ الوقت. المعلمة pg_qs.interval_length_minutes تحدد الفترة الزمنية لتلك النوافذ (الافتراضي هو 15 دقيقة). يتوافق هذا العمود مع وقت بدء النافذة التي تم تسجيل هذا الإدخال فيها. |
|
end_time |
الطابع الزمني | وقت الانتهاء المطابق للنافذة الزمنية لهذا الإدخال. | |
user_id |
معرف العنصر | pg_authid.oid | معرف الكائن للمستخدم الذي قام بتنفيذ العبارة. |
db_id |
معرف العنصر | pg_database.oid | معرف الكائن لقاعدة البيانات التي تم تنفيذ العبارة فيها. |
query_id |
عدد صحيح كبير | رمز التجزئة الداخلي، المحسوب من شجرة تحليل العبارة. | |
event_type |
النص | نوع الحدث الذي تنتظره الخلفية. | |
event |
النص | اسم حدث الانتظار إذا كانت الخلفية قيد الانتظار حاليا. | |
calls |
العدد الصحيح | عدد المرات التي تم فيها التقاط نفس الحدث. |
ملاحظة
للحصول على قائمة بالقيم المحتملة event_type في عمودي event العرض وquery_store.pgms_wait_sampling_view، راجع الوثائق الرسمية pg_stat_activity وابحث عن المعلومات التي تشير إلى أعمدة بنفس الأسماء.
query_store.query_plans_view
طريقة العرض هذه ترجع خطة الاستعلام التي تم استخدامها لتنفيذ استعلام. يوجد صف واحد لكل معرف قاعدة بيانات مميز، ومعرف الاستعلام. يسجل مخزن الاستعلام فقط خطط الاستعلام للاستعلامات غير القابلة للعبث.
| الاسم | النوع | المراجع | الوصف |
|---|---|---|---|
plan_id |
عدد صحيح كبير | قيمة التجزئة من خطة الاستعلام التي تم تسويتها التي تنتجها EXPLAIN. إنه في شكل عادي لأنه يستبعد التكاليف المقدرة لعقد الخطة واستخدام المخازن المؤقتة. | |
db_id |
معرف العنصر | pg_database.oid | OID لقاعدة البيانات التي تم تنفيذ العبارة فيها. |
query_id |
عدد صحيح كبير | رمز التجزئة الداخلي، المحسوب من شجرة تحليل العبارة. | |
plan_text |
varchar(10000) | خطة تنفيذ العبارة المعطاة التكاليف=خطأ، المخازن المؤقتة=خطأ، وتنسيق=نص. إخراج مماثل للإخراج الذي تنتجه EXPLAIN. |
الوظائف
query_store.qs_reset
تتجاهل هذه الدالة كافة الإحصائيات التي يجمعها مخزن الاستعلام. إنه يتجاهل الإحصائيات للنوافذ الزمنية المغلقة بالفعل، والتي تستمر بالفعل في الجداول الموجودة على القرص. كما أنه يتجاهل إحصائيات النافذة الزمنية الحالية، الموجودة فقط في الذاكرة. يمكن فقط لأعضاء دور مسؤول الخادم (azure_pg_admin) تنفيذ هذه الوظيفة.
query_store.staging_data_reset
تتجاهل هذه الدالة كافة الإحصائيات التي تم جمعها في الذاكرة بواسطة مخزن الاستعلام. لم يتم مسح هذه البيانات بعد إلى الجداول على القرص التي تدعم استمرار البيانات المجمعة لمخزن الاستعلام. يمكن فقط لأعضاء دور مسؤول الخادم (azure_pg_admin) تنفيذ هذه الوظيفة.
وضع القراءة فقط
عندما يكون خادم قاعدة بيانات Azure لـ PostgreSQL المرن في وضع القراءة فقط، مثل عند تعيين المعلمة default_transaction_read_only على on، أو إذا تم تمكين وضع القراءة فقط تلقائيا بسبب الوصول إلى سعة التخزين، فلا يلتقط مخزن الاستعلام أي بيانات.
لا يؤدي تمكين مخزن الاستعلام على خادم يحتوي على نسخ متماثلة للقراءة إلى تمكين مخزن الاستعلام تلقائيا على أي من النسخ المتماثلة المقروءة. حتى إذا قمت بتمكينه على أي من النسخ المتماثلة للقراءة، لا يسجل مخزن الاستعلام الاستعلامات المنفذة على أي نسخ متماثلة للقراءة. تعمل النسخ المتماثلة للقراءة في وضع القراءة فقط حتى تقوم بترقية هذه النسخ إلى وضع أساسي.
المحتوى ذو الصلة
- سيناريوهات الاستخدام مخزن الاستعلام
- أفضل ممارسات مخزن الاستعلام
- Query Performance Insight