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

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

چگونه از Index Monitoring در اوراکل استفاده کنیم؟ | راهنمای بهینه سازی کوئری

مقدمه : Index Monitoring در اوراکل چه اهمیتی دارد؟

ایندکس‌ها در Oracle Database نقش کلیدی در بهینه‌سازی عملکرد کوئری‌ها دارند.

اما برخی ایندکس‌ها ممکن است غیرضروری باشند و فقط فضای ذخیره‌سازی را اشغال کرده و عملکرد DML (INSERT, UPDATE, DELETE) را کند کنند.

Index Monitoring یکی از ابزارهای مفید اوراکل است که به شما کمک می‌کند ایندکس‌های بلااستفاده را شناسایی و در صورت نیاز حذف کنید.

در این مقاله، نحوه فعال‌سازی، مشاهده و غیرفعال‌سازی Index Monitoring را بررسی خواهیم کرد تا بتوانید پایگاه داده خود را بهینه‌سازی کنید.

اگر می خواهید در مورد با انواع ایندکس در اوراکل بیشتر آشنا بشید و یاد بگیرید از چه ایندکسی برای چه کوئری استفاده کرد پیشنهاد می شود نوشته زیر را مطالعه کنید:

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

Index Monitoring در اوراکل چیست؟

Index Monitoring یا پایش ایندکس‌ها در اوراکل به شما امکان می‌دهد بررسی کنید که آیا یک ایندکس در اجرای کوئری‌ها استفاده شده است یا خیر.

این قابلیت به شما کمک می‌کند ایندکس‌های غیرضروری را شناسایی و برای افزایش کارایی دیتابیس، آن‌ها را حذف کنید.

فعال‌سازی Index Monitoring در اوراکل

برای فعال‌سازی مانیتورینگ یک ایندکس خاص، از دستور زیر استفاده کنید:

				
					ALTER INDEX index_name MONITORING USAGE;
				
			

🔹 مثال

				
					ALTER INDEX employees_idx MONITORING USAGE;
				
			

نکته: بعد از اجرای این دستور، اوراکل شروع به مانیتور کردن ایندکس خواهد کرد.

بررسی وضعیت استفاده از ایندکس در اوراکل

بعد از مدتی که مانیتورینگ فعال است، می‌توان مشاهده کرد که آیا ایندکس مورد استفاده قرار گرفته یا خیر. برای این کار، از ویوی V$OBJECT_USAGE استفاده کنید:

				
					SELECT INDEX_NAME, TABLE_NAME, USED, MONITORING 
FROM V$OBJECT_USAGE
WHERE INDEX_NAME = 'EMPLOYEES_IDX';
				
			

🔹 توضیح خروجی: نمایش وضعیت Index Monitoring در اوراکل

INDEX_NAME TABLE_NAME USED MONITORING
EMPLOYEES_IDX EMPLOYEES YES YES
ORDERS_IDX ORDERS NO YES
PRODUCTS_IDX PRODUCTS YES NO
  • USED: اگر مقدار YES باشد، یعنی ایندکس حداقل یک بار استفاده شده است. اگر NO باشد، احتمالاً نیازی به آن ندارید.
  • MONITORING: نشان می‌دهد که مانیتورینگ فعال (YES) یا غیرفعال (NO) است.

غیرفعال‌سازی Index Monitoring

برای غیرفعال کردن مانیتورینگ یک ایندکس، دستور زیر را اجرا کنید:

				
					ALTER INDEX index_name NOMONITORING USAGE;
				
			

🔹 مثال

				
					ALTER INDEX employees_idx NOMONITORING USAGE;
				
			

نکته: پس از اجرای این دستور، اطلاعات مانیتورینگ از بین می‌رود، پس قبل از غیرفعال‌سازی، گزارش‌ها را بررسی کنید.

حذف ایندکس‌های بلااستفاده در اوراکل

پس از بررسی، اگر ایندکسی استفاده نشده باشد، می‌توانید آن را حذف کنید تا فضای پایگاه داده بهینه شود:

				
					DROP INDEX index_name;

				
			

