pg_stat_activity یک view سیستمی مهم در PostgreSQL است که اطلاعات در لحظه ای را در مورد اتصالات پایگاه داده فعلی و پرس و جوهای در حال اجرا ارائه می دهد. این view برای عیبیابی مشکلات عملکرد، شناسایی تراکنشهای طولانیمدت یا Idle، و مدیریت سلامت کلی پایگاه داده بسیار مفید است.
معرفی معماری پایگاه داده Postgresql
نمای pg_stat_activity شامل چندین فیلد مهم است که عبارتند از:
datid: OID پایگاه داده ای که backend به آن متصل است.
datname: نام پایگاه داده ای که backend به آن متصل است.
pid: شناسه فرآیند backend.
useysid: OID کاربری که backend را راه اندازی کرده است.
usename: نام کاربری که Backend را راه اندازی کرده است.
application_name: نام اپلیکیشنی که به backend متصل است.
client_addr: آدرس IP کلاینت متصل به backend.
client_port: شماره پورت کلاینت متصل به backend.
backend_start: مهر زمانی که backend شروع شد.
xact_start: زمان شروع تراکنش جاری.
query_start: زمان شروع پرس و جو فعلی.
state_change: مهر زمانی آخرین تغییر حالت.
state: وضعیت فعلی backend (فعال/بیکار/بیکار در تراکنش).
query: جدیدترین پرس و جوی فعلی/در حال اجرا از backend.
جهت دریافت خدمات مشاوره، آموزش و نگهداری پایگاه داده Postgresql با ما در ارتباط باشد
pg_stat_activity معمولاً برای چندین هدف نظارتی و تشخیصی استفاده می شود، مانند:
نظارت بر پرس و جوهای فعال: برای دریافت لیستی از پرس و جوهای در حال اجرا، می توانید از پرس و جو زیر استفاده کنید:
SELECT pid, query, state, query_start
FROM pg_stat_activity
WHERE state = ‘active’:
شناسایی تراکنشهای Idle: برای شناسایی تراکنشهای Idle که میتوانند باعث مشکلات عملکردی شوند، از این کوئری استفاده کنید:
SELECT pid, query, state, xact_start
FROM pg_stat_activity
WHERE state = ‘idle in transaction’;
پایان دادن به پرس و جوهای طولانی مدت: برای خاتمه دادن به پرس و جوهای طولانی مدت یا Backend ، می توانید از تابع ()pg_terminate_backend استفاده کنید. به عنوان مثال، برای پایان دادن به یک Backend با شناسه فرآیند ۱۲۳۴۵:
SELECT pg_terminate_backend(12345);
درک و استفاده از View سیستم pg_stat_activity هنگام حفظ عملکرد و سلامت پایگاه داده PostgreSQL حیاتی است. این VIew اطلاعات ارزشمندی را در مورد اتصالات و پرس و جوهای پایگاه داده به شما ارائه می دهد و به شما امکان می دهد برای حفظ یک سیستم قوی و با عملکرد بهینه، نظارت کنید، تشخیص دهید و مطابق با آن عمل کنید.