حالت FORCE_LAST_GOOD_PLAN = ON در Automatic Tuning SQL Server | آموزش SQL Server

حالت FORCE_LAST_GOOD_PLAN = ON در Automatic Tuning SQL Server

توسط admin | گروه SQL Server | 1405/05/10

نظرات 0

آموزش کامل حالت FORCE_LAST_GOOD_PLAN = ON در Automatic Tuning SQL Server

مقدمه و مسئله‌ای که این موضوع حل می‌کند

حالت FORCE_LAST_GOOD_PLAN = ON در Automatic Tuning SQL Server زمانی اهمیت پیدا می‌کند که مدیر پایگاه داده یا توسعه‌دهنده بخواهد درک اثر مقدار ON بر اصلاح خودکار Plan Regression و نحوه بازگشت از تصمیم موتور. این راهنما از تعریف پایه شروع می‌کند و سپس به روش مشاهده یا پیکربندی، Queryهای تشخیصی، خطاهای رایج و ملاحظات Performance می‌رسد.

پیش‌نیاز اصلی، دسترسی مناسب به SQL Server و شناخت اولیه از Query، Execution Plan و ساختار پایگاه داده است. در پایان می‌توانید خروجی «سیاست ON برای اجبار آخرین پلن خوب در سطح پایگاه داده» را با زمینه درست تفسیر کنید و به‌جای تغییر حدسی، یک تصمیم قابل بازگشت بگیرید.

دسترسی سریع

  1. تعریف، Scope و پیش‌نیاز
  2. روش اجرا یا مشاهده و اجزای کلیدی
  3. ده مثال عملی از پایه تا سناریوی Performance
  4. خطاها، Best Practices و چک‌لیست نهایی

تعریف و جایگاه فنی موضوع

حالت FORCE_LAST_GOOD_PLAN = ON در Automatic Tuning SQL Server بخشی از خانواده «راهنمای جامع تنظیم خودکار در SQL Server» است. نقش آن در این خانواده، تبدیل یک مسئله کلی به سیگنال یا تنظیمی مشخص است تا بتوان رفتار موتور را به‌صورت قابل اندازه‌گیری بررسی کرد. مفاهیم کلیدی این مقاله شامل FORCE_LAST_GOOD_PLAN، ON، Plan Regression، Query Store، Last Good Plan، Verification هستند.

جایگاه این موضوع را باید در کنار تنظیمات سطح Instance، سطح Database، Query Hintها و وضعیت واقعی Workload دید. استفاده درست یعنی ابتدا Scope را مشخص کنیم، سپس خروجی را در بازه زمانی معتبر بخوانیم و در نهایت هر تغییر را با معیارهایی مانند CPU، Duration، Throughput، IO و Regression بسنجیم.

حالت FORCE_LAST_GOOD_PLAN = ON در Automatic Tuning SQL Server؛ تصویر فنی شماره 1نمای اختصاصی از حالت FORCE_LAST_GOOD_PLAN = ON در Automatic Tuning SQL Server با تمرکز بر FORCE_LAST_GOOD_PLAN، ON، Plan Regression، Query Store، Last Good Plan حالت FORCE_LAST_GOOD_PLAN = ON در Automatic Tuning SQL ServerFORCE_LAST_GOOD_PLANONPlan RegressionQuery StoreLast Good PlanVerificationRevertنقشه مفهومی و ارتباط اجزای کلیدی

این تصویر، حالت FORCE_LAST_GOOD_PLAN = ON در Automatic Tuning SQL Server را از زاویه معماری و ارتباط اجزا نمایش می‌دهد و بر مفاهیم FORCE_LAST_GOOD_PLAN، ON، Plan Regression، Query Store تمرکز دارد.

نحو، پیکربندی و نوع نتیجه

الگوی پایه

SELECT name, desired_state_desc, actual_state_desc, reason_desc FROM sys.database_automatic_tuning_options;

اجزای مهم

  • FORCE_LAST_GOOD_PLAN: این جزء در تحلیل حالت FORCE_LAST_GOOD_PLAN = ON در Automatic Tuning SQL Server برای تعیین وضعیت، مرز اثر یا تفسیر خروجی استفاده می‌شود.
  • ON: این جزء در تحلیل حالت FORCE_LAST_GOOD_PLAN = ON در Automatic Tuning SQL Server برای تعیین وضعیت، مرز اثر یا تفسیر خروجی استفاده می‌شود.
  • Plan Regression: این جزء در تحلیل حالت FORCE_LAST_GOOD_PLAN = ON در Automatic Tuning SQL Server برای تعیین وضعیت، مرز اثر یا تفسیر خروجی استفاده می‌شود.
  • Query Store: این جزء در تحلیل حالت FORCE_LAST_GOOD_PLAN = ON در Automatic Tuning SQL Server برای تعیین وضعیت، مرز اثر یا تفسیر خروجی استفاده می‌شود.
  • Last Good Plan: این جزء در تحلیل حالت FORCE_LAST_GOOD_PLAN = ON در Automatic Tuning SQL Server برای تعیین وضعیت، مرز اثر یا تفسیر خروجی استفاده می‌شود.
  • Verification: این جزء در تحلیل حالت FORCE_LAST_GOOD_PLAN = ON در Automatic Tuning SQL Server برای تعیین وضعیت، مرز اثر یا تفسیر خروجی استفاده می‌شود.

