ESC را فشار دهید تا بسته شود

زمیوس آموزش، یادگیری و سرگرمی

Dynamic Performance Views در Oracle چیست و چه کاربردی دارد؟

Dynamic Performance View یا همان ویوهای V$ در Oracle، جداول سیستمی فقط خواندنی هستند که اطلاعات لحظه‌ای و دقیق از وضعیت دیتابیس، کوئری‌ها، سشن‌ها، حافظه و عملکرد سیستم ارائه می‌دهند.

این ویوها برای مانیتورینگ، عیب‌یابی و بهینه‌سازی عملکرد دیتابیس استفاده می‌شوند.

در این مقاله آموزش اوراکل از بخش آموزش اوراکل ادمین ، با زبانی ساده و کاربردی، دنیای قدرتمند این ویوها را باز می‌کنیم تا درک عمیق‌تری از مانیتورینگ و عیب‌یابی در Oracle پیدا کنید.

آیا می‌خوای بدونی چطوری یک دیتابیس Oracle رو درست راه‌اندازی یا خاموش کنی؟ ، پیشنهاد می شود نوشته زیر را مطالعه کنید:

در این نوشته شما می خوانید

Dynamic Performance View چیست؟

در دیتابیس اوراکل، وقتی می‌خواهیم بدانیم «الان دقیقاً چه اتفاقی در سیستم می‌افتد؟»، به سراغ Dynamic Performance Viewها می‌رویم.

این ویوها با پیشوند معروف V$ شناخته می‌شوند و در واقع مثل پنجره‌ای هستند که وضعیت فعلی دیتابیس را لحظه‌ای نمایش می‌دهند.

به‌جای اینکه وارد ساختارهای پیچیده حافظه و عملکرد Oracle شویم، این ویوها اطلاعات را به شکل مرتب و قابل‌درک در اختیار ما می‌گذارند.

مثال‌هایی از این ویوها:

  • V$SESSION برای مشاهده‌ی وضعیت سشن‌های فعال
  • V$SQL برای بررسی کوئری‌های اجرا شده
  • V$SYSTEM_EVENT برای تحلیل Eventهای منتظر نگه‌داشتن سیستم

🔄 تفاوت بین V$ و GV$

  • V$ برای نمایش اطلاعات مربوط به همین Instance فعلی است.
  • GV$ اطلاعات را از همه Instanceها در محیط خوشه‌ای (Oracle RAC) جمع‌آوری می‌کند.

⚙️ ویوهای V$ چگونه کار می‌کنند؟

این ویوها در اصل روی جداول مخفی و داخلی اوراکل با نام X$ ساخته شده‌اند. برای مثال:

  • V$SESSION اطلاعات خودش را از X$KSUSE می‌گیرد.
  • V$SQL از X$KGLCURSOR داده می‌خواند.

خود جداول X$ برای کاربران عادی قابل مشاهده نیستند، اما ویوهای V$ به‌صورت خوانا و کاربردی در دسترس قرار گرفته‌اند.

🎯 فهرست Dynamic Performance Viewهای مهم در Oracle

نام ویو کاربرد اصلی
V$SESSION وضعیت سشن‌های کاربر
V$SQL بررسی کوئری‌های اجرا شده
V$INSTANCE اطلاعات عمومی instance
V$PROCESS وضعیت پردازش‌های داخلی
V$SYSTEM_EVENT تحلیل Eventهای منتظر نگه‌داشتن
V$LOG اطلاعات Redo Logها
V$TEMPSEG_USAGE بررسی مصرف Temporary Segment
V$DATAFILE اطلاعات فایل‌های فیزیکی دیتابیس

🧪 مثال‌هایی برای استفاده از Dynamic Performance View

🔸 نمایش سشن‌های فعال:

				
					SELECT SID, SERIAL#, STATUS, USERNAME, OSUSER
FROM V$SESSION
WHERE STATUS = 'ACTIVE';

				
			

🔸 پیدا کردن کوئری‌های کند:

				
					SELECT SQL_TEXT, ELAPSED_TIME/1000000 AS elapsed_seconds
FROM V$SQL
WHERE ELAPSED_TIME > ۵۰۰۰۰۰۰
ORDER BY ELAPSED_TIME DESC;

				
			