🔹 مثال

				
					DROP INDEX employees_idx;
				
			

نکته: قبل از حذف ایندکس، مطمئن شوید که واقعاً به آن نیازی ندارید.

مزایای Index Monitoring در اوراکل

افزایش کارایی پایگاه داده: شناسایی و حذف ایندکس‌های غیرضروری منجر به بهینه‌سازی عملکرد DML (INSERT, UPDATE, DELETE) می‌شود.
کاهش مصرف فضای ذخیره‌سازی: حذف ایندکس‌های بلااستفاده فضای اشغال‌شده را آزاد می‌کند.
بهینه‌سازی استراتژی ایندکس‌گذاری: تصمیم‌گیری بهتر درباره ایندکس‌هایی که واقعاً نیاز هستند.

نکات مهم درباره Index Monitoring در اوراکل

  • Index Monitoring به‌صورت جداگانه برای هر ایندکس فعال می‌شود.
  • این مانیتورینگ فقط دستورات SELECT را بررسی می‌کند، نه عملیات INSERT، UPDATE یا DELETE.
  • با غیرفعال کردن مانیتورینگ، اطلاعات جمع‌آوری‌شده پاک می‌شود.
  • اگر سرور پایگاه داده ریستارت شود، اطلاعات مانیتورینگ حذف خواهد شد.

سوالات متداول درباره Index Monitoring در اوراکل

برای بررسی استفاده از ایندکس در اوراکل، می‌توانید از ویوی V$OBJECT_USAGE استفاده کنید.

دستور زیر اطلاعات مربوط به ایندکس را نمایش می‌دهد:

SELECT INDEX_NAME, TABLE_NAME, USED, MONITORING
FROM V$OBJECT_USAGE
WHERE INDEX_NAME = ‘EMPLOYEES_IDX’;

اگر مقدار ستون USED برابر YES باشد، یعنی ایندکس حداقل یک بار استفاده شده است،

و اگر NO باشد، احتمالاً ایندکس غیرضروری است.

خیر، Index Monitoring تأثیر محسوسی بر عملکرد دیتابیس ندارد، زیرا اوراکل فقط بررسی می‌کند که آیا ایندکس در کوئری‌های SELECT استفاده شده است یا نه.

اما توجه داشته باشید که این قابلیت عملیات DML (INSERT, UPDATE, DELETE) را بررسی نمی‌کند.

خیر، اطلاعات مربوط به Index Monitoring در ویوی V$OBJECT_USAGE موقتی هستند و با ریستارت شدن دیتابیس پاک می‌شوند.

اگر می‌خواهید از این اطلاعات برای تصمیم‌گیری استفاده کنید، قبل از ریستارت سرور، آن‌ها را در یک جدول ذخیره کنید.

خیر، پس از حذف ایندکس با دستور DROP INDEX، امکان بازیابی آن به‌صورت مستقیم وجود ندارد.

اگر احتمال می‌دهید که ایندکس موردنیاز باشد، می‌توانید ابتدا اسکریپت CREATE INDEX را ذخیره کنید یا قبل از حذف، Index Monitoring را برای مدت کافی فعال نگه دارید تا مطمئن شوید که ایندکس بلااستفاده است.

نتیجه‌گیری

Index Monitoring در اوراکل یک ابزار کاربردی برای بهینه‌سازی دیتابیس است.

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

مراحل کلیدی:

  1. فعال‌سازی مانیتورینگ با ALTER INDEX ... MONITORING USAGE
  2. مشاهده وضعیت ایندکس در V$OBJECT_USAGE
  3. در صورت نیاز، غیرفعال‌سازی مانیتورینگ با ALTER INDEX ... NOMONITORING USAGE
  4. حذف ایندکس‌های غیرضروری با DROP INDEX

🔹 اگر می‌خواهید پایگاه داده اوراکل خود را بهینه کنید، Index Monitoring یکی از ابزارهای ضروری است که باید بشناسید!

میثم راد

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

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

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