رفتار ویژه و محدودیت‌ها

خروجی مورد انتظار «سیاست ON برای اجبار آخرین پلن خوب در سطح پایگاه داده» است. رفتار دقیق به نسخه SQL Server، Edition، مجوزها و وضعیت سرویس وابسته است. برای DMVها داده‌ها می‌توانند موقتی باشند؛ برای گزینه‌های پیکربندی نیز مقدار تنظیم‌شده و مقدار مؤثر باید جداگانه کنترل شود.

منطق اجرا و نکات فنی

جزء 1: FORCE_LAST_GOOD_PLAN

در تحلیل حالت FORCE_LAST_GOOD_PLAN = ON در Automatic Tuning SQL Server، مفهوم FORCE_LAST_GOOD_PLAN یک نشانه مستقل نیست؛ باید آن را با Plan Regression و Baseline بار کاری ترکیب کرد. این رویکرد از تغییرهای شتاب‌زده جلوگیری می‌کند و امکان مستندسازی دلیل تصمیم را فراهم می‌سازد.

جزء 2: ON

در تحلیل حالت FORCE_LAST_GOOD_PLAN = ON در Automatic Tuning SQL Server، مفهوم ON یک نشانه مستقل نیست؛ باید آن را با Query Store و Baseline بار کاری ترکیب کرد. این رویکرد از تغییرهای شتاب‌زده جلوگیری می‌کند و امکان مستندسازی دلیل تصمیم را فراهم می‌سازد.

جزء 3: Plan Regression

در تحلیل حالت FORCE_LAST_GOOD_PLAN = ON در Automatic Tuning SQL Server، مفهوم Plan Regression یک نشانه مستقل نیست؛ باید آن را با Last Good Plan و Baseline بار کاری ترکیب کرد. این رویکرد از تغییرهای شتاب‌زده جلوگیری می‌کند و امکان مستندسازی دلیل تصمیم را فراهم می‌سازد.

جزء 4: Query Store

در تحلیل حالت FORCE_LAST_GOOD_PLAN = ON در Automatic Tuning SQL Server، مفهوم Query Store یک نشانه مستقل نیست؛ باید آن را با Verification و Baseline بار کاری ترکیب کرد. این رویکرد از تغییرهای شتاب‌زده جلوگیری می‌کند و امکان مستندسازی دلیل تصمیم را فراهم می‌سازد.

حالت FORCE_LAST_GOOD_PLAN = ON در Automatic Tuning SQL Server؛ تصویر فنی شماره 2نمای اختصاصی از حالت FORCE_LAST_GOOD_PLAN = ON در Automatic Tuning SQL Server با تمرکز بر FORCE_LAST_GOOD_PLAN، ON، Plan Regression، Query Store، Last Good Plan حالت FORCE_LAST_GOOD_PLAN = ON در Automatic Tuning SQL ServerFORCE_LAST_GOOD_PLANمرحله 1ONمرحله 2Plan Regressionمرحله 3Query Storeمرحله 4Last Good Planمرحله 5VerificationRevertMonitoring

این تصویر، حالت FORCE_LAST_GOOD_PLAN = ON در Automatic Tuning SQL Server را از زاویه جریان اجرا از ورودی تا خروجی نمایش می‌دهد و بر مفاهیم FORCE_LAST_GOOD_PLAN، ON، Plan Regression، Query Store تمرکز دارد.

مثال‌های عملی از ساده تا پیشرفته

مثال 1: مشاهده پایه برای حالت FORCE_LAST_GOOD_PLAN = ON در Automatic Tuning SQL Server

در این سناریو، هدف آن است که مرحله 1 تحلیل حالت FORCE_LAST_GOOD_PLAN = ON در Automatic Tuning SQL Server را بدون تکیه بر حدس اجرا کنیم. Query زیر یک ورودی یا خروجی قابل مشاهده می‌سازد و به شما اجازه می‌دهد نتیجه را با زمان نمونه‌برداری، Scope و وضعیت Workload مرتبط کنید.

SELECT name, desired_state_desc, actual_state_desc, reason_desc FROM sys.database_automatic_tuning_options;
شاخصمقدار نمونهتفسیر
Example 1ONنتیجه باید در کنار Plan Regression بررسی شود
ScopeAutomatic Tuningاعتبار نتیجه به سطح اجرا و مجوز وابسته است

نکته کاربردی مثال 1: خروجی را در Repository مانیتورینگ با Timestamp ذخیره کنید و قبل از هر اقدام، اختلاف آن را با Baseline همان ساعت و همان نوع بار بسنجید. این کار برای حالت FORCE_LAST_GOOD_PLAN = ON در Automatic Tuning SQL Server احتمال تشخیص نادرست را کاهش می‌دهد.

مثال 2: تحلیل مرحله‌ای برای حالت FORCE_LAST_GOOD_PLAN = ON در Automatic Tuning SQL Server

در این سناریو، هدف آن است که مرحله 2 تحلیل حالت FORCE_LAST_GOOD_PLAN = ON در Automatic Tuning SQL Server را بدون تکیه بر حدس اجرا کنیم. Query زیر یک ورودی یا خروجی قابل مشاهده می‌سازد و به شما اجازه می‌دهد نتیجه را با زمان نمونه‌برداری، Scope و وضعیت Workload مرتبط کنید.

