آموزش ALTER TABLE SWITCH در SQL Server؛ آموزش کامل با ۱۰ مثال SQL Server

آموزش ALTER TABLE SWITCH در SQL Server

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

نظرات 0

آموزش ALTER TABLE SWITCH در SQL Server

مقدمه اختصاصی ALTER TABLE ... SWITCH

ALTER TABLE ... SWITCH مالکیت صفحات داده را میان جدول Stage و پارتیشن مقصد بدون کپی ردیفی جابه‌جا می‌کند. این قابلیت زمانی نتیجه مطلوب می‌دهد که مرز داده، الگوی Query و برنامه نگهداری از ابتدا هماهنگ شوند.

هدف عملی این مقاله، بارگذاری سریع، آرشیو و تخلیه پارتیشن است. مسیر آموزش از نحو و پارامترها شروع می‌شود و با ده مثال مستقل، خطاها، Performance و کنترل استقرار ادامه می‌یابد.

برای دیدن جایگاه ALTER TABLE ... SWITCH در کل مجموعه، راهنمای جامع پارتیشن‌بندی جداول در SQL Server را باز کنید.

تعریف فنی و نحو ALTER TABLE ... SWITCH

در سطح کاتالوگ، ALTER TABLE ... SWITCH روی اشیای پارتیشن‌بندی و وابستگی‌های آن‌ها اثر می‌گذارد. خروجی دستور باید با متادیتا و شمار ردیف‌ها تأیید شود، نه فقط با نبود پیام خطا.

قاعده ایمنی ALTER TABLE ... SWITCH: پیش‌شرط، دامنه اثر، Transaction کوتاه و برنامه بازگشت باید پیش از اجرای تولید مشخص باشند.

Syntax استاندارد ALTER TABLE ... SWITCH

ALTER TABLE source_table SWITCH PARTITION 2 TO target_table;

پارامترهای کلیدی ALTER TABLE ... SWITCH

جزءتوضیح
مبدأجدول یا پارتیشن دارای داده
مقصدساختار همسان و خالی
شماره پارتیشندامنه منطقی جابه‌جایی
CHECK Constraintاثبات تعلق داده به دامنه

نقشه مفهومی ALTER TABLE ... SWITCH

ALTER TABLE ... SWITCH؛ نمودار فنی 1رابطه Metadata Switch، Staging Table، Aligned Index، CHECK Constraint و Empty Target در ALTER TABLE ... SWITCH.ALTER TABLE ... SWITCHMetadata Switchکنترل مرحله 1Staging Tableکنترل مرحله 2Aligned Indexکنترل مرحله 3CHECK Constraintکنترل مرحله 4Empty Targetکنترل مرحله 5Schema Lockکنترل مرحله 6Best Practice: Metadata Switch + CHECK Constraint + Schema Lockورودی، وابستگی، خطا و خروجی قبل از استقرار بررسی می‌شوند.

تصویر اول نشان می‌دهد Metadata Switch چگونه با Staging Table، Aligned Index و کنترل نتیجه در فرایند ALTER TABLE ... SWITCH مرتبط می‌شود.

ده مثال عملی منحصربه‌فرد برای ALTER TABLE ... SWITCH

مثال 1: تعریف پایه با مقدار ثابت در ALTER TABLE ... SWITCH

در مثال شماره 1، سناریوی «تعریف پایه با مقدار ثابت» برای ALTER TABLE ... SWITCH اجرا می‌شود. هدف این است که رفتار Metadata Switch در یک نمونه قابل بازتولید دیده شود و نتیجه بدون نیاز به اجرای ذهنی قابل فهم باشد.

CREATE PARTITION FUNCTION pf_Switch_01 (int) AS RANGE RIGHT FOR VALUES (100,200);
CREATE PARTITION SCHEME ps_Switch_01 AS PARTITION pf_Switch_01 ALL TO ([PRIMARY]);
CREATE TABLE dbo.SwitchMain_01 (Id int NOT NULL, Payload nvarchar(50) NULL) ON ps_Switch_01(Id);
CREATE TABLE dbo.SwitchStage_01 (Id int NOT NULL, Payload nvarchar(50) NULL,
 CONSTRAINT CK_SwitchStage_01 CHECK (Id >= 100 AND Id < 200));