🔸 بررسی Eventهایی که بیشترین زمان انتظار دارند::

				
					SELECT EVENT, TOTAL_WAITS, TIME_WAITED
FROM V$SYSTEM_EVENT
ORDER BY TIME_WAITED DESC;

				
			

🔐 سطح دسترسی و نکات امنیتی

به‌صورت پیش‌فرض، این ویوها فقط برای کاربران با دسترسی DBA (مثل SYS و SYSTEM) قابل مشاهده هستند. برای اعطای دسترسی به کاربر عادی:

				
					GRANT SELECT ON V_$SESSION TO my_user;

				
			

نکته: ویو V$SESSION در واقع یک Synonym برای V_$SESSION است.

📈 کاربردهای Dynamic Performance View

ویوهای V$ پایه و اساس بسیاری از ابزارهای مانیتورینگ اوراکل هستند، مثل:

  • Oracle Enterprise Manager
  • SQL Developer Performance Hub
  • AWR و ASH Reports

همه این ابزارها در پشت‌صحنه، داده‌های خود را از همین ویوها دریافت می‌کنند.

❗ هشدار مهم

  • این ویوها فقط قابل خواندن هستند.
  • نمی‌توان آن‌ها را Index یا ویرایش کرد.
  • استفاده‌ی بیش‌ازحد از آن‌ها در سیستم‌هایی با بار سنگین ممکن است به کندی سیستم منجر شود.

سوالات متداول درباره Dynamic Performance View در Oracle

V$ فقط اطلاعات مربوط به همان instance فعلی دیتابیس را نشان می‌دهد، در حالی که GV$ (مخفف Global View) اطلاعات تمام instanceها را در محیط Oracle RAC (Real Application Cluster) نمایش می‌دهد.

اگر دیتابیس شما خوشه‌ای نیست، معمولاً V$ کافی است.

خیر. ویوهای V$ فقط قابل خواندن (Read-Only) هستند.

آن‌ها نمایشی از وضعیت زنده حافظه و عملکرد سیستم هستند و قابل ویرایش یا آپدیت نیستند.

هر تغییری باید در سطح تنظیمات دیتابیس انجام شود، نه در این ویوها.

برای شناسایی کوئری‌های کند یا پُر مصرف، ویو V$SQL بهترین گزینه است.

این ویو اطلاعاتی مانند SQL_TEXT، مدت زمان اجرا (ELAPSED_TIME) و دفعات اجرا (EXECUTIONS) را در اختیار شما قرار می‌دهد.

برای دادن دسترسی فقط خواندنی به کاربری غیر از SYS یا DBA، می‌توانید از دستور زیر استفاده کنید:

GRANT SELECT ON V_$SESSION TO my_user;

توجه داشته باشید که V$SESSION در واقع Synonymی برای V_$SESSION است، پس دسترسی باید به نسخه اصلی داده شود.

📦 جمع‌بندی

اگر می‌خواهید اوراکل را بهتر بشناسید و مثل یک DBA حرفه‌ای رفتار کنید، باید با ویوهای V$ مثل یک ابزار اصلی برخورد کنید.

این ویوها اطلاعات لحظه‌ای، دقیق و فنی از وضعیت دیتابیس ارائه می‌دهند و برای تحلیل مشکلات، مانیتورینگ عملکرد و بهینه‌سازی ضروری هستند.

📥 اگر سوالی داری در این ویووهای V$ داری، در بخش کامنت‌ها بپرس.

سؤالی درباره این مقاله داری؟

اگر نکته‌ای در این مقاله برات مبهم بود یا خواستی بیشتر بدونی، همین حالا برام بنویس تا دقیق و صمیمی پاسخت رو بدم — مثل یه گفت‌وگوی واقعی 💬

برو به صفحه پرسش و پاسخ

میثم راد

من یه برنامه نویسم که حسابی با دیتابیس اوراکل رفیقم! از اونایی ام که تا چیزی رو کامل نفهمم،ول کن نیستم، یادگرفتن برام مثل بازیه، و نوشتن اینجا کمک می کنه تا چیزایی که یاد گرفتم رو با بقیه به شریک بشم، با هم پیشرفت کنیم.

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *