استمرار لمقال "في
محاولة لخلق التماثلية من الرماد ل PostgreSQL ".
سيتم النظر في المقالة وعرضها على استفسارات وأمثلة محددة - ما هي المعلومات المفيدة التي يمكن الحصول عليها باستخدام محفوظات العرض التقديمي pg_stat_activity.
تحذير.
بسبب حداثة الموضوع وفترة الاختبار غير المكتملة ، قد تحتوي المقالة على أخطاء. يتم تشجيع النقد والتعليقات بقوة ومتوقعة.
إدخال البيانات
عرض السجل pg_stat_statements
pg_stat_historyCREATE TABLE pg_stat_history ( id SERIAL, snapshot_timestamp timestamp without time zone, database_id integer, dbid oid, userid oid, queryid bigint, query text, calls bigint, total_time double precision, min_time double precision, max_time double precision, mean_time double precision, stddev_time double precision, rows bigint, shared_blks_hit bigint, shared_blks_read bigint, shared_blks_dirtied bigint, shared_blks_written bigint, local_blks_hit bigint, local_blks_read bigint, local_blks_dirtied bigint, local_blks_written bigint, temp_blks_read bigint, temp_blks_written bigint, blk_read_time double precision, blk_write_time double precision, baseline_id integer );
يتم ملؤها الجدول كل ساعة باستخدام dblink إلى قاعدة البيانات الهدف. العمود الأكثر إثارة للاهتمام ومفيد في الجدول ، بالطبع ، هو
الاستعلام .
عرض تاريخ Pg_stat_activity
archive_pg_stat_activity CREATE TABLE archive_pg_stat_activity ( timepoint timestamp without time zone, datid oid, datname name, pid integer, usesysid oid, usename name, application_name text, client_addr inet, client_hostname text, client_port integer, backend_start timestamp without time zone, xact_start timestamp without time zone, query_start timestamp without time zone, state_change timestamp without time zone, wait_event_type text, wait_event text, state text, backend_xid xid, backend_xmin xid, query text, backend_type text, queryid bigint );
الجدول عبارة عن جدول history_pg_stat_activity مقسم على مدار الساعة (لمزيد من التفاصيل ،
انظر pg_stat_statements + pg_stat_activity + loq_query = pg_ash؟ وهنا
محاولة لإنشاء مثيل لـ ASH لـ PostgreSQL.)إنتاج
وقت وحدة المعالجة المركزية (نظام + عملاء)
تحقيق WITH t AS ( SELECT date_trunc('second', timepoint) FROM activity_hist.archive_pg_stat_activity aa WHERE timepoint BETWEEN pg_stat_history_begin+(current_hour_diff * interval '1 hour') AND pg_stat_history_end+(current_hour_diff * interval '1 hour') AND ( aa.wait_event_type IS NULL ) AND aa.state = 'active' ) SELECT count(*) INTO cpu_total FROM t ;
مثال CLUSTER CPU TIME (SYSTEM + CLIENTS ) : 28:37:46
كلوز ينتظر الوقت
تحقيق WITH t AS ( SELECT date_trunc('second', timepoint) FROM activity_hist.archive_pg_stat_activity aa WHERE timepoint BETWEEN pg_stat_history_begin+(current_hour_diff * interval '1 hour') AND pg_stat_history_end+(current_hour_diff * interval '1 hour') AND ( aa.wait_event_type IS NOT NULL ) AND aa.state = 'active' ) SELECT count(*) INTO cpu_total FROM t ;
مثال CLUSTER WAITINGS TIME : 30:12:49
إجمالي قيم pg_stat_statements
SQL DBTIME - إجمالي وقت تشغيل الاستعلام
تحقيق dbtime_total = interval '1 millisecond' * pg_total_stat_history_rec.total_time ;
مزود وقت وحدة المعالجة المركزية الوقت من وحدة المعالجة المركزية قضى تنفيذ الاستعلامات
تحقيق WITH t AS ( SELECT date_trunc('second', timepoint) FROM activity_hist.archive_pg_stat_activity aa WHERE timepoint BETWEEN pg_stat_history_begin+(current_hour_diff * interval '1 hour') AND pg_stat_history_end+(current_hour_diff * interval '1 hour') AND ( aa.wait_event_type IS NULL ) AND backend_type = 'client backend' AND aa.state = 'active' ) SELECT count(*) INTO cpu_total FROM t ;
وقت انتظار SQL - إجمالي وقت الانتظار للاستعلامات
تحقيق WITH t AS ( SELECT date_trunc('second', timepoint) FROM activity_hist.archive_pg_stat_activity aa WHERE timepoint BETWEEN pg_stat_history_begin+(current_hour_diff * interval '1 hour') AND pg_stat_history_end+(current_hour_diff * interval '1 hour') AND ( aa.wait_event_type IS NOT NULL ) AND aa.state = 'active' AND backend_type = 'client backend' ) SELECT count(*) INTO waiting_total FROM t ;
مثال SQL WAITINGS TIME : 30:04:09
الاستعلامات التالية تافهة ولتوفير مساحة ، يتم حذف تفاصيل التنفيذ:
مثال | SQL IOTIME : 19:44:50 | SQL READ TIME : 19:44:32 | SQL WRITE TIME : 00:00:17 | | SQL CALLS : 12188248 ------------------------------------------------------------- | SQL SHARED BLOCKS READS : 7997039120 | SQL SHARED BLOCKS HITS : 8868286092 | SQL SHARED BLOCKS HITS/READS % : 110.89 | SQL SHARED BLOCKS DIRTED : 419945 | SQL SHARED BLOCKS WRITTEN : 19857 | | SQL TEMPORARY BLOCKS READS : 7836169 | SQL TEMPORARY BLOCKS WRITTEN : 10683938
نمر إلى القسم الأكثر إثارة للاهتمام
إحصائيات الانتظار
أفضل 10 عمليات انتظار حسب إجمالي وقت الانتظار لعمليات العملاء
تحقيق SELECT wait_event_type , wait_event , get_system_waiting_duration( wait_event_type , wait_event ,pg_stat_history_begin+(current_hour_diff * interval '1 hour') ,pg_stat_history_end+(current_hour_diff * interval '1 hour') ) as duration FROM activity_hist.archive_pg_stat_activity aa WHERE timepoint BETWEEN pg_stat_history_begin+(current_hour_diff * interval '1 hour') AND pg_stat_history_end+(current_hour_diff * interval '1 hour') AND backend_type != 'client backend' AND wait_event_type IS NOT NULL GROUP BY wait_event_type, wait_event ORDER BY 3 DESC LIMIT 10
مثال + ------------------------------------------------- -----------------------------------
| أفضل 10 عمليات انتظار حسب إجمالي وقت الانتظار لعمليات النظام
+ ----- + ------------------------------ + ------------ -------- + --------------------
| # | wait_event_type | wait_event | مدة
+ ----- + ------------------------------ + ------------ -------- + --------------------
| 1 | النشاط | LogicalLauncherMain | 10:43:28
| 2 | النشاط | AutoV VacuumMain | 10:42:49
| 3 | النشاط | والوريترمان | 10:28:53
| 4 | النشاط | CheckpointerMain | 10:23:50
| 5 | النشاط | BgWriterMain | 9:11:59
| 6 | النشاط | BgWriterHibernate | 1:37:46
| 7 | IO | BufFileWrite | 0:02:35
| 8 | LWLock | العازلة | 0:01:54
| 9 | IO | DataFileRead | 0:01:23
| 10 | IO | الكتابة | 0:00:59
+ ----- + ------------------------------ + ------------ -------- + --------------------
أفضل 10 عمليات انتظار حسب إجمالي وقت الانتظار لعمليات العملاء
تحقيق SELECT wait_event_type , wait_event , get_clients_waiting_duration( wait_event_type , wait_event , pg_stat_history_begin+(current_hour_diff * interval '1 hour') , pg_stat_history_end+(current_hour_diff * interval '1 hour') ) as duration FROM activity_hist.archive_pg_stat_activity aa WHERE timepoint BETWEEN pg_stat_history_begin+(current_hour_diff * interval '1 hour') AND pg_stat_history_end+(current_hour_diff * interval '1 hour') AND backend_type = 'client backend' AND wait_event_type IS NOT NULL GROUP BY wait_event_type, wait_event ORDER BY 3 DESC LIMIT 10
مثال + ----- + ------------------------------ + ------------ -------- + -------------------- + ----------
| # | wait_event_type | wait_event | المدة | ٪ dbtime
+ ----- + ------------------------------ + ------------ -------- + -------------------- + ----------
| 1 | قفل | معاملة | 08: 16: 47 | 6.05
| 2 | IO | DataFileRead | 06: 13: 41 | 4.55
| 3 | مهلة | PgSleep | 02: 53: 21 | 2.11
| 4 | LWLock | العازلة | 00: 40: 42 | 0.5
| 5 | LWLock | buffer_io | 00: 17: 17 | 0.21
| 6 | IO | BufFileWrite | 00: 01: 34 | 0.02
| 7 | قفل | tuple | 00: 01: 32 | 0.02
| 8 | العميل | ClientRead | 00: 01: 19 | 0.02
| 9 | IO | BufFileRead | 00: 00: 37 | 0.01
| 10 | LWLock | المخزن المؤقت | 00: 00: 08 | 0
+ ----- + ------------------------------ + ------------ -------- + -------------------- + ----------
أنواع الانتظار بوقت الانتظار الكلي ، لعمليات النظام
تحقيق SELECT wait_event_type , get_system_waiting_type_duration( wait_event_type , pg_stat_history_begin+(current_hour_diff * interval '1 hour') , pg_stat_history_end+(current_hour_diff * interval '1 hour') ) as duration FROM activity_hist.archive_pg_stat_activity aa WHERE timepoint BETWEEN pg_stat_history_begin+(current_hour_diff * interval '1 hour') AND pg_stat_history_end+(current_hour_diff * interval '1 hour') AND backend_type != 'client backend' AND wait_event_type IS NOT NULL GROUP BY wait_event_type ORDER BY 2 DESC
مثال + ----- + ------------------------------ + ------------ --------
| # | wait_event_type | مدة
+ ----- + ------------------------------ + ------------ --------
| 1 | النشاط | 53:08:45
| 2 | IO | 0:06:24
| 3 | LWLock | 0:03:02
+ ----- + ------------------------------ + ------------ --------
أنواع الانتظار في إجمالي وقت الانتظار ، لعمليات العملاء
تحقيق SELECT wait_event_type , get_clients_waiting_type_duration( wait_event_type , pg_stat_history_begin+(current_hour_diff * interval '1 hour') , pg_stat_history_end+(current_hour_diff * interval '1 hour') ) as duration FROM activity_hist.archive_pg_stat_activity aa WHERE timepoint BETWEEN pg_stat_history_begin+(current_hour_diff * interval '1 hour') AND pg_stat_history_end+(current_hour_diff * interval '1 hour') AND backend_type = 'client backend' AND wait_event_type IS NOT NULL GROUP BY wait_event_type ORDER BY 2 DESC
مثال + ----- + ------------------------------ + ------------ -------- + --------------------
| # | wait_event_type | المدة | ٪ dbtime
+ ----- + ------------------------------ + ------------ -------- + --------------------
| 1 | قفل | 08: 18: 19 | 6.07
| 2 | IO | 06: 16: 01 | 4.58
| 3 | مهلة | 02: 53: 21 | 2.11
| 4 | LWLock | 00: 58: 12 | 0.71
| 5 | العميل | 00: 01: 19 | 0.02
| 6 | IPC | 00: 00: 04 | 0
+ ----- + ------------------------------ + ------------ -------- + --------------------
مدة التوقعات ، لعمليات النظام والطلبات الفردية.
في انتظار عمليات النظام
تحقيق SELECT backend_type , datname , wait_event_type , wait_event , get_backend_type_waiting_duration( backend_type , wait_event_type , wait_event , pg_stat_history_begin+(current_hour_diff * interval '1 hour') , pg_stat_history_end+(current_hour_diff * interval '1 hour') ) as duration FROM activity_hist.archive_pg_stat_activity aa WHERE timepoint BETWEEN pg_stat_history_begin+(current_hour_diff * interval '1 hour') AND pg_stat_history_end+(current_hour_diff * interval '1 hour') AND backend_type != 'client backend' AND wait_event_type IS NOT NULL GROUP BY backend_type , datname , wait_event_type , wait_event ORDER BY 5 DESC
مثال + ----- + ----------------------------- + ---------- + - ------------------ + ---------------------- + -------- ------------
| # | backend_type | dbname | wait_event_type | wait_event | مدة
+ ----- + ----------------------------- + ---------- + - ------------------ + ---------------------- + -------- ------------
| 1 | قاذفة النسخ المتماثل المنطقي | | النشاط | LogicalLauncherMain | 10:43:28
| 2 | قاذفة autov Vacuum | | النشاط | AutoV VacuumMain | 10:42:49
| 3 | كاتب الخط | | النشاط | والوريترمان | 10:28:53
| 4 | checkpointer | | النشاط | CheckpointerMain | 10:23:50
| 5 | كاتب الخلفية | | النشاط | BgWriterMain | 9:11:59
| 6 | كاتب الخلفية | | النشاط | BgWriterHibernate | 1:37:46
| 7 | عامل مواز | tdb1 | IO | BufFileWrite | 0:02:35
| 8 | عامل مواز | tdb1 | LWLock | العازلة | 0:01:41
| 9 | عامل مواز | tdb1 | IO | DataFileRead | 0:01:22
| 10 | عامل مواز | tdb1 | IO | BufFileRead | 0:00:59
| 11 | كاتب الخط | | IO | الكتابة | 0:00:57
| 12 | عامل مواز | tdb1 | LWLock | buffer_io | 0:00:47
| 13 | عامل فراغ تلقائي | tdb1 | LWLock | العازلة | 0:00:13
| 14 | كاتب الخلفية | | IO | DataFileWrite | 0:00:12
| 15 | checkpointer | | IO | DataFileWrite | 0:00:11
| 16 | كاتب الخط | | LWLock | WALWriteLock | 0:00:09
| 17 | checkpointer | | LWLock | WALWriteLock | 0:00:06
| 18 | كاتب الخلفية | | LWLock | WALWriteLock | 0:00:06
| 19 | كاتب الخط | | IO | WALInitWrite | 0:00:02
| 20 | عامل فراغ تلقائي | tdb1 | LWLock | WALWriteLock | 0:00:02
| 21 | كاتب الخط | | IO | WALInitSync | 0:00:02
| 22 | عامل فراغ تلقائي | tdb1 | IO | DataFileRead | 0:00:01
| 23 | checkpointer | | IO | ControlFileSyncUpdate | 0:00:01
| 24 | كاتب الخلفية | | IO | الكتابة | 0:00:01
| 25 | كاتب الخلفية | | IO | DataFileFlush | 0:00:01
| 26 | checkpointer | | IO | SLRUFlushSync | 0:00:01
| 27 | عامل فراغ تلقائي | tdb1 | IO | الكتابة | 0:00:01
| 28 | checkpointer | | IO | DataFileSync | 0:00:01
+ ----- + ----------------------------- + ---------- + - ------------------ + ---------------------- + -------- ------------
الانتظار ل SQL - توقعات للاستعلامات الفردية التي كتبها queryid
تحقيق SELECT queryid , datname , wait_event_type , wait_event , get_query_waiting_duration( queryid , wait_event_type , wait_event , pg_stat_history_begin+(current_hour_diff * interval '1 hour') , pg_stat_history_end+(current_hour_diff * interval '1 hour') ) as duration FROM activity_hist.archive_pg_stat_activity aa WHERE timepoint BETWEEN pg_stat_history_begin+(current_hour_diff * interval '1 hour') AND pg_stat_history_end+(current_hour_diff * interval '1 hour') AND backend_type = 'client backend' AND wait_event_type IS NOT NULL AND queryid IS NOT NULL GROUP BY queryid , datname , wait_event_type , wait_event ORDER BY 1 , 5 DESC
مثال + ----- + ------------------------- + ---------- + ------ -------------- + -------------------- + -------------- ------ + --------------------
| # | queryid | dbname | wait_event_type | wait_event | في انتظار | مجموع
| | | | | | المدة | مدة
+ ----- + ------------------------- + ---------- + ------ -------------- + -------------------- + -------------- ------ + --------------------
| 1 | -8247416849404883188 | tdb1 | العميل | ClientRead | 00: 00: 02 |
| 2 | -6572922443698419129 | tdb1 | العميل | ClientRead | 00: 00: 05 |
| 3 | -6572922443698419129 | tdb1 | IO | DataFileRead | 00: 00: 01 |
| 4 | -5917408132400665328 | tdb1 | العميل | ClientRead | 00: 00: 04 |
| 5 | -4091009262735781873 | tdb1 | العميل | ClientRead | 00: 00: 03 |
| 6 | -1473395109729441239 | tdb1 | العميل | ClientRead | 00: 00: 01 |
| 7 | 28942442626229688 | tdb1 | IO | BufFileWrite | 00: 01: 34 | 0:46:06
| 8 | 28942442626229688 | tdb1 | LWLock | العازلة | 00: 01: 05 | 0:46:06
| 9 | 28942442626229688 | tdb1 | IO | DataFileRead | 00: 00: 44 | 0:46:06
| 10 | 28942442626229688 | tdb1 | IO | BufFileRead | 00: 00: 37 | 0:46:06
| 11 | 28942442626229688 | tdb1 | LWLock | buffer_io | 00: 00: 35 | 0:46:06
| 12 | 28942442626229688 | tdb1 | العميل | ClientRead | 00: 00: 05 | 0:46:06
| 13 | 28942442626229688 | tdb1 | IPC | MessageQueueReceive | 00: 00: 03 | 0:46:06
| 14 | 28942442626229688 | tdb1 | IPC | BgWorkerShutdown | 00: 00: 01 | 0:46:06
| 15 | 389015618226997618 | tdb1 | قفل | معاملة | 03: 55: 09 | 4:14:15
| 16 | 389015618226997618 | tdb1 | IO | DataFileRead | 03: 23: 09 | 4:14:15
| 17 | 389015618226997618 | tdb1 | LWLock | العازلة | 00: 12: 09 | 4:14:15
| 18 | 389015618226997618 | tdb1 | LWLock | buffer_io | 00: 10: 18 | 4:14:15
| 19 | 389015618226997618 | tdb1 | قفل | tuple | 00: 00: 35 | 4:14:15
| 20 | 389015618226997618 | tdb1 | LWLock | WALWriteLock | 00: 00: 02 | 4:14:15
| 21 | 389015618226997618 | tdb1 | IO | DataFileWrite | 00: 00: 01 | 4:14:15
| 22 | 389015618226997618 | tdb1 | LWLock | SyncScanLock | 00: 00: 01 | 4:14:15
| 23 | 389015618226997618 | tdb1 | العميل | ClientRead | 00: 00: 01 | 4:14:15
| 24 | 734234407411547467 | tdb1 | العميل | ClientRead | 00: 00: 11 |
| 25 | 734234407411547467 | tdb1 | LWLock | العازلة | 00: 00: 05 |
| 26 | 734234407411547467 | tdb1 | IO | DataFileRead | 00: 00: 02 |
| 27 | 1237430309438971376 | tdb1 | LWLock | العازلة | 00: 02: 18 | 2:45:40
| 28 | 1237430309438971376 | tdb1 | IO | DataFileRead | 00: 00: 27 | 2:45:40
| 29 | 1237430309438971376 | tdb1 | العميل | ClientRead | 00: 00: 02 | 2:45:40
| 30 | 2404820632950544954 | tdb1 | العميل | ClientRead | 00: 00: 01 |
| 31 | 2515308626622579467 | tdb1 | العميل | ClientRead | 00: 00: 02 |
| 32 | 4710212362688288619 | tdb1 | LWLock | العازلة | 00: 03: 08 | 2:18:21
| 33 | 4710212362688288619 | tdb1 | IO | DataFileRead | 00: 00: 22 | 2:18:21
| 34 | 4710212362688288619 | tdb1 | العميل | ClientRead | 00: 00: 06 | 2:18:21
| 35 | 4710212362688288619 | tdb1 | LWLock | buffer_io | 00: 00: 02 | 2:18:21
| 36 | 9150846928388977274 | tdb1 | IO | DataFileRead | 00: 01: 19 |
| 37 | 9150846928388977274 | tdb1 | LWLock | العازلة | 00: 00: 34 |
| 38 | 9150846928388977274 | tdb1 | العميل | ClientRead | 00: 00: 10 |
| 39 | 9150846928388977274 | tdb1 | LWLock | buffer_io | 00: 00: 01 |
+ ----- + ------------------------- + ---------- + ------ -------------- + -------------------- + -------------- ------ + --------------------
إحصائيات SQL عميل - استعلامات TOP
طلبات الاستلام مرة أخرى ، ومع ذلك ، تافهة وتوفير مساحة ، لا تعطى.
أمثلة + ------------------------------------------------- -----------------------------------
| عميل SQL مرتبة حسب الوقت المنقضي
+ -------------------- + ---------- + ---------- + ------ ---- + ---------- + ---------- + --------------------
| الوقت المنقضي | مكالمات | ٪ dbtime | ٪ وحدة المعالجة المركزية | ٪ IO | dbname | queryid
+ -------------------- + ---------- + ---------- + ------ ---- + ---------- + ---------- + --------------------
| 04: 14: 15 | 19 | 3.1 | 10.83 | 11.52 | tdb1 | 389015618226997618
| 02: 45: 40 | 746 | 2.02 | 4.23 | 0.08 | tdb1 | 1237430309438971376
| 02: 18: 21 | 749 | 1.69 | 3.39 | 0.1 | tdb1 | 4710212362688288619
| 00: 46: 06 | 375 | 0.56 | 0.94 | 0.41 | tdb1 | 28942442626229688
+ -------------------- + ---------- + ---------- + ------ ---- + ---------- + ---------- + --------------------
| عميل SQL مرتبة حسب وقت وحدة المعالجة المركزية
+ -------------------- + ---------- + ---------- + ------ ---- + ---------- + ---------- + ---------- + ------------ --------
| وقت وحدة المعالجة المركزية | مكالمات | ٪ dbtime | total_time | ٪ وحدة المعالجة المركزية | ٪ IO | dbname | queryid
+ -------------------- + ---------- + ---------- + ------ ---- + ---------- + ---------- + ---------- + ------------ --------
| 02: 59: 49 | 19 | 3.1 | 04: 14: 15 | 10.83 | 11.52 | tdb1 | 389015618226997618
| 01: 10: 12 | 746 | 2.02 | 02: 45: 40 | 4.23 | 0.08 | tdb1 | 1237430309438971376
| 00: 56: 15 | 749 | 1.69 | 02: 18: 21 | 3.39 | 0.1 | tdb1 | 4710212362688288619
| 00: 15: 35 | 375 | 0.56 | 00: 46: 06 | 0.94 | 0.41 | tdb1 | 28942442626229688
+ -------------------- + ---------- + ---------- + ------ ---- + ---------- + ---------- + ---------- + ------------ --------
| عميل SQL مرتبة حسب المستخدم I / O وقت الانتظار
+ -------------------- + ---------- + ---------- + ------ ---- + ---------- + ---------- + ---------- + ------------ --------
| وقت io_wait | مكالمات | ٪ dbtime | total_time | ٪ وحدة المعالجة المركزية | ٪ IO | dbname | queryid
+ -------------------- + ---------- + ---------- + ------ ---- + ---------- + ---------- + ---------- + ------------ --------
| 03: 23: 10 | 19 | 3.1 | 04: 14: 15 | 10.83 | 11.52 | tdb1 | 389015618226997618
| 00: 02: 54 | 375 | 0.56 | 00: 46: 06 | 0.94 | 0.41 | tdb1 | 28942442626229688
| 00: 00: 27 | 746 | 2.02 | 02: 45: 40 | 4.23 | 0.08 | tdb1 | 1237430309438971376
| 00: 00: 22 | 749 | 1.69 | 02: 18: 21 | 3.39 | 0.1 | tdb1 | 4710212362688288619
+ -------------------- + ---------- + ---------- + ------ ---- + ---------- + ---------- + ---------- + ------------ --------
| عميل SQL مرتبة حسب قراءات المخازن المؤقتة المشتركة
+ -------------------- + ---------- + ---------- + ------ ---- + ---------- + ---------- + ---------- + ------------ --------
| يقرأ مخازن | مكالمات | ٪ dbtime | total_time | ٪ وحدة المعالجة المركزية | ٪ IO | dbname | queryid
+ -------------------- + ---------- + ---------- + ------ ---- + ---------- + ---------- + ---------- + ------------ --------
| 1056388566 | 19 | 3.1 | 04: 14: 15 | 10.83 | 11.52 | tdb1 | 389015618226997618
| 11709251 | 375 | 0.56 | 00: 46: 06 | 0.94 | 0.41 | tdb1 | 28942442626229688
| 3439004 | 746 | 2.02 | 02: 45: 40 | 4.23 | 0.08 | tdb1 | 1237430309438971376
| 3373330 | 749 | 1.69 | 02: 18: 21 | 3.39 | 0.1 | tdb1 | 4710212362688288619
+ -------------------- + ---------- + ---------- + ------ ---- + ---------- + ---------- + ---------- + ------------ --------
| عميل SQL مرتبة حسب القرص يقرأ الوقت
+ -------------------- + ---------- + ---------- + ------ ---- + ---------- + ---------- + ---------- + ------------ --------
| قراءة الوقت | مكالمات | ٪ dbtime | total_time | ٪ وحدة المعالجة المركزية | ٪ IO | dbname | queryid
+ -------------------- + ---------- + ---------- + ------ ---- + ---------- + ---------- + ---------- + ------------ --------
| 02: 16: 30 | 19 | 3.1 | 04: 14: 15 | 10.83 | 11.52 | tdb1 | 389015618226997618
| 00: 04: 50 | 375 | 0.56 | 00: 46: 06 | 0.94 | 0.41 | tdb1 | 28942442626229688
| 00: 01: 10 | 749 | 1.69 | 02: 18: 21 | 3.39 | 0.1 | tdb1 | 4710212362688288619
| 00: 00: 57 | 746 | 2.02 | 02: 45: 40 | 4.23 | 0.08 | tdb1 | 1237430309438971376
+ -------------------- + ---------- + ---------- + ------ ---- + ---------- + ---------- + ---------- + ------------ --------
| عميل SQL مرتبة حسب عمليات الإعدام
+ -------------------- + ---------- + ---------- + ------ ---- + ---------- + ---------- + ---------- + ------------ --------
| مكالمات | الصفوف | ٪ dbtime | total_time | ٪ وحدة المعالجة المركزية | ٪ IO | dbname | queryid
+ -------------------- + ---------- + ---------- + ------ ---- + ---------- + ---------- + ---------- + ------------ --------
| 749 | 749 | 1.69 | 02: 18: 21 | 3.39 | 0.1 | tdb1 | 4710212362688288619
| 746 | 746 | 2.02 | 02: 45: 40 | 4.23 | 0.08 | tdb1 | 1237430309438971376
| 375 | 0 | 0.56 | 00: 46: 06 | 0.94 | 0.41 | tdb1 | 28942442626229688
| 19 | 19 | 3.1 | 04: 14: 15 | 10.83 | 11.52 | tdb1 | 389015618226997618
+ -------------------- + ---------- + ---------- + ------ ---- + ---------- + ---------- + ---------- + ------------ --------
يؤدي
باستخدام الطلبات المقدمة والتقرير الناتج عنها ، يمكنك الحصول على صورة أكثر اكتمالاً لتحليل وحل مشكلات تدهور الأداء للطلبات الفردية والمجموعة بأكملها.
تنمية
حتى الآن ، خطط التطوير هي كما يلي:
- تكملة الإبلاغ مع سجل القفل. يتم اختبار الطلبات وسيتم تقديمها قريبًا.
- استخدم ملحق TimescaleDB لتخزين محفوظات pg_stat_activity و pg_locks.
- قم بإعداد حل الدفعات على جيثب للنشر الشامل على قواعد الإنتاج.
أن تستمر ...