INSERT INTO dbo.SwitchMain_01(Id,Payload) VALUES (110,N'ردیف اول 01'),(140,N'ردیف دوم 01');
ALTER TABLE dbo.SwitchMain_01 SWITCH PARTITION 2 TO dbo.SwitchStage_01;
SELECT COUNT(*) AS StageRows FROM dbo.SwitchStage_01;
شاخصخروجی نمونه
Stage table2

تحلیل مثال 1 برای ALTER TABLE ... SWITCH: این سناریو نشان می‌دهد Staging Table باید همراه کنترل کاتالوگ و مقدارهای مرزی بررسی شود. کاربرد واقعی آن در بارگذاری سریع، آرشیو و تخلیه پارتیشن است.

مثال 2: اجرای سناریو روی جدول نمونه در ALTER TABLE ... SWITCH

در مثال شماره 2، سناریوی «اجرای سناریو روی جدول نمونه» برای ALTER TABLE ... SWITCH اجرا می‌شود. هدف این است که رفتار Staging Table در یک نمونه قابل بازتولید دیده شود و نتیجه بدون نیاز به اجرای ذهنی قابل فهم باشد.

CREATE PARTITION FUNCTION pf_Switch_02 (int) AS RANGE RIGHT FOR VALUES (200,300);
CREATE PARTITION SCHEME ps_Switch_02 AS PARTITION pf_Switch_02 ALL TO ([PRIMARY]);
CREATE TABLE dbo.SwitchMain_02 (Id int NOT NULL, Payload nvarchar(50) NULL) ON ps_Switch_02(Id);
CREATE TABLE dbo.SwitchStage_02 (Id int NOT NULL, Payload nvarchar(50) NULL,
 CONSTRAINT CK_SwitchStage_02 CHECK (Id >= 200 AND Id < 300));
INSERT INTO dbo.SwitchMain_02(Id,Payload) VALUES (210,N'ردیف اول 02'),(240,N'ردیف دوم 02');
ALTER TABLE dbo.SwitchMain_02 SWITCH PARTITION 2 TO dbo.SwitchStage_02;
SELECT COUNT(*) AS StageRows FROM dbo.SwitchStage_02;
شاخصخروجی نمونه
Stage table2

تحلیل مثال 2 برای ALTER TABLE ... SWITCH: این سناریو نشان می‌دهد Aligned Index باید همراه کنترل کاتالوگ و مقدارهای مرزی بررسی شود. کاربرد واقعی آن در بارگذاری سریع، آرشیو و تخلیه پارتیشن است.

مثال 3: استفاده در SELECT و گزارش‌گیری در ALTER TABLE ... SWITCH

در مثال شماره 3، سناریوی «استفاده در SELECT و گزارش‌گیری» برای ALTER TABLE ... SWITCH اجرا می‌شود. هدف این است که رفتار Aligned Index در یک نمونه قابل بازتولید دیده شود و نتیجه بدون نیاز به اجرای ذهنی قابل فهم باشد.

CREATE PARTITION FUNCTION pf_Switch_03 (int) AS RANGE RIGHT FOR VALUES (300,400);
CREATE PARTITION SCHEME ps_Switch_03 AS PARTITION pf_Switch_03 ALL TO ([PRIMARY]);
CREATE TABLE dbo.SwitchMain_03 (Id int NOT NULL, Payload nvarchar(50) NULL) ON ps_Switch_03(Id);
CREATE TABLE dbo.SwitchStage_03 (Id int NOT NULL, Payload nvarchar(50) NULL,
 CONSTRAINT CK_SwitchStage_03 CHECK (Id >= 300 AND Id < 400));
INSERT INTO dbo.SwitchMain_03(Id,Payload) VALUES (310,N'ردیف اول 03'),(340,N'ردیف دوم 03');
ALTER TABLE dbo.SwitchMain_03 SWITCH PARTITION 2 TO dbo.SwitchStage_03;
SELECT COUNT(*) AS StageRows FROM dbo.SwitchStage_03;
شاخصخروجی نمونه
Stage table2

تحلیل مثال 3 برای ALTER TABLE ... SWITCH: این سناریو نشان می‌دهد CHECK Constraint باید همراه کنترل کاتالوگ و مقدارهای مرزی بررسی شود. کاربرد واقعی آن در بارگذاری سریع، آرشیو و تخلیه پارتیشن است.

مثال 4: کنترل شرط و بازه هدف در ALTER TABLE ... SWITCH

در مثال شماره 4، سناریوی «کنترل شرط و بازه هدف» برای ALTER TABLE ... SWITCH اجرا می‌شود. هدف این است که رفتار CHECK Constraint در یک نمونه قابل بازتولید دیده شود و نتیجه بدون نیاز به اجرای ذهنی قابل فهم باشد.

CREATE PARTITION FUNCTION pf_Switch_04 (int) AS RANGE RIGHT FOR VALUES (400,500);
CREATE PARTITION SCHEME ps_Switch_04 AS PARTITION pf_Switch_04 ALL TO ([PRIMARY]);
CREATE TABLE dbo.SwitchMain_04 (Id int NOT NULL, Payload nvarchar(50) NULL) ON ps_Switch_04(Id);
CREATE TABLE dbo.SwitchStage_04 (Id int NOT NULL, Payload nvarchar(50) NULL,
 CONSTRAINT CK_SwitchStage_04 CHECK (Id >= 400 AND Id < 500));
INSERT INTO dbo.SwitchMain_04(Id,Payload) VALUES (410,N'ردیف اول 04'),(440,N'ردیف دوم 04');
ALTER TABLE dbo.SwitchMain_04 SWITCH PARTITION 2 TO dbo.SwitchStage_04;
SELECT COUNT(*) AS StageRows FROM dbo.SwitchStage_04;
شاخصخروجی نمونه
Stage table2

تحلیل مثال 4 برای ALTER TABLE ... SWITCH: این سناریو نشان می‌دهد Empty Target باید همراه کنترل کاتالوگ و مقدارهای مرزی بررسی شود. کاربرد واقعی آن در بارگذاری سریع، آرشیو و تخلیه پارتیشن است.

مثال 5: ترکیب با قابلیت مکمل SQL Server در ALTER TABLE ... SWITCH

در مثال شماره 5، سناریوی «ترکیب با قابلیت مکمل SQL Server» برای ALTER TABLE ... SWITCH اجرا می‌شود. هدف این است که رفتار Empty Target در یک نمونه قابل بازتولید دیده شود و نتیجه بدون نیاز به اجرای ذهنی قابل فهم باشد.

CREATE PARTITION FUNCTION pf_Switch_05 (int) AS RANGE RIGHT FOR VALUES (500,600);
CREATE PARTITION SCHEME ps_Switch_05 AS PARTITION pf_Switch_05 ALL TO ([PRIMARY]);
CREATE TABLE dbo.SwitchMain_05 (Id int NOT NULL, Payload nvarchar(50) NULL) ON ps_Switch_05(Id);
CREATE TABLE dbo.SwitchStage_05 (Id int NOT NULL, Payload nvarchar(50) NULL,
 CONSTRAINT CK_SwitchStage_05 CHECK (Id >= 500 AND Id < 600));
INSERT INTO dbo.SwitchMain_05(Id,Payload) VALUES (510,N'ردیف اول 05'),(540,N'ردیف دوم 05');
ALTER TABLE dbo.SwitchMain_05 SWITCH PARTITION 2 TO dbo.SwitchStage_05;
SELECT COUNT(*) AS StageRows FROM dbo.SwitchStage_05;
شاخصخروجی نمونه
Stage table2

تحلیل مثال 5 برای ALTER TABLE ... SWITCH: این سناریو نشان می‌دهد Schema Lock باید همراه کنترل کاتالوگ و مقدارهای مرزی بررسی شود. کاربرد واقعی آن در بارگذاری سریع، آرشیو و تخلیه پارتیشن است.

ALTER TABLE ... SWITCH؛ نمودار فنی 2رابطه Staging Table، Aligned Index، CHECK Constraint، Empty Target و Schema Lock در ALTER TABLE ... SWITCH.ALTER TABLE ... SWITCHStaging Tableکنترل مرحله 1Aligned Indexکنترل مرحله 2CHECK Constraintکنترل مرحله 3Empty Targetکنترل مرحله 4Schema Lockکنترل مرحله 5Archive Outکنترل مرحله 6Best Practice: Staging Table + Empty Target + Archive Outورودی، وابستگی، خطا و خروجی قبل از استقرار بررسی می‌شوند.

تصویر دوم جریان ورودی تا خروجی ALTER TABLE ... SWITCH را با تمرکز بر Staging Table، Empty Target و اعتبارسنجی نتیجه نمایش می‌دهد.

مثال 6: بررسی رفتار NULL یا داده مرزی در ALTER TABLE ... SWITCH

در مثال شماره 6، سناریوی «بررسی رفتار NULL یا داده مرزی» برای ALTER TABLE ... SWITCH اجرا می‌شود. هدف این است که رفتار Schema Lock در یک نمونه قابل بازتولید دیده شود و نتیجه بدون نیاز به اجرای ذهنی قابل فهم باشد.

CREATE PARTITION FUNCTION pf_Switch_06 (int) AS RANGE RIGHT FOR VALUES (600,700);
CREATE PARTITION SCHEME ps_Switch_06 AS PARTITION pf_Switch_06 ALL TO ([PRIMARY]);
CREATE TABLE dbo.SwitchMain_06 (Id int NOT NULL, Payload nvarchar(50) NULL) ON ps_Switch_06(Id);
CREATE TABLE dbo.SwitchStage_06 (Id int NOT NULL, Payload nvarchar(50) NULL,
 CONSTRAINT CK_SwitchStage_06 CHECK (Id >= 600 AND Id < 700));
INSERT INTO dbo.SwitchMain_06(Id,Payload) VALUES (610,N'ردیف اول 06'),(640,N'ردیف دوم 06');
ALTER TABLE dbo.SwitchMain_06 SWITCH PARTITION 2 TO dbo.SwitchStage_06;
SELECT COUNT(*) AS StageRows FROM dbo.SwitchStage_06;
شاخصخروجی نمونه
Stage table2

تحلیل مثال 6 برای ALTER TABLE ... SWITCH: این سناریو نشان می‌دهد Archive Out باید همراه کنترل کاتالوگ و مقدارهای مرزی بررسی شود. کاربرد واقعی آن در بارگذاری سریع، آرشیو و تخلیه پارتیشن است.

مثال 7: ثبت خطای رایج و نسخه اصلاح‌شده در ALTER TABLE ... SWITCH

در مثال شماره 7، سناریوی «ثبت خطای رایج و نسخه اصلاح‌شده» برای ALTER TABLE ... SWITCH اجرا می‌شود. هدف این است که رفتار Archive Out در یک نمونه قابل بازتولید دیده شود و نتیجه بدون نیاز به اجرای ذهنی قابل فهم باشد.

CREATE PARTITION FUNCTION pf_Switch_07 (int) AS RANGE RIGHT FOR VALUES (700,800);
CREATE PARTITION SCHEME ps_Switch_07 AS PARTITION pf_Switch_07 ALL TO ([PRIMARY]);
CREATE TABLE dbo.SwitchMain_07 (Id int NOT NULL, Payload nvarchar(50) NULL) ON ps_Switch_07(Id);
CREATE TABLE dbo.SwitchStage_07 (Id int NOT NULL, Payload nvarchar(50) NULL,
 CONSTRAINT CK_SwitchStage_07 CHECK (Id >= 700 AND Id < 800));
INSERT INTO dbo.SwitchMain_07(Id,Payload) VALUES (710,N'ردیف اول 07'),(740,N'ردیف دوم 07');
ALTER TABLE dbo.SwitchMain_07 SWITCH PARTITION 2 TO dbo.SwitchStage_07;
SELECT COUNT(*) AS StageRows FROM dbo.SwitchStage_07;
شاخصخروجی نمونه
Stage table2

تحلیل مثال 7 برای ALTER TABLE ... SWITCH: این سناریو نشان می‌دهد Metadata Switch باید همراه کنترل کاتالوگ و مقدارهای مرزی بررسی شود. کاربرد واقعی آن در بارگذاری سریع، آرشیو و تخلیه پارتیشن است.

مثال 8: سناریوی سازمانی دوره‌ای در ALTER TABLE ... SWITCH

در مثال شماره 8، سناریوی «سناریوی سازمانی دوره‌ای» برای ALTER TABLE ... SWITCH اجرا می‌شود. هدف این است که رفتار Metadata Switch در یک نمونه قابل بازتولید دیده شود و نتیجه بدون نیاز به اجرای ذهنی قابل فهم باشد.

CREATE PARTITION FUNCTION pf_Switch_08 (int) AS RANGE RIGHT FOR VALUES (800,900);
CREATE PARTITION SCHEME ps_Switch_08 AS PARTITION pf_Switch_08 ALL TO ([PRIMARY]);
CREATE TABLE dbo.SwitchMain_08 (Id int NOT NULL, Payload nvarchar(50) NULL) ON ps_Switch_08(Id);
CREATE TABLE dbo.SwitchStage_08 (Id int NOT NULL, Payload nvarchar(50) NULL,
 CONSTRAINT CK_SwitchStage_08 CHECK (Id >= 800 AND Id < 900));
INSERT INTO dbo.SwitchMain_08(Id,Payload) VALUES (810,N'ردیف اول 08'),(840,N'ردیف دوم 08');
ALTER TABLE dbo.SwitchMain_08 SWITCH PARTITION 2 TO dbo.SwitchStage_08;
SELECT COUNT(*) AS StageRows FROM dbo.SwitchStage_08;
شاخصخروجی نمونه
Stage table2

تحلیل مثال 8 برای ALTER TABLE ... SWITCH: این سناریو نشان می‌دهد Staging Table باید همراه کنترل کاتالوگ و مقدارهای مرزی بررسی شود. کاربرد واقعی آن در بارگذاری سریع، آرشیو و تخلیه پارتیشن است.

مثال 9: اجرای تراکنشی و امکان Rollback در ALTER TABLE ... SWITCH

در مثال شماره 9، سناریوی «اجرای تراکنشی و امکان Rollback» برای ALTER TABLE ... SWITCH اجرا می‌شود. هدف این است که رفتار Staging Table در یک نمونه قابل بازتولید دیده شود و نتیجه بدون نیاز به اجرای ذهنی قابل فهم باشد.

CREATE PARTITION FUNCTION pf_Switch_09 (int) AS RANGE RIGHT FOR VALUES (900,1000);
CREATE PARTITION SCHEME ps_Switch_09 AS PARTITION pf_Switch_09 ALL TO ([PRIMARY]);
CREATE TABLE dbo.SwitchMain_09 (Id int NOT NULL, Payload nvarchar(50) NULL) ON ps_Switch_09(Id);
CREATE TABLE dbo.SwitchStage_09 (Id int NOT NULL, Payload nvarchar(50) NULL,
 CONSTRAINT CK_SwitchStage_09 CHECK (Id >= 900 AND Id < 1000));
INSERT INTO dbo.SwitchMain_09(Id,Payload) VALUES (910,N'ردیف اول 09'),(940,N'ردیف دوم 09');
ALTER TABLE dbo.SwitchMain_09 SWITCH PARTITION 2 TO dbo.SwitchStage_09;
SELECT COUNT(*) AS StageRows FROM dbo.SwitchStage_09;
شاخصخروجی نمونه
Stage table2

تحلیل مثال 9 برای ALTER TABLE ... SWITCH: این سناریو نشان می‌دهد Aligned Index باید همراه کنترل کاتالوگ و مقدارهای مرزی بررسی شود. کاربرد واقعی آن در بارگذاری سریع، آرشیو و تخلیه پارتیشن است.

مثال 10: ممیزی Performance و متادیتا در ALTER TABLE ... SWITCH

در مثال شماره 10، سناریوی «ممیزی Performance و متادیتا» برای ALTER TABLE ... SWITCH اجرا می‌شود. هدف این است که رفتار Aligned Index در یک نمونه قابل بازتولید دیده شود و نتیجه بدون نیاز به اجرای ذهنی قابل فهم باشد.

CREATE PARTITION FUNCTION pf_Switch_10 (int) AS RANGE RIGHT FOR VALUES (1000,1100);
CREATE PARTITION SCHEME ps_Switch_10 AS PARTITION pf_Switch_10 ALL TO ([PRIMARY]);
CREATE TABLE dbo.SwitchMain_10 (Id int NOT NULL, Payload nvarchar(50) NULL) ON ps_Switch_10(Id);
CREATE TABLE dbo.SwitchStage_10 (Id int NOT NULL, Payload nvarchar(50) NULL,
 CONSTRAINT CK_SwitchStage_10 CHECK (Id >= 1000 AND Id < 1100));
INSERT INTO dbo.SwitchMain_10(Id,Payload) VALUES (1010,N'ردیف اول 10'),(1040,N'ردیف دوم 10');
ALTER TABLE dbo.SwitchMain_10 SWITCH PARTITION 2 TO dbo.SwitchStage_10;
SELECT COUNT(*) AS StageRows FROM dbo.SwitchStage_10;
شاخصخروجی نمونه
Stage table2

تحلیل مثال 10 برای ALTER TABLE ... SWITCH: این سناریو نشان می‌دهد CHECK Constraint باید همراه کنترل کاتالوگ و مقدارهای مرزی بررسی شود. کاربرد واقعی آن در بارگذاری سریع، آرشیو و تخلیه پارتیشن است.

خطاهای رایج ALTER TABLE ... SWITCH

خطاهای ALTER TABLE ... SWITCH فقط Syntax نیستند و اغلب از ناسازگاری میان تعریف منطقی و وضعیت واقعی جدول، Scheme، Function یا Index ناشی می‌شوند.

  • مقصد غیرخالی؛ این مورد در سناریوی ALTER TABLE ... SWITCH باید پیش از اجرا کنترل شود.
  • تفاوت Nullability یا نوع ستون؛ این مورد در سناریوی ALTER TABLE ... SWITCH باید پیش از اجرا کنترل شود.
  • Index یا Compression متفاوت؛ این مورد در سناریوی ALTER TABLE ... SWITCH باید پیش از اجرا کنترل شود.
  • CHECK Constraint ناکافی؛ این مورد در سناریوی ALTER TABLE ... SWITCH باید پیش از اجرا کنترل شود.

برای عیب‌یابی ALTER TABLE ... SWITCH از sys.partition_functions، sys.partition_schemes، sys.partition_range_values، sys.indexes و sys.partitions استفاده کنید تا اصلاح بر اساس داده واقعی باشد.

Performance و هم‌زمانی در ALTER TABLE ... SWITCH

ملاحظه کارایی 1 در ALTER TABLE ... SWITCH: لاگ کمتر از INSERT/DELETE. علاوه بر زمان اجرا، رشد لاگ، قفل Sch-M، تعداد ردیف و اثر بر Sessionهای هم‌زمان اندازه‌گیری شود.

ملاحظه کارایی 2 در ALTER TABLE ... SWITCH: کوتاه نگه‌داشتن Sch-M. علاوه بر زمان اجرا، رشد لاگ، قفل Sch-M، تعداد ردیف و اثر بر Sessionهای هم‌زمان اندازه‌گیری شود.

ملاحظه کارایی 3 در ALTER TABLE ... SWITCH: اعتبارسنجی ساختار پیش از اجرا. علاوه بر زمان اجرا، رشد لاگ، قفل Sch-M، تعداد ردیف و اثر بر Sessionهای هم‌زمان اندازه‌گیری شود.

Best Practices اجرای ALTER TABLE ... SWITCH

  1. Stage را از Script واقعی بسازید؛ این اصل برای اجرای پایدار ALTER TABLE ... SWITCH در محیط سازمانی ضروری است.
  2. مقصد را خالی نگه دارید؛ این اصل برای اجرای پایدار ALTER TABLE ... SWITCH در محیط سازمانی ضروری است.
  3. Indexها را همسان کنید؛ این اصل برای اجرای پایدار ALTER TABLE ... SWITCH در محیط سازمانی ضروری است.
  4. شمار ردیف را پس از SWITCH کنترل کنید؛ این اصل برای اجرای پایدار ALTER TABLE ... SWITCH در محیط سازمانی ضروری است.
  5. مسیر SWITCH معکوس آماده کنید؛ این اصل برای اجرای پایدار ALTER TABLE ... SWITCH در محیط سازمانی ضروری است.

با اجرای این چک‌لیست، ALTER TABLE ... SWITCH از یک دستور دستی به فرایندی قابل تکرار، قابل ممیزی و قابل بازگشت تبدیل می‌شود.

تصمیم فنی و کنترل ریسک ALTER TABLE ... SWITCH

ALTER TABLE ... SWITCH؛ نمودار فنی 3رابطه Aligned Index، CHECK Constraint، Empty Target، Schema Lock و Archive Out در ALTER TABLE ... SWITCH.ALTER TABLE ... SWITCHAligned Indexکنترل مرحله 1CHECK Constraintکنترل مرحله 2Empty Targetکنترل مرحله 3Schema Lockکنترل مرحله 4Archive Outکنترل مرحله 5Metadata Switchکنترل مرحله 6Best Practice: Aligned Index + Schema Lock + Metadata Switchورودی، وابستگی، خطا و خروجی قبل از استقرار بررسی می‌شوند.

تصویر سوم انتخاب میان اجرای مستقیم، اجرای روی پارتیشن خالی یا توقف برای بازطراحی را بر اساس Aligned Index، Schema Lock و هزینه عملیاتی نشان می‌دهد.

ده پرسش متداول اختصاصی ALTER TABLE ... SWITCH

ALTER TABLE ... SWITCH: چه مسئله‌ای را حل می‌کند؟

ALTER TABLE ... SWITCH برای بارگذاری سریع، آرشیو و تخلیه پارتیشن به‌کار می‌رود و باید همراه Metadata Switch و Staging Table تحلیل شود.

ALTER TABLE ... SWITCH: چه پیش‌نیازی دارد؟

آشنایی با Filegroup، Index، نوع داده و متادیتا لازم است؛ سپس Aligned Index روی داده آزمایشی بررسی شود.

ALTER TABLE ... SWITCH: برای سامانه کوچک مناسب است؟

اگر چرخه آرشیو یا نگهداری مشخص باشد، ALTER TABLE ... SWITCH حتی روی PRIMARY ارزش مدیریتی دارد؛ در غیر این صورت هزینه پیچیدگی باید سنجیده شود.

ALTER TABLE ... SWITCH: چه زمانی متخصص لازم است؟

در جدول بزرگ، SLA سخت، چند Filegroup یا Sliding Window، طراحی ALTER TABLE ... SWITCH باید با تست بار و برنامه بازگشت تخصصی انجام شود.

ALTER TABLE ... SWITCH: با چه قابلیتی اشتباه می‌شود؟

نقش ALTER TABLE ... SWITCH باید از مرزبندی، نگاشت فیزیکی و عملیات نگهداری جدا شود؛ مفهوم محوری این مقاله Metadata Switch است.

ALTER TABLE ... SWITCH: برای سفارش پیاده‌سازی چه اطلاعاتی لازم است؟

حجم و رشد داده، نسخه SQL Server، ساختار Index، کلید پارتیشن و پنجره نگهداری برای برآورد اجرای ALTER TABLE ... SWITCH لازم‌اند.

ALTER TABLE ... SWITCH: رایج‌ترین خطا چیست؟

در ALTER TABLE ... SWITCH یکی از خطاهای مهم «مقصد غیرخالی» است و باید پیش‌شرط‌ها از کاتالوگ کنترل شوند.