ALTER DATABASE CURRENT SET AUTOMATIC_TUNING (FORCE_LAST_GOOD_PLAN = ON);
شاخصمقدار نمونهتفسیر
Example 2Plan Regressionنتیجه باید در کنار Query Store بررسی شود
ScopeAutomatic Tuningاعتبار نتیجه به سطح اجرا و مجوز وابسته است

نکته کاربردی مثال 2: خروجی را در Repository مانیتورینگ با Timestamp ذخیره کنید و قبل از هر اقدام، اختلاف آن را با Baseline همان ساعت و همان نوع بار بسنجید. این کار برای حالت FORCE_LAST_GOOD_PLAN = ON در Automatic Tuning SQL Server احتمال تشخیص نادرست را کاهش می‌دهد.

مثال 3: تحلیل مرحله‌ای برای حالت FORCE_LAST_GOOD_PLAN = ON در Automatic Tuning SQL Server

در این سناریو، هدف آن است که مرحله 3 تحلیل حالت FORCE_LAST_GOOD_PLAN = ON در Automatic Tuning SQL Server را بدون تکیه بر حدس اجرا کنیم. Query زیر یک ورودی یا خروجی قابل مشاهده می‌سازد و به شما اجازه می‌دهد نتیجه را با زمان نمونه‌برداری، Scope و وضعیت Workload مرتبط کنید.

SELECT * FROM sys.dm_db_tuning_recommendations;
شاخصمقدار نمونهتفسیر
Example 3Query Storeنتیجه باید در کنار Last Good Plan بررسی شود
ScopeAutomatic Tuningاعتبار نتیجه به سطح اجرا و مجوز وابسته است

نکته کاربردی مثال 3: خروجی را در Repository مانیتورینگ با Timestamp ذخیره کنید و قبل از هر اقدام، اختلاف آن را با Baseline همان ساعت و همان نوع بار بسنجید. این کار برای حالت FORCE_LAST_GOOD_PLAN = ON در Automatic Tuning SQL Server احتمال تشخیص نادرست را کاهش می‌دهد.

مثال 4: تحلیل مرحله‌ای برای حالت FORCE_LAST_GOOD_PLAN = ON در Automatic Tuning SQL Server

در این سناریو، هدف آن است که مرحله 4 تحلیل حالت FORCE_LAST_GOOD_PLAN = ON در Automatic Tuning SQL Server را بدون تکیه بر حدس اجرا کنیم. Query زیر یک ورودی یا خروجی قابل مشاهده می‌سازد و به شما اجازه می‌دهد نتیجه را با زمان نمونه‌برداری، Scope و وضعیت Workload مرتبط کنید.

SELECT actual_state_desc, reason_desc FROM sys.database_automatic_tuning_options WHERE name=N'FORCE_LAST_GOOD_PLAN';
شاخصمقدار نمونهتفسیر
Example 4Last Good Planنتیجه باید در کنار Verification بررسی شود
ScopeAutomatic Tuningاعتبار نتیجه به سطح اجرا و مجوز وابسته است

نکته کاربردی مثال 4: خروجی را در Repository مانیتورینگ با Timestamp ذخیره کنید و قبل از هر اقدام، اختلاف آن را با Baseline همان ساعت و همان نوع بار بسنجید. این کار برای حالت FORCE_LAST_GOOD_PLAN = ON در Automatic Tuning SQL Server احتمال تشخیص نادرست را کاهش می‌دهد.

مثال 5: تحلیل مرحله‌ای برای حالت FORCE_LAST_GOOD_PLAN = ON در Automatic Tuning SQL Server

در این سناریو، هدف آن است که مرحله 5 تحلیل حالت FORCE_LAST_GOOD_PLAN = ON در Automatic Tuning SQL Server را بدون تکیه بر حدس اجرا کنیم. Query زیر یک ورودی یا خروجی قابل مشاهده می‌سازد و به شما اجازه می‌دهد نتیجه را با زمان نمونه‌برداری، Scope و وضعیت Workload مرتبط کنید.

SELECT q.query_id, p.plan_id, rs.avg_duration FROM sys.query_store_query AS q JOIN sys.query_store_plan AS p ON p.query_id=q.query_id JOIN sys.query_store_runtime_stats AS rs ON rs.plan_id=p.plan_id;
شاخصمقدار نمونهتفسیر
Example 5Verificationنتیجه باید در کنار Revert بررسی شود
ScopeAutomatic Tuningاعتبار نتیجه به سطح اجرا و مجوز وابسته است

نکته کاربردی مثال 5: خروجی را در Repository مانیتورینگ با Timestamp ذخیره کنید و قبل از هر اقدام، اختلاف آن را با Baseline همان ساعت و همان نوع بار بسنجید. این کار برای حالت FORCE_LAST_GOOD_PLAN = ON در Automatic Tuning SQL Server احتمال تشخیص نادرست را کاهش می‌دهد.

مثال 6: ساخت Snapshot برای حالت FORCE_LAST_GOOD_PLAN = ON در Automatic Tuning SQL Server

