CodeShot
Execution Plan1 دقیقه مطالعه

Execution Plan چیست؟

نقشه‌ای که دیتابیس قبل از اجرای یک Query تولید می‌کند و نشان می‌دهد داده از کجا خوانده و چطور پردازش می‌شود — ابزار اصلی تشخیص علت کندی Query.

چرا مهم است؟

بدون خواندن Execution Plan، بهینه‌سازی Query صرفاً حدس‌زدن است؛ Execution Plan دقیقاً نشان می‌دهد کدام بخش Query گران‌ترین است و چرا.

تعریف

Execution Plan خروجی Query Optimizer دیتابیس است: نشان می‌دهد هر جدول چطور خوانده می‌شود (Scan یا Seek)، JOINها با کدام الگوریتم انجام می‌شوند و هزینه نسبی هر مرحله چقدر است.

نمونه خواندن Plan (SQL Server)

SET STATISTICS IO ON;
SELECT o.Id, c.Name
FROM Orders o
JOIN Customers c ON c.Id = o.CustomerId
WHERE o.Status = 'Paid';

با فعال‌کردن «Include Actual Execution Plan» در SSMS یا Azure Data Studio، خروجی گرافیکی نشان می‌دهد کدام عملگر (Operator) بیشترین درصد هزینه را دارد.

عملگرهای کلیدی برای توجه

  • Table Scan / Clustered Index Scan: کل جدول خوانده می‌شود — معمولاً نشانه نبود Index مناسب.
  • Index Seek: مستقیم به ردیف موردنیاز رسیده — حالت مطلوب.
  • Key Lookup: بعد از Index Seek، دیتابیس مجبور شده برای ستون‌های باقی‌مانده دوباره سراغ جدول اصلی برود — نشانه نیاز به Covering Index.

اشتباه رایج

❌ فقط نگاه‌کردن به «هزینه درصدی» بین چند Query در یک Batch به‌عنوان معیار قطعی — این عدد نسبی و تخمینی است؛ برای مقایسه واقعی باید زمان اجرا و IO واقعی (STATISTICS TIME/IO) را هم بررسی کرد.

منبع و مطالعه بیشتر

خلاصه

Execution Plan نشان می‌دهد دیتابیس چطور یک Query را اجرا می‌کند: کدام Scan/Seek استفاده شده و هزینه هر مرحله چقدر است. Key Lookup مکرر معمولاً نشانه نیاز به Covering Index است. مرجع کامل: Microsoft Learn و Brent Ozar.

این مطلب مفید بود؟
نشان کردن
مشاهده در Concept Hub ←