مدیریت Plan Guide با ENABLE، DISABLE، DROP و DROP ALL
چرا Actions: ENABLE and DISABLE DROP and DROP ALL به بررسی دقیق نیاز دارد؟
در پروژههای SQL Server، استفاده از Actions: ENABLE and DISABLE DROP and DROP ALL زمانی موفق است که مسئله واقعی، Scope تغییر و معیار نتیجه از ابتدا روشن باشد. این مقاله بهجای ارائه یک دستور جداافتاده، مسیر طراحی، اجرا، مشاهده و بازگشت را برای خانواده «Plan Guides» توضیح میدهد.
مخاطب این راهنما DBAهای Performance، پشتیبانان نرمافزارهای بسته و متخصصان Query Tuning هستند. پیشنیاز عملی، دسترسی مناسب، محیط آزمایشی و شناخت Baseline است. پس از مطالعه میتوانید Syntax یا Query تشخیصی را اجرا کنید، خروجی را تفسیر کنید و تصمیم بگیرید Actions: ENABLE and DISABLE DROP and DROP ALL برای Workload شما مناسب است یا خیر.
برای دیدن نقشه کامل موضوعات مرتبط، راهنمای جامع خانواده Plan Guides را نیز مطالعه کنید؛ لینکهای این مقاله فقط به همان خانواده بازمیگردند.
تعریف و جایگاه موضوع
عملیات ENABLE، DISABLE، DROP و DROP ALL برای کنترل وضعیت و حذف Plan Guideها استفاده میشوند و هرکدام اثر عملیاتی متفاوتی بر کامپایلهای بعدی دارند.
جایگاه Actions: ENABLE and DISABLE DROP and DROP ALL در معماری این است که میان نیاز کسبوکار و رفتار واقعی موتور SQL Server یک نقطه کنترل یا مشاهده ایجاد کند. مفاهیم محوری آن شامل ENABLE، DISABLE، DROP، DROP ALL، Recompile، sys.plan_guides است. هرکدام باید در سطح درست اندازهگیری شوند؛ زیرا شباهت نامها به معنای یکسان بودن Scope نیست.
این تصویر جایگاه Actions: ENABLE and DISABLE DROP and DROP ALL را در کنار ENABLE، DISABLE، DROP، DROP ALL نشان میدهد و کمک میکند پیش از اجرای دستور، وابستگیهای اصلی و مسیر تصمیم مشخص شوند.
نحو، سطح دسترسی و رفتار اجرایی
Syntax یا Query پایه
EXEC sys.sp_control_plan_guide N'ENABLE', N'Guide_Name';
EXEC sys.sp_control_plan_guide N'DISABLE', N'Guide_Name';
-- EXEC sys.sp_control_plan_guide N'DROP', N'Guide_Name';
پارامترها و اجزای اثرگذار
- ENABLE: باید با Scope واقعی Actions: ENABLE and DISABLE DROP and DROP ALL و نسخه SQL Server هماهنگ شود.
- DISABLE: باید با Scope واقعی Actions: ENABLE and DISABLE DROP and DROP ALL و نسخه SQL Server هماهنگ شود.
- DROP: باید با Scope واقعی Actions: ENABLE and DISABLE DROP and DROP ALL و نسخه SQL Server هماهنگ شود.
- DROP ALL: باید با Scope واقعی Actions: ENABLE and DISABLE DROP and DROP ALL و نسخه SQL Server هماهنگ شود.
- Recompile: باید با Scope واقعی Actions: ENABLE and DISABLE DROP and DROP ALL و نسخه SQL Server هماهنگ شود.
نوع خروجی و رفتارهای ویژه
خروجی Actions: ENABLE and DISABLE DROP and DROP ALL ممکن است یک تغییر DDL، وضعیت کاتالوگی، Snapshot از DMV یا اثر روی کامپایلهای بعدی باشد. رفتار با NULL، Restart، Reconfigure و Reset به نوع موضوع وابسته است؛ بنابراین نتیجه ظاهری Query را با اثر Runtime اشتباه نگیرید.
منطق اجرا و نقاط کنترل
Scope و مرز اثر
پیش از اجرا تعیین کنید Actions: ENABLE and DISABLE DROP and DROP ALL در سطح Database، Object، Session یا Instance اثر دارد. این مرزبندی از تغییر گسترده ناخواسته جلوگیری میکند.
معیار موفقیت
برای Actions: ENABLE and DISABLE DROP and DROP ALL یک شاخص عددی مانند کاهش CPU، افت زمان پاسخ، طول زنجیره Bucket، تعداد Session یا نرخ Match تعریف کنید.
مسیر بازگشت
مقدار قبلی، فرمان معکوس و Query اعتبارسنجی را ثبت کنید تا Rollback به حافظه فردی وابسته نباشد.
جریان بالا نشان میدهد Actions: ENABLE and DISABLE DROP and DROP ALL از ورودی و پیکربندی اولیه به مشاهده خروجی، سنجش هزینه و تصمیم نهایی میرسد؛ بخش Chart-like برای مقایسه مراحل پرهزینهتر طراحی شده است.
مثالهای عملی از ساده تا پیشرفته
مثال 1: سناریوی Actions: ENABLE and DISABLE DROP and DROP ALL در مرحله 1
در این سناریو هدف آن است که بُعد شماره 1 از Actions: ENABLE and DISABLE DROP and DROP ALL بهصورت کنترلشده بررسی شود. Query را ابتدا در محیط Test اجرا کنید و نتیجه را با Baseline همان بازه مقایسه کنید.
EXEC sys.sp_control_plan_guide N'ENABLE', N'Guide_Name';
EXEC sys.sp_control_plan_guide N'DISABLE', N'Guide_Name';
-- EXEC sys.sp_control_plan_guide N'DROP', N'Guide_Name';
| خروجی نمونه | تفسیر |
|---|
| Result_1429_1 | مقدار نمونه مرحله 1 برای Actions: ENABLE and DISABLE DROP and DROP ALL |
| Status_1 | نیازمند اعتبارسنجی با Workload واقعی |
نکته کاربردی: مثال 1 زمانی معتبر است که خروجی آن با نسخه، Permission و بار همزمان سرور شما سازگار باشد؛ صرف موفق بودن Syntax به معنای مناسب بودن تصمیم نیست.
مثال 2: سناریوی Actions: ENABLE and DISABLE DROP and DROP ALL در مرحله 2
در این سناریو هدف آن است که بُعد شماره 2 از Actions: ENABLE and DISABLE DROP and DROP ALL بهصورت کنترلشده بررسی شود. Query را ابتدا در محیط Test اجرا کنید و نتیجه را با Baseline همان بازه مقایسه کنید.
SELECT name, scope_type_desc, is_disabled
FROM sys.plan_guides
ORDER BY name;
| خروجی نمونه | تفسیر |
|---|
| Result_1429_2 | مقدار نمونه مرحله 2 برای Actions: ENABLE and DISABLE DROP and DROP ALL |
| Status_2 | نیازمند اعتبارسنجی با Workload واقعی |
نکته کاربردی: مثال 2 زمانی معتبر است که خروجی آن با نسخه، Permission و بار همزمان سرور شما سازگار باشد؛ صرف موفق بودن Syntax به معنای مناسب بودن تصمیم نیست.
مثال 3: سناریوی Actions: ENABLE and DISABLE DROP and DROP ALL در مرحله 3
در این سناریو هدف آن است که بُعد شماره 3 از Actions: ENABLE and DISABLE DROP and DROP ALL بهصورت کنترلشده بررسی شود. Query را ابتدا در محیط Test اجرا کنید و نتیجه را با Baseline همان بازه مقایسه کنید.
SELECT name, query_text, hints
FROM sys.plan_guides
WHERE is_disabled = 0;
| خروجی نمونه | تفسیر |
|---|
| Result_1429_3 | مقدار نمونه مرحله 3 برای Actions: ENABLE and DISABLE DROP and DROP ALL |
| Status_3 | نیازمند اعتبارسنجی با Workload واقعی |
نکته کاربردی: مثال 3 زمانی معتبر است که خروجی آن با نسخه، Permission و بار همزمان سرور شما سازگار باشد؛ صرف موفق بودن Syntax به معنای مناسب بودن تصمیم نیست.
مثال 4: سناریوی Actions: ENABLE and DISABLE DROP and DROP ALL در مرحله 4
در این سناریو هدف آن است که بُعد شماره 4 از Actions: ENABLE and DISABLE DROP and DROP ALL بهصورت کنترلشده بررسی شود. Query را ابتدا در محیط Test اجرا کنید و نتیجه را با Baseline همان بازه مقایسه کنید.
EXEC sys.sp_control_plan_guide N'DISABLE', N'Guide_OrderLookup';
| خروجی نمونه | تفسیر |
|---|
| Result_1429_4 | مقدار نمونه مرحله 4 برای Actions: ENABLE and DISABLE DROP and DROP ALL |
| Status_4 | نیازمند اعتبارسنجی با Workload واقعی |
نکته کاربردی: مثال 4 زمانی معتبر است که خروجی آن با نسخه، Permission و بار همزمان سرور شما سازگار باشد؛ صرف موفق بودن Syntax به معنای مناسب بودن تصمیم نیست.
مثال 5: سناریوی Actions: ENABLE and DISABLE DROP and DROP ALL در مرحله 5
در این سناریو هدف آن است که بُعد شماره 5 از Actions: ENABLE and DISABLE DROP and DROP ALL بهصورت کنترلشده بررسی شود. Query را ابتدا در محیط Test اجرا کنید و نتیجه را با Baseline همان بازه مقایسه کنید.
EXEC sys.sp_control_plan_guide N'ENABLE', N'Guide_OrderLookup';
| خروجی نمونه | تفسیر |
|---|
| Result_1429_5 | مقدار نمونه مرحله 5 برای Actions: ENABLE and DISABLE DROP and DROP ALL |
| Status_5 | نیازمند اعتبارسنجی با Workload واقعی |
نکته کاربردی: مثال 5 زمانی معتبر است که خروجی آن با نسخه، Permission و بار همزمان سرور شما سازگار باشد؛ صرف موفق بودن Syntax به معنای مناسب بودن تصمیم نیست.
مثال 6: سناریوی Actions: ENABLE and DISABLE DROP and DROP ALL در مرحله 6
در این سناریو هدف آن است که بُعد شماره 6 از Actions: ENABLE and DISABLE DROP and DROP ALL بهصورت کنترلشده بررسی شود. Query را ابتدا در محیط Test اجرا کنید و نتیجه را با Baseline همان بازه مقایسه کنید.
SELECT plan_guide_id, name, create_date, modify_date
FROM sys.plan_guides;
| خروجی نمونه | تفسیر |
|---|
| Result_1429_6 | مقدار نمونه مرحله 6 برای Actions: ENABLE and DISABLE DROP and DROP ALL |
| Status_6 | نیازمند اعتبارسنجی با Workload واقعی |
نکته کاربردی: مثال 6 زمانی معتبر است که خروجی آن با نسخه، Permission و بار همزمان سرور شما سازگار باشد؛ صرف موفق بودن Syntax به معنای مناسب بودن تصمیم نیست.
مثال 7: سناریوی Actions: ENABLE and DISABLE DROP and DROP ALL در مرحله 7
در این سناریو هدف آن است که بُعد شماره 7 از Actions: ENABLE and DISABLE DROP and DROP ALL بهصورت کنترلشده بررسی شود. Query را ابتدا در محیط Test اجرا کنید و نتیجه را با Baseline همان بازه مقایسه کنید.
SELECT cp.plan_handle, qs.statement_start_offset, qs.execution_count
FROM sys.dm_exec_query_stats AS qs
CROSS APPLY sys.dm_exec_sql_text(qs.sql_handle) AS st
CROSS APPLY (SELECT qs.plan_handle) AS cp
WHERE st.text LIKE N'%Orders%';
| خروجی نمونه | تفسیر |
|---|
| Result_1429_7 | مقدار نمونه مرحله 7 برای Actions: ENABLE and DISABLE DROP and DROP ALL |
| Status_7 | نیازمند اعتبارسنجی با Workload واقعی |
نکته کاربردی: مثال 7 زمانی معتبر است که خروجی آن با نسخه، Permission و بار همزمان سرور شما سازگار باشد؛ صرف موفق بودن Syntax به معنای مناسب بودن تصمیم نیست.
مثال 8: سناریوی Actions: ENABLE and DISABLE DROP and DROP ALL در مرحله 8
در این سناریو هدف آن است که بُعد شماره 8 از Actions: ENABLE and DISABLE DROP and DROP ALL بهصورت کنترلشده بررسی شود. Query را ابتدا در محیط Test اجرا کنید و نتیجه را با Baseline همان بازه مقایسه کنید.
EXEC sys.sp_get_query_template
@querytext = N'SELECT * FROM dbo.Orders WHERE CustomerID = 42',
@templatetext = @template OUTPUT,
@parameters = @params OUTPUT;
| خروجی نمونه | تفسیر |
|---|
| Result_1429_8 | مقدار نمونه مرحله 8 برای Actions: ENABLE and DISABLE DROP and DROP ALL |
| Status_8 | نیازمند اعتبارسنجی با Workload واقعی |
نکته کاربردی: مثال 8 زمانی معتبر است که خروجی آن با نسخه، Permission و بار همزمان سرور شما سازگار باشد؛ صرف موفق بودن Syntax به معنای مناسب بودن تصمیم نیست.
مثال 9: سناریوی Actions: ENABLE and DISABLE DROP and DROP ALL در مرحله 9
در این سناریو هدف آن است که بُعد شماره 9 از Actions: ENABLE and DISABLE DROP and DROP ALL بهصورت کنترلشده بررسی شود. Query را ابتدا در محیط Test اجرا کنید و نتیجه را با Baseline همان بازه مقایسه کنید.
-- حذف فقط پس از ثبت نام و بررسی وابستگی
EXEC sys.sp_control_plan_guide N'DROP', N'Guide_OrderLookup';
| خروجی نمونه | تفسیر |
|---|
| Result_1429_9 | مقدار نمونه مرحله 9 برای Actions: ENABLE and DISABLE DROP and DROP ALL |
| Status_9 | نیازمند اعتبارسنجی با Workload واقعی |
نکته کاربردی: مثال 9 زمانی معتبر است که خروجی آن با نسخه، Permission و بار همزمان سرور شما سازگار باشد؛ صرف موفق بودن Syntax به معنای مناسب بودن تصمیم نیست.
مثال 10: سناریوی Actions: ENABLE and DISABLE DROP and DROP ALL در مرحله 10
در این سناریو هدف آن است که بُعد شماره 10 از Actions: ENABLE and DISABLE DROP and DROP ALL بهصورت کنترلشده بررسی شود. Query را ابتدا در محیط Test اجرا کنید و نتیجه را با Baseline همان بازه مقایسه کنید.
SELECT name, scope_type_desc, is_disabled, hints
FROM sys.plan_guides
ORDER BY modify_date DESC;
| خروجی نمونه | تفسیر |
|---|
| Result_1429_10 | مقدار نمونه مرحله 10 برای Actions: ENABLE and DISABLE DROP and DROP ALL |
| Status_10 | نیازمند اعتبارسنجی با Workload واقعی |
نکته کاربردی: مثال 10 زمانی معتبر است که خروجی آن با نسخه، Permission و بار همزمان سرور شما سازگار باشد؛ صرف موفق بودن Syntax به معنای مناسب بودن تصمیم نیست.
کاربردهای واقعی در پروژه
Actions: ENABLE and DISABLE DROP and DROP ALL در پروژههای واقعی برای کنترل یک نقطه مشخص از چرخه عمر داده یا Query بهکار میرود. تیم عملیات میتواند از آن برای ساخت Runbook، تیم توسعه برای طراحی رفتار قابل پیشبینی و تیم معماری برای مقایسه هزینه گزینهها استفاده کند.
در محیط سازمانی بهتر است اجرای Actions: ENABLE and DISABLE DROP and DROP ALL از مسیر Change Management عبور کند. Ticket باید شامل دلیل، دامنه، زمان، مالک، Query قبل و بعد و شاخص پذیرش باشد. این رویکرد اختلاف میان نتیجه آزمایش و رفتار Production را کاهش میدهد.
هشدار مهم پیش از اجرا
اجرای Actions: ENABLE and DISABLE DROP and DROP ALL بدون بررسی Permission، وابستگی و وضعیت نسخه میتواند باعث خطای دسترسی، عدم اثرگذاری یا تغییر ناخواسته شود. فرمانهای حذف، Disable، Reset و تغییر منابع را فقط پس از تهیه Snapshot و تعریف Rollback اجرا کنید.
اشتباهات رایج و روش اصلاح
- اشتباه: نتیجه یک اجرای کوتاه را معیار قطعی Actions: ENABLE and DISABLE DROP and DROP ALL دانستن. اصلاح: چند Snapshot در بار مشابه ثبت کنید.
- اشتباه: کپی Syntax از نسخه دیگر. اصلاح: مستندات نسخه مقصد و Metadata همان Instance را کنترل کنید.
- اشتباه: حذف وابستگیها از تحلیل. اصلاح: Object، Group، Pool، Plan یا Indexهای مرتبط را پیش از تغییر فهرست کنید.
- اشتباه: نداشتن فرمان بازگشت. اصلاح: قبل از Apply، دستور معکوس و شرط توقف را آزمایش کنید.
اثر کارایی Actions: ENABLE and DISABLE DROP and DROP ALL باید در سطح درست سنجیده شود. زمان اجرای یک Query ممکن است کاهش یابد اما مصرف حافظه، تعداد Compile، فشار CPU یا هزینه نگهداری افزایش پیدا کند. بنابراین حداقل دو شاخص مستقیم و یک شاخص جانبی ثبت کنید.
در تحلیل Plan و Cardinality، تفاوت میان همبستگی و علت را رعایت کنید. اگر همزمان با Actions: ENABLE and DISABLE DROP and DROP ALL تغییر دیگری منتشر شده باشد، آزمایش A/B یا بازه کنترل لازم است. Queryهای DMV نیز خودشان هزینه دارند و نباید با نرخ بسیار بالا Poll شوند.
Best Practices
- Actions: ENABLE and DISABLE DROP and DROP ALL را ابتدا روی نمونه نماینده Workload و نه داده ساختگی بسیار کوچک آزمایش کنید.
- نامگذاری اشیا و تغییرات را استاندارد کنید تا ممیزی و حذف بعدی ساده باشد.
- Baseline، مقدار هدف، بازه اندازهگیری و آستانه شکست را پیش از اجرا بنویسید.
- پس از تغییر، هم تعریف کاتالوگی و هم رفتار Runtime را بررسی کنید.
- برای تغییرات پرریسک، Maintenance Window و مالک Rollback تعیین کنید.
این نمودار خطاهای رایج Actions: ENABLE and DISABLE DROP and DROP ALL را در برابر مسیر پیشنهادی قرار میدهد؛ فلشها نشان میدهند هر خطا با کدام کنترل فنی و معیار Performance اصلاح میشود.
مزایا، محدودیتها و زمان نامناسب استفاده
| بُعد | ارزیابی برای Actions: ENABLE and DISABLE DROP and DROP ALL |
|---|
| مزیت | کنترل یا مشاهده دقیقتر در Scope تعریفشده |
| محدودیت | وابستگی به نسخه، Permission و الگوی Workload |
| زمان نامناسب | نبود Baseline، Rollback یا مالک عملیاتی |
| شرط پذیرش | بهبود قابل اندازهگیری بدون هزینه جانبی ناموجه |
سؤالات متداول
برای شروع کار با Actions: ENABLE and DISABLE DROP and DROP ALL چه پیشنیازی لازم است؟
پیش از اجرا، نسخه و Edition، سطح دسترسی، وضعیت پایگاه داده و یک محیط آزمایشی همسان با Production را بررسی کنید. برای Actions: ENABLE and DISABLE DROP and DROP ALL ثبت Baseline اولیه باعث میشود تغییر واقعی از نوسان عادی جدا شود.
چگونه صحت پیکربندی Actions: ENABLE and DISABLE DROP and DROP ALL را بررسی کنیم؟
تعریف کاتالوگی را با نمای Runtime مقایسه کنید، سپس یک سناریوی کنترلشده اجرا و نتیجه را در بازه زمانی مشخص ثبت کنید. اتکا به یک Snapshot برای قضاوت درباره Actions: ENABLE and DISABLE DROP and DROP ALL کافی نیست.
Actions: ENABLE and DISABLE DROP and DROP ALL در چه پروژههایی ارزش تجاری بیشتری ایجاد میکند؟
در سامانههایی که تأخیر، پایداری و تفکیک بارکاری مستقیماً بر درآمد یا SLA اثر دارد، Actions: ENABLE and DISABLE DROP and DROP ALL میتواند ارزش بیشتری ایجاد کند؛ البته نتیجه باید با شاخص قابل اندازهگیری تأیید شود.
چه زمانی هزینه نگهداری Actions: ENABLE and DISABLE DROP and DROP ALL از منفعت آن بیشتر میشود؟
وقتی حجم عملیات پایین، تیم فاقد مهارت نگهداری یا مسیر بازگشت نامشخص است، پیچیدگی Actions: ENABLE and DISABLE DROP and DROP ALL ممکن است توجیه نداشته باشد. تصمیم باید بر هزینه کل مالکیت استوار باشد.
Actions: ENABLE and DISABLE DROP and DROP ALL با روش جایگزین در SQL Server چه تفاوتی دارد؟
روش جایگزین معمولاً Scope، هزینه اجرا و میزان کنترل متفاوتی دارد. مقایسه درست باید روی Workload واقعی، Plan یا مصرف منابع و نه صرفاً زمان یک Query انجام شود.
برای پیادهسازی حرفهای Actions: ENABLE and DISABLE DROP and DROP ALL چه خدماتی لازم است؟
تحلیل Workload، طراحی آزمایش، پیادهسازی مرحلهای، مستندسازی، آموزش تیم و پایش پس از انتشار اجزای اصلی خدمت حرفهای هستند؛ اجرای مستقیم در Production بدون این زنجیره پرریسک است.
رایجترین خطای عملیاتی در Actions: ENABLE and DISABLE DROP and DROP ALL چیست؟
خطای رایج، اعمال تنظیم بدون اندازهگیری وضعیت پایه و بدون کنترل وابستگیهاست. در Actions: ENABLE and DISABLE DROP and DROP ALL ابتدا Scope را محدود کنید و هر تغییر را با یک معیار موفقیت و یک شرط توقف همراه سازید.
اثر Actions: ENABLE and DISABLE DROP and DROP ALL بر Performance چگونه اندازهگیری میشود؟
شاخص مناسب به موضوع بستگی دارد، اما زمان پاسخ، CPU، Memory، تعداد اجرای موفق، صف انتظار و تغییر Plan از معیارهای رایجاند. مقایسه باید در پنجره بار مشابه انجام شود.
بهترین روش مستندسازی و Rollback برای Actions: ENABLE and DISABLE DROP and DROP ALL چیست؟
نام اشیا، دلیل تغییر، مقدار قبل و بعد، مالک تصمیم، زمان اعمال، Query اعتبارسنجی و فرمان بازگشت را در Runbook ثبت کنید تا Actions: ENABLE and DISABLE DROP and DROP ALL به تنظیمی ناشناخته تبدیل نشود.
Actions: ENABLE and DISABLE DROP and DROP ALL با کدام نسخههای SQL Server سازگار است؟
قابلیت دقیق میتواند بین نسخهها و محیطهای Azure تفاوت داشته باشد. مستندات همان نسخه را بررسی و Syntax را روی محیط Test اجرا کنید؛ از تعمیم رفتار نسخه جدید به سرور قدیمی پرهیز شود.
سؤالات مصاحبه
- چگونه تشخیص میدهید Actions: ENABLE and DISABLE DROP and DROP ALL واقعاً روی Workload اثر گذاشته است؟
- اگر پس از اعمال Actions: ENABLE and DISABLE DROP and DROP ALL وضعیت بدتر شد، ترتیب عیبیابی شما چیست؟
- چه تفاوتی میان تعریف کاتالوگی و وضعیت Runtime در Actions: ENABLE and DISABLE DROP and DROP ALL وجود دارد؟
- برای جلوگیری از تغییرات ناخواسته در Actions: ENABLE and DISABLE DROP and DROP ALL چه کنترلهایی میگذارید؟
- چه زمانی تصمیم میگیرید Actions: ENABLE and DISABLE DROP and DROP ALL را حذف یا به روش دیگری مهاجرت دهید؟
چکلیست نهایی
- Scope دقیق Actions: ENABLE and DISABLE DROP and DROP ALL را ثبت کنید.
- Permission و سازگاری نسخه را کنترل کنید.
- Query پایه و Snapshot قبل از تغییر را ذخیره کنید.
- ده مثال این مقاله را متناسب با نام اشیای واقعی بازنویسی کنید.
- شاخص موفقیت و شرط Rollback را تعیین کنید.
- پس از Apply، Metadata و Runtime را دوباره بررسی کنید.
جمعبندی
Actions: ENABLE and DISABLE DROP and DROP ALL زمانی انتخاب مناسبی است که مسئله مشخص، خروجی قابل اندازهگیری و مسیر بازگشت وجود داشته باشد. قدم بعدی، اجرای سناریوی کوچک در Test و مقایسه نتیجه با Baseline است؛ سپس برای ارتباط با سایر اجزا به مقاله مادر Plan Guides بازگردید.
خدمات برنامهنویسی و پایگاه داده
برنامهنویسی در اصفهان؛ قبول سفارشهای برنامهنویسی و پایگاه داده با شماره 09131253620. انجام پروژه، آموزش برنامهنویسی و آموزش SQL Server با رویکرد حرفهای و قابل پشتیبانی.
مجموعهای معتبر با سابقه فعالیت حرفهای از سال ۱۳۷۵ شمسی تاکنون در طراحی سامانههای تحت وب، وبسایت، پایگاه داده و راهکارهای نرمافزاری فعالیت میکند.
برای سفارش پروژههای جدید با ایتا، واتساپ و تماس مستقیم: +989131253620 ارتباط بگیرید یا صفحه تماس با ما را ببینید.