در این سناریو، هدف آن است که مرحله 6 تحلیل حالت FORCE_LAST_GOOD_PLAN = ON در Automatic Tuning SQL Server را بدون تکیه بر حدس اجرا کنیم. Query زیر یک ورودی یا خروجی قابل مشاهده می‌سازد و به شما اجازه می‌دهد نتیجه را با زمان نمونه‌برداری، Scope و وضعیت Workload مرتبط کنید.

ALTER DATABASE CURRENT SET QUERY_STORE = ON;
شاخصمقدار نمونهتفسیر
Example 6Revertنتیجه باید در کنار Monitoring بررسی شود
ScopeAutomatic Tuningاعتبار نتیجه به سطح اجرا و مجوز وابسته است

نکته کاربردی مثال 6: خروجی را در Repository مانیتورینگ با Timestamp ذخیره کنید و قبل از هر اقدام، اختلاف آن را با Baseline همان ساعت و همان نوع بار بسنجید. این کار برای حالت FORCE_LAST_GOOD_PLAN = ON در Automatic Tuning SQL Server احتمال تشخیص نادرست را کاهش می‌دهد.

مثال 7: تحلیل مرحله‌ای برای حالت FORCE_LAST_GOOD_PLAN = ON در Automatic Tuning SQL Server

در این سناریو، هدف آن است که مرحله 7 تحلیل حالت FORCE_LAST_GOOD_PLAN = ON در Automatic Tuning SQL Server را بدون تکیه بر حدس اجرا کنیم. Query زیر یک ورودی یا خروجی قابل مشاهده می‌سازد و به شما اجازه می‌دهد نتیجه را با زمان نمونه‌برداری، Scope و وضعیت Workload مرتبط کنید.

SELECT current_storage_size_mb, max_storage_size_mb, readonly_reason FROM sys.database_query_store_options;
شاخصمقدار نمونهتفسیر
Example 7Monitoringنتیجه باید در کنار FORCE_LAST_GOOD_PLAN بررسی شود
ScopeAutomatic Tuningاعتبار نتیجه به سطح اجرا و مجوز وابسته است

نکته کاربردی مثال 7: خروجی را در Repository مانیتورینگ با Timestamp ذخیره کنید و قبل از هر اقدام، اختلاف آن را با Baseline همان ساعت و همان نوع بار بسنجید. این کار برای حالت FORCE_LAST_GOOD_PLAN = ON در Automatic Tuning SQL Server احتمال تشخیص نادرست را کاهش می‌دهد.

مثال 8: تحلیل مرحله‌ای برای حالت FORCE_LAST_GOOD_PLAN = ON در Automatic Tuning SQL Server

در این سناریو، هدف آن است که مرحله 8 تحلیل حالت FORCE_LAST_GOOD_PLAN = ON در Automatic Tuning SQL Server را بدون تکیه بر حدس اجرا کنیم. Query زیر یک ورودی یا خروجی قابل مشاهده می‌سازد و به شما اجازه می‌دهد نتیجه را با زمان نمونه‌برداری، Scope و وضعیت Workload مرتبط کنید.

BEGIN TRY
 ALTER DATABASE CURRENT SET AUTOMATIC_TUNING (FORCE_LAST_GOOD_PLAN = ON);
END TRY
BEGIN CATCH
 THROW;
END CATCH;
شاخصمقدار نمونهتفسیر
Example 8FORCE_LAST_GOOD_PLANنتیجه باید در کنار ON بررسی شود
ScopeAutomatic Tuningاعتبار نتیجه به سطح اجرا و مجوز وابسته است

نکته کاربردی مثال 8: خروجی را در Repository مانیتورینگ با Timestamp ذخیره کنید و قبل از هر اقدام، اختلاف آن را با Baseline همان ساعت و همان نوع بار بسنجید. این کار برای حالت FORCE_LAST_GOOD_PLAN = ON در Automatic Tuning SQL Server احتمال تشخیص نادرست را کاهش می‌دهد.

مثال 9: اعتبارسنجی و بهینه‌سازی برای حالت FORCE_LAST_GOOD_PLAN = ON در Automatic Tuning SQL Server

در این سناریو، هدف آن است که مرحله 9 تحلیل حالت FORCE_LAST_GOOD_PLAN = ON در Automatic Tuning SQL Server را بدون تکیه بر حدس اجرا کنیم. Query زیر یک ورودی یا خروجی قابل مشاهده می‌سازد و به شما اجازه می‌دهد نتیجه را با زمان نمونه‌برداری، Scope و وضعیت Workload مرتبط کنید.

-- روش اصلاح: قبل و بعد از تغییر Snapshot بگیرید
SELECT GETDATE() AS sample_time, * FROM sys.database_automatic_tuning_options;
شاخصمقدار نمونهتفسیر
Example 9ONنتیجه باید در کنار Plan Regression بررسی شود
ScopeAutomatic Tuningاعتبار نتیجه به سطح اجرا و مجوز وابسته است

نکته کاربردی مثال 9: خروجی را در Repository مانیتورینگ با Timestamp ذخیره کنید و قبل از هر اقدام، اختلاف آن را با Baseline همان ساعت و همان نوع بار بسنجید. این کار برای حالت FORCE_LAST_GOOD_PLAN = ON در Automatic Tuning SQL Server احتمال تشخیص نادرست را کاهش می‌دهد.

مثال 10: اعتبارسنجی و بهینه‌سازی برای حالت FORCE_LAST_GOOD_PLAN = ON در Automatic Tuning SQL Server

در این سناریو، هدف آن است که مرحله 10 تحلیل حالت FORCE_LAST_GOOD_PLAN = ON در Automatic Tuning SQL Server را بدون تکیه بر حدس اجرا کنیم. Query زیر یک ورودی یا خروجی قابل مشاهده می‌سازد و به شما اجازه می‌دهد نتیجه را با زمان نمونه‌برداری، Scope و وضعیت Workload مرتبط کنید.

ALTER DATABASE CURRENT SET AUTOMATIC_TUNING (FORCE_LAST_GOOD_PLAN = DEFAULT); -- نمونه بازگشت
شاخصمقدار نمونهتفسیر
Example 10Plan Regressionنتیجه باید در کنار Query Store بررسی شود
ScopeAutomatic Tuningاعتبار نتیجه به سطح اجرا و مجوز وابسته است

نکته کاربردی مثال 10: خروجی را در Repository مانیتورینگ با Timestamp ذخیره کنید و قبل از هر اقدام، اختلاف آن را با Baseline همان ساعت و همان نوع بار بسنجید. این کار برای حالت FORCE_LAST_GOOD_PLAN = ON در Automatic Tuning SQL Server احتمال تشخیص نادرست را کاهش می‌دهد.

کاربردهای واقعی در پروژه

در پروژه سازمانی، حالت FORCE_LAST_GOOD_PLAN = ON در Automatic Tuning SQL Server می‌تواند در Runbook عیب‌یابی، گزارش سلامت روزانه، بررسی Incident و ارزیابی تغییرات Performance قرار گیرد. برای مثال، تیم DBA ابتدا Snapshot مربوط به FORCE_LAST_GOOD_PLAN را ثبت می‌کند، سپس آن را با ON و Plan Regression هم‌بسته می‌سازد و فقط در صورت مشاهده الگوی پایدار، تغییر پیشنهادی را در محیط Stage آزمایش می‌کند.

در محیط‌های چندپایگاه‌داده، بهتر است Context شامل نام Instance، Database، زمان، نسخه، Availability Role و شناسه Deployment باشد. این اطلاعات کمک می‌کند خروجی حالت FORCE_LAST_GOOD_PLAN = ON در Automatic Tuning SQL Server از محیطی به محیط دیگر اشتباه تعمیم داده نشود و تحلیل پس از رخداد نیز قابل بازسازی بماند.

نکته و هشدار مهم

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

پیش از اجرای فرمان‌های تغییردهنده مرتبط با حالت FORCE_LAST_GOOD_PLAN = ON در Automatic Tuning SQL Server، نسخه فعلی را ثبت کنید، معیار Rollback تعریف کنید و اثر را در یک بازه کنترل‌شده بسنجید. فرمان‌های پاک‌سازی Cache یا تغییرات سراسری در Production نباید صرفاً برای مشاهده نتیجه سریع اجرا شوند.

اشتباهات رایج و روش اصلاح

خطای رایج 1: تفسیر ناقص FORCE_LAST_GOOD_PLAN

خطا زمانی رخ می‌دهد که FORCE_LAST_GOOD_PLAN بدون توجه به Plan Regression معیار قطعی تلقی شود. روش اصلاح این است که Snapshot قبل و بعد، Scope، مدت نمونه‌برداری و تغییرات هم‌زمان ثبت شوند و سپس تصمیم با یک Query دوم یا Execution Plan تأیید شود.

خطای رایج 2: تفسیر ناقص ON

خطا زمانی رخ می‌دهد که ON بدون توجه به Query Store معیار قطعی تلقی شود. روش اصلاح این است که Snapshot قبل و بعد، Scope، مدت نمونه‌برداری و تغییرات هم‌زمان ثبت شوند و سپس تصمیم با یک Query دوم یا Execution Plan تأیید شود.

خطای رایج 3: تفسیر ناقص Plan Regression

خطا زمانی رخ می‌دهد که Plan Regression بدون توجه به Last Good Plan معیار قطعی تلقی شود. روش اصلاح این است که Snapshot قبل و بعد، Scope، مدت نمونه‌برداری و تغییرات هم‌زمان ثبت شوند و سپس تصمیم با یک Query دوم یا Execution Plan تأیید شود.

خطای رایج 4: تفسیر ناقص Query Store

خطا زمانی رخ می‌دهد که Query Store بدون توجه به Verification معیار قطعی تلقی شود. روش اصلاح این است که Snapshot قبل و بعد، Scope، مدت نمونه‌برداری و تغییرات هم‌زمان ثبت شوند و سپس تصمیم با یک Query دوم یا Execution Plan تأیید شود.

خطای رایج 5: تفسیر ناقص Last Good Plan

خطا زمانی رخ می‌دهد که Last Good Plan بدون توجه به Revert معیار قطعی تلقی شود. روش اصلاح این است که Snapshot قبل و بعد، Scope، مدت نمونه‌برداری و تغییرات هم‌زمان ثبت شوند و سپس تصمیم با یک Query دوم یا Execution Plan تأیید شود.

Performance Considerations