ALTER TABLE ... SWITCH: اثر Performance چگونه است؟

هزینه ALTER TABLE ... SWITCH به حجم داده و پارتیشن درگیر وابسته است؛ لاگ کمتر از INSERT/DELETE و پایش لاگ و قفل معیار اصلی‌اند.

ALTER TABLE ... SWITCH: Best Practice اصلی چیست؟

برای ALTER TABLE ... SWITCH باید «Stage را از Script واقعی بسازید» و خروجی کنترل پیش و پس از اجرا در مخزن تغییرات ثبت شود.

ALTER TABLE ... SWITCH: سازگاری نسخه‌ها چگونه است؟

قابلیت‌های پایه ALTER TABLE ... SWITCH در نسخه‌های مدرن SQL Server وجود دارند، اما مجوز و محدودیت نسخه هدف باید جداگانه آزموده شود.

سؤال‌های مصاحبه درباره ALTER TABLE ... SWITCH

  1. نقش ALTER TABLE ... SWITCH را در زنجیره Partition Function، Scheme و Table توضیح دهید.
  2. پیش از ALTER TABLE ... SWITCH کدام Viewهای سیستمی را بررسی می‌کنید؟
  3. اثر ALTER TABLE ... SWITCH بر لاگ و قفل چگونه اندازه‌گیری می‌شود؟
  4. برنامه Rollback برای شکست ALTER TABLE ... SWITCH چیست؟
  5. در چه شرایطی اجرای ALTER TABLE ... SWITCH را متوقف می‌کنید؟

پاسخ حرفه‌ای باید علاوه بر نحو، درباره Metadata Switch، وابستگی، حجم داده و کنترل پس از اجرای ALTER TABLE ... SWITCH صحبت کند.

چک‌لیست نهایی ALTER TABLE ... SWITCH

  • تعریف واقعی اشیای مرتبط با ALTER TABLE ... SWITCH از کاتالوگ خوانده شده است.
  • مقدارهای قبل، برابر و بعد از مرز برای ALTER TABLE ... SWITCH آزموده شده‌اند.
  • فضای لاگ و قفل احتمالی ALTER TABLE ... SWITCH در محیط نزدیک به تولید سنجیده شده است.
  • TRY/CATCH و Transaction کوتاه برای ALTER TABLE ... SWITCH وجود دارد.
  • خروجی کنترلی و برنامه بازگشت ALTER TABLE ... SWITCH ثبت شده است.

جمع‌بندی آموزش ALTER TABLE ... SWITCH

ALTER TABLE ... SWITCH زمانی قابل اتکا است که نقش آن در معماری پارتیشن‌بندی درست فهمیده شود. ده مثال این مقاله، مسیر تعریف، اجرا، کنترل خطا و سنجش Performance را به‌صورت مستقل پوشش دادند.

برای مقایسه ALTER TABLE ... SWITCH با سایر دستورات، به مقاله مادر Table Partitioning بازگردید و ترتیب عملیات را در یک Sliding Window کامل مرور کنید.

خدمات برنامه‌نویسی و پایگاه داده برای ALTER TABLE ... SWITCH

برای تبدیل آموزش ALTER TABLE ... SWITCH به یک راهکار اجرایی، خدمات برنامه‌نویسی در اصفهان و پذیرش سفارش پایگاه داده با شماره 09131253620 ارائه می‌شود.

این مجموعه معتبر از سال ۱۳۷۵ شمسی در انجام پروژه، آموزش برنامه‌نویسی و آموزش SQL Server فعالیت حرفه‌ای دارد و می‌تواند طراحی مربوط به ALTER TABLE ... SWITCH را بازبینی یا اجرا کند.

برای سفارش پروژه‌ای که ALTER TABLE ... SWITCH بخشی از آن است، از تماس مستقیم 09131253620 استفاده کنید؛ ایتا، واتساپ و تماس مستقیم با +989131253620 نیز در دسترس است.

تماس با ما برای مشاوره تخصصی ALTER TABLE ... SWITCH

 

0 نظر

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

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

حرف 500 حداکثر