هزینه استفاده از حالت FORCE_LAST_GOOD_PLAN = ON در Automatic Tuning SQL Server به فرکانس اجرا، حجم خروجی، نوع Join و نحوه ذخیره‌سازی Snapshot وابسته است. Queryهای مانیتورینگ را با ستون‌های لازم، TOP منطقی و فیلتر مناسب بنویسید. در گزارش‌های پرتکرار، نتیجه خام بزرگ را در هر بار Refresh دوباره پردازش نکنید و از جدول تاریخچه با ایندکس روی SampleTime و کلیدهای اصلی بهره ببرید.

در تحلیل Parallelism و Automatic Tuning، SARGability، Cardinality، Statistics و کیفیت Execution Plan اغلب از خود گزینه مهم‌ترند. برای حالت FORCE_LAST_GOOD_PLAN = ON در Automatic Tuning SQL Server ابتدا بررسی کنید آیا Query اصلی Scan غیرضروری، Estimate نادرست، Spill، Worker Starvation یا Compile مکرر دارد؛ سپس اثر تغییر تنظیم را با CPU و Duration توأمان بسنجید.

Best Practices

  1. برای حالت FORCE_LAST_GOOD_PLAN = ON در Automatic Tuning SQL Server Baseline قابل مقایسه ثبت کنید.
  2. Scope و مجوز مربوط به FORCE_LAST_GOOD_PLAN را مستند کنید.
  3. خروجی را با ON و Plan Regression هم‌بسته تحلیل کنید.
  4. تغییر را ابتدا در Stage یا بازه کم‌ریسک اجرا کنید.
  5. معیار موفقیت، بازگشت و مدت مشاهده را پیش از تغییر تعیین کنید.
  6. Queryهای پایش را سبک، محدود و قابل نسخه‌بندی نگه دارید.
حالت FORCE_LAST_GOOD_PLAN = ON در Automatic Tuning SQL Server؛ تصویر فنی شماره 3نمای اختصاصی از حالت FORCE_LAST_GOOD_PLAN = ON در Automatic Tuning SQL Server با تمرکز بر FORCE_LAST_GOOD_PLAN، ON، Plan Regression، Query Store، Last Good Plan حالت FORCE_LAST_GOOD_PLAN = ON در Automatic Tuning SQL ServerLast Good PlanVerificationRevertMonitoringFORCE_LAST_GOOD_PLANONPlan RegressionQuery Storeمقایسه هزینه و مسیر تصمیمBest Path / Common Error

این تصویر، حالت FORCE_LAST_GOOD_PLAN = ON در Automatic Tuning SQL Server را از زاویه تصمیم فنی، خطا و ملاحظات کارایی نمایش می‌دهد و بر مفاهیم FORCE_LAST_GOOD_PLAN، ON، Plan Regression، Query Store تمرکز دارد.

مزایا، محدودیت‌ها و زمان نامناسب استفاده

بعدتحلیل
مزیتایجاد دید مشخص درباره درک اثر مقدار ON بر اصلاح خودکار Plan Regression و نحوه بازگشت از تصمیم موتور
محدودیتوابستگی به Scope، نسخه، زمان نمونه‌برداری و مجوز
زمان نامناسبتصمیم‌گیری فوری بدون Baseline یا اجرای تغییر سراسری در ساعت اوج
معیار جایگزینترکیب FORCE_LAST_GOOD_PLAN با ON و شاخص‌های Workload

سؤالات متداول

پرسش 1: حالت FORCE_LAST_GOOD_PLAN = ON در Automatic Tuning SQL Server دقیقاً چه مسئله‌ای را حل می‌کند؟

پاسخ باید بر پایه Scope، نسخه، Baseline و شواهد همان محیط ارائه شود. در موضوع «حالت FORCE_LAST_GOOD_PLAN = ON در Automatic Tuning SQL Server»، هدف این است که درک اثر مقدار ON بر اصلاح خودکار Plan Regression و نحوه بازگشت از تصمیم موتور؛ بنابراین یک مقدار منفرد یا Snapshot بدون زمینه کافی نیست و بهتر است نتیجه با تنظیمات مؤثر، پلن اجرا و روند زمانی مقایسه شود.

پرسش 2: برای استفاده از حالت FORCE_LAST_GOOD_PLAN = ON در Automatic Tuning SQL Server چه مجوزی لازم است؟

پاسخ باید بر پایه Scope، نسخه، Baseline و شواهد همان محیط ارائه شود. در موضوع «حالت FORCE_LAST_GOOD_PLAN = ON در Automatic Tuning SQL Server»، هدف این است که درک اثر مقدار ON بر اصلاح خودکار Plan Regression و نحوه بازگشت از تصمیم موتور؛ بنابراین یک مقدار منفرد یا Snapshot بدون زمینه کافی نیست و بهتر است نتیجه با تنظیمات مؤثر، پلن اجرا و روند زمانی مقایسه شود.

پرسش 3: خروجی حالت FORCE_LAST_GOOD_PLAN = ON در Automatic Tuning SQL Server را چگونه باید تفسیر کرد؟

پاسخ باید بر پایه Scope، نسخه، Baseline و شواهد همان محیط ارائه شود. در موضوع «حالت FORCE_LAST_GOOD_PLAN = ON در Automatic Tuning SQL Server»، هدف این است که درک اثر مقدار ON بر اصلاح خودکار Plan Regression و نحوه بازگشت از تصمیم موتور؛ بنابراین یک مقدار منفرد یا Snapshot بدون زمینه کافی نیست و بهتر است نتیجه با تنظیمات مؤثر، پلن اجرا و روند زمانی مقایسه شود.

پرسش 4: آیا حالت FORCE_LAST_GOOD_PLAN = ON در Automatic Tuning SQL Server در همه نسخه‌های SQL Server یکسان است؟

پاسخ باید بر پایه Scope، نسخه، Baseline و شواهد همان محیط ارائه شود. در موضوع «حالت FORCE_LAST_GOOD_PLAN = ON در Automatic Tuning SQL Server»، هدف این است که درک اثر مقدار ON بر اصلاح خودکار Plan Regression و نحوه بازگشت از تصمیم موتور؛ بنابراین یک مقدار منفرد یا Snapshot بدون زمینه کافی نیست و بهتر است نتیجه با تنظیمات مؤثر، پلن اجرا و روند زمانی مقایسه شود.

پرسش 5: رفتار حالت FORCE_LAST_GOOD_PLAN = ON در Automatic Tuning SQL Server پس از Restart یا Failover چیست؟

پاسخ باید بر پایه Scope، نسخه، Baseline و شواهد همان محیط ارائه شود. در موضوع «حالت FORCE_LAST_GOOD_PLAN = ON در Automatic Tuning SQL Server»، هدف این است که درک اثر مقدار ON بر اصلاح خودکار Plan Regression و نحوه بازگشت از تصمیم موتور؛ بنابراین یک مقدار منفرد یا Snapshot بدون زمینه کافی نیست و بهتر است نتیجه با تنظیمات مؤثر، پلن اجرا و روند زمانی مقایسه شود.

پرسش 6: چگونه اثر Performance مربوط به حالت FORCE_LAST_GOOD_PLAN = ON در Automatic Tuning SQL Server اندازه‌گیری می‌شود؟

پاسخ باید بر پایه Scope، نسخه، Baseline و شواهد همان محیط ارائه شود. در موضوع «حالت FORCE_LAST_GOOD_PLAN = ON در Automatic Tuning SQL Server»، هدف این است که درک اثر مقدار ON بر اصلاح خودکار Plan Regression و نحوه بازگشت از تصمیم موتور؛ بنابراین یک مقدار منفرد یا Snapshot بدون زمینه کافی نیست و بهتر است نتیجه با تنظیمات مؤثر، پلن اجرا و روند زمانی مقایسه شود.

پرسش 7: چه زمانی نباید از حالت FORCE_LAST_GOOD_PLAN = ON در Automatic Tuning SQL Server استفاده کرد؟

پاسخ باید بر پایه Scope، نسخه، Baseline و شواهد همان محیط ارائه شود. در موضوع «حالت FORCE_LAST_GOOD_PLAN = ON در Automatic Tuning SQL Server»، هدف این است که درک اثر مقدار ON بر اصلاح خودکار Plan Regression و نحوه بازگشت از تصمیم موتور؛ بنابراین یک مقدار منفرد یا Snapshot بدون زمینه کافی نیست و بهتر است نتیجه با تنظیمات مؤثر، پلن اجرا و روند زمانی مقایسه شود.

پرسش 8: رایج‌ترین خطای تشخیص درباره حالت FORCE_LAST_GOOD_PLAN = ON در Automatic Tuning SQL Server چیست؟

پاسخ باید بر پایه Scope، نسخه، Baseline و شواهد همان محیط ارائه شود. در موضوع «حالت FORCE_LAST_GOOD_PLAN = ON در Automatic Tuning SQL Server»، هدف این است که درک اثر مقدار ON بر اصلاح خودکار Plan Regression و نحوه بازگشت از تصمیم موتور؛ بنابراین یک مقدار منفرد یا Snapshot بدون زمینه کافی نیست و بهتر است نتیجه با تنظیمات مؤثر، پلن اجرا و روند زمانی مقایسه شود.

پرسش 9: چگونه نتیجه حالت FORCE_LAST_GOOD_PLAN = ON در Automatic Tuning SQL Server را برای گزارش‌گیری ذخیره کنیم؟

پاسخ باید بر پایه Scope، نسخه، Baseline و شواهد همان محیط ارائه شود. در موضوع «حالت FORCE_LAST_GOOD_PLAN = ON در Automatic Tuning SQL Server»، هدف این است که درک اثر مقدار ON بر اصلاح خودکار Plan Regression و نحوه بازگشت از تصمیم موتور؛ بنابراین یک مقدار منفرد یا Snapshot بدون زمینه کافی نیست و بهتر است نتیجه با تنظیمات مؤثر، پلن اجرا و روند زمانی مقایسه شود.

پرسش 10: قدم بعدی پس از مشاهده نتیجه حالت FORCE_LAST_GOOD_PLAN = ON در Automatic Tuning SQL Server چیست؟

پاسخ باید بر پایه Scope، نسخه، Baseline و شواهد همان محیط ارائه شود. در موضوع «حالت FORCE_LAST_GOOD_PLAN = ON در Automatic Tuning SQL Server»، هدف این است که درک اثر مقدار ON بر اصلاح خودکار Plan Regression و نحوه بازگشت از تصمیم موتور؛ بنابراین یک مقدار منفرد یا Snapshot بدون زمینه کافی نیست و بهتر است نتیجه با تنظیمات مؤثر، پلن اجرا و روند زمانی مقایسه شود.

سؤالات مصاحبه

سؤال مصاحبه 1: ارتباط حالت FORCE_LAST_GOOD_PLAN = ON در Automatic Tuning SQL Server با FORCE_LAST_GOOD_PLAN چیست؟

پاسخ حرفه‌ای باید تعریف روشن، Scope، یک نمونه Query، محدودیت و روش اعتبارسنجی را پوشش دهد. نام بردن از ON بدون توضیح ترتیب تصمیم یا اثر عملی، پاسخ کامل محسوب نمی‌شود.

سؤال مصاحبه 2: ارتباط حالت FORCE_LAST_GOOD_PLAN = ON در Automatic Tuning SQL Server با ON چیست؟

پاسخ حرفه‌ای باید تعریف روشن، Scope، یک نمونه Query، محدودیت و روش اعتبارسنجی را پوشش دهد. نام بردن از Plan Regression بدون توضیح ترتیب تصمیم یا اثر عملی، پاسخ کامل محسوب نمی‌شود.

سؤال مصاحبه 3: ارتباط حالت FORCE_LAST_GOOD_PLAN = ON در Automatic Tuning SQL Server با Plan Regression چیست؟

پاسخ حرفه‌ای باید تعریف روشن، Scope، یک نمونه Query، محدودیت و روش اعتبارسنجی را پوشش دهد. نام بردن از Query Store بدون توضیح ترتیب تصمیم یا اثر عملی، پاسخ کامل محسوب نمی‌شود.

سؤال مصاحبه 4: ارتباط حالت FORCE_LAST_GOOD_PLAN = ON در Automatic Tuning SQL Server با Query Store چیست؟

پاسخ حرفه‌ای باید تعریف روشن، Scope، یک نمونه Query، محدودیت و روش اعتبارسنجی را پوشش دهد. نام بردن از Last Good Plan بدون توضیح ترتیب تصمیم یا اثر عملی، پاسخ کامل محسوب نمی‌شود.

سؤال مصاحبه 5: ارتباط حالت FORCE_LAST_GOOD_PLAN = ON در Automatic Tuning SQL Server با Last Good Plan چیست؟

پاسخ حرفه‌ای باید تعریف روشن، Scope، یک نمونه Query، محدودیت و روش اعتبارسنجی را پوشش دهد. نام بردن از Verification بدون توضیح ترتیب تصمیم یا اثر عملی، پاسخ کامل محسوب نمی‌شود.

سؤال مصاحبه 6: ارتباط حالت FORCE_LAST_GOOD_PLAN = ON در Automatic Tuning SQL Server با Verification چیست؟

پاسخ حرفه‌ای باید تعریف روشن، Scope، یک نمونه Query، محدودیت و روش اعتبارسنجی را پوشش دهد. نام بردن از Revert بدون توضیح ترتیب تصمیم یا اثر عملی، پاسخ کامل محسوب نمی‌شود.

چک‌لیست نهایی

  1. نسخه و پشتیبانی حالت FORCE_LAST_GOOD_PLAN = ON در Automatic Tuning SQL Server را بررسی کنید.
  2. مجوز و Scope را کنترل کنید.
  3. Snapshot اولیه و Baseline را ذخیره کنید.
  4. Queryهای مثال را ابتدا در محیط کم‌ریسک اجرا کنید.
  5. نتیجه را با CPU، IO، Duration و Plan هم‌بسته کنید.
  6. برای تغییر، معیار Success و Rollback بنویسید.
  7. پس از تغییر حداقل یک بازه کامل بار کاری را مشاهده کنید.

جمع‌بندی

حالت FORCE_LAST_GOOD_PLAN = ON در Automatic Tuning SQL Server زمانی ارزشمند است که از آن به‌عنوان بخشی از یک زنجیره تشخیص استفاده شود، نه یک عدد یا تنظیم مستقل. مسیر پیشنهادی این است که Scope را مشخص کنید، داده را در بازه معتبر جمع‌آوری کنید، نتیجه را با ON و Plan Regression تأیید کنید و فقط سپس تغییر قابل بازگشت انجام دهید.

برای مشاهده ارتباط این موضوع با اعضای دیگر خانواده، مقاله راهنمای جامع تنظیم خودکار در SQL Server را مطالعه کنید.

خدمات برنامه‌نویسی و پایگاه داده

برای برنامه‌نویسی در اصفهان، انجام پروژه، آموزش برنامه‌نویسی و آموزش SQL Server می‌توانید با مجموعه‌ای معتبر با سابقه فعالیت حرفه‌ای از سال ۱۳۷۵ شمسی تماس بگیرید.

قبول سفارش‌های برنامه‌نویسی و پایگاه داده: 09131253620. ارتباط از طریق ایتا، واتساپ و تماس مستقیم برای بررسی نیاز پروژه فراهم است.

تماس با ما برای سفارش پروژه و دریافت مشاوره

 

0 نظر

نظر محترم شما در مورد مقاله های وب سایت برنامه نویسی و پایگاه داده

نظرات محترم شما در خدمات رسانی بهتر ما را یاری می نمایند. لطفا اگر مایل بودید یک نظر ما را مهمان فرمائید. آدرس ایمیل و وب سایت شما نمایش داده نخواهد شد.

حرف 500 حداکثر