ده مثال عملی منحصربهفرد برای MERGE RANGE
مثال 1: تعریف پایه با مقدار ثابت در MERGE RANGE
در مثال شماره 1، سناریوی «تعریف پایه با مقدار ثابت» برای MERGE RANGE اجرا میشود. هدف این است که رفتار Existing Boundary در یک نمونه قابل بازتولید دیده شود و نتیجه بدون نیاز به اجرای ذهنی قابل فهم باشد.
CREATE PARTITION FUNCTION pf_Merge_01 (int) AS RANGE RIGHT FOR VALUES (100,200,300);
CREATE PARTITION SCHEME ps_Merge_01 AS PARTITION pf_Merge_01 ALL TO ([PRIMARY]);
ALTER PARTITION FUNCTION pf_Merge_01() MERGE RANGE (100);
SELECT COUNT(*)+1 AS PartitionCount
FROM sys.partition_range_values
WHERE function_id=(SELECT function_id FROM sys.partition_functions WHERE name=N'pf_Merge_01');
| شاخص | خروجی نمونه |
|---|
| متادیتا | مرزها یا تعداد پارتیشن تغییر کرد |
تحلیل مثال 1 برای MERGE RANGE: این سناریو نشان میدهد Adjacent Partitions باید همراه کنترل کاتالوگ و مقدارهای مرزی بررسی شود. کاربرد واقعی آن در جمعکردن پنجره قدیمی پس از آرشیو یا تخلیه داده است.
مثال 2: اجرای سناریو روی جدول نمونه در MERGE RANGE
در مثال شماره 2، سناریوی «اجرای سناریو روی جدول نمونه» برای MERGE RANGE اجرا میشود. هدف این است که رفتار Adjacent Partitions در یک نمونه قابل بازتولید دیده شود و نتیجه بدون نیاز به اجرای ذهنی قابل فهم باشد.
CREATE PARTITION FUNCTION pf_Merge_02 (int) AS RANGE RIGHT FOR VALUES (200,300,400);
CREATE PARTITION SCHEME ps_Merge_02 AS PARTITION pf_Merge_02 ALL TO ([PRIMARY]);
ALTER PARTITION FUNCTION pf_Merge_02() MERGE RANGE (200);
SELECT COUNT(*)+1 AS PartitionCount
FROM sys.partition_range_values
WHERE function_id=(SELECT function_id FROM sys.partition_functions WHERE name=N'pf_Merge_02');
| شاخص | خروجی نمونه |
|---|
| متادیتا | مرزها یا تعداد پارتیشن تغییر کرد |
تحلیل مثال 2 برای MERGE RANGE: این سناریو نشان میدهد Archive Window باید همراه کنترل کاتالوگ و مقدارهای مرزی بررسی شود. کاربرد واقعی آن در جمعکردن پنجره قدیمی پس از آرشیو یا تخلیه داده است.
مثال 3: استفاده در SELECT و گزارشگیری در MERGE RANGE
در مثال شماره 3، سناریوی «استفاده در SELECT و گزارشگیری» برای MERGE RANGE اجرا میشود. هدف این است که رفتار Archive Window در یک نمونه قابل بازتولید دیده شود و نتیجه بدون نیاز به اجرای ذهنی قابل فهم باشد.
CREATE PARTITION FUNCTION pf_Merge_03 (int) AS RANGE RIGHT FOR VALUES (300,400,500);
CREATE PARTITION SCHEME ps_Merge_03 AS PARTITION pf_Merge_03 ALL TO ([PRIMARY]);
ALTER PARTITION FUNCTION pf_Merge_03() MERGE RANGE (300);
SELECT COUNT(*)+1 AS PartitionCount
FROM sys.partition_range_values
WHERE function_id=(SELECT function_id FROM sys.partition_functions WHERE name=N'pf_Merge_03');
| شاخص | خروجی نمونه |
|---|
| متادیتا | مرزها یا تعداد پارتیشن تغییر کرد |
تحلیل مثال 3 برای MERGE RANGE: این سناریو نشان میدهد Data Movement باید همراه کنترل کاتالوگ و مقدارهای مرزی بررسی شود. کاربرد واقعی آن در جمعکردن پنجره قدیمی پس از آرشیو یا تخلیه داده است.
مثال 4: کنترل شرط و بازه هدف در MERGE RANGE
در مثال شماره 4، سناریوی «کنترل شرط و بازه هدف» برای MERGE RANGE اجرا میشود. هدف این است که رفتار Data Movement در یک نمونه قابل بازتولید دیده شود و نتیجه بدون نیاز به اجرای ذهنی قابل فهم باشد.
CREATE PARTITION FUNCTION pf_Merge_04 (int) AS RANGE RIGHT FOR VALUES (400,500,600);
CREATE PARTITION SCHEME ps_Merge_04 AS PARTITION pf_Merge_04 ALL TO ([PRIMARY]);
ALTER PARTITION FUNCTION pf_Merge_04() MERGE RANGE (400);
SELECT COUNT(*)+1 AS PartitionCount
FROM sys.partition_range_values
WHERE function_id=(SELECT function_id FROM sys.partition_functions WHERE name=N'pf_Merge_04');
| شاخص | خروجی نمونه |
|---|
| متادیتا | مرزها یا تعداد پارتیشن تغییر کرد |
تحلیل مثال 4 برای MERGE RANGE: این سناریو نشان میدهد Boundary Removal باید همراه کنترل کاتالوگ و مقدارهای مرزی بررسی شود. کاربرد واقعی آن در جمعکردن پنجره قدیمی پس از آرشیو یا تخلیه داده است.
مثال 5: ترکیب با قابلیت مکمل SQL Server در MERGE RANGE
در مثال شماره 5، سناریوی «ترکیب با قابلیت مکمل SQL Server» برای MERGE RANGE اجرا میشود. هدف این است که رفتار Boundary Removal در یک نمونه قابل بازتولید دیده شود و نتیجه بدون نیاز به اجرای ذهنی قابل فهم باشد.
CREATE PARTITION FUNCTION pf_Merge_05 (int) AS RANGE RIGHT FOR VALUES (500,600,700);
CREATE PARTITION SCHEME ps_Merge_05 AS PARTITION pf_Merge_05 ALL TO ([PRIMARY]);
ALTER PARTITION FUNCTION pf_Merge_05() MERGE RANGE (500);
SELECT COUNT(*)+1 AS PartitionCount
FROM sys.partition_range_values
WHERE function_id=(SELECT function_id FROM sys.partition_functions WHERE name=N'pf_Merge_05');
| شاخص | خروجی نمونه |
|---|
| متادیتا | مرزها یا تعداد پارتیشن تغییر کرد |
تحلیل مثال 5 برای MERGE RANGE: این سناریو نشان میدهد Partition Count باید همراه کنترل کاتالوگ و مقدارهای مرزی بررسی شود. کاربرد واقعی آن در جمعکردن پنجره قدیمی پس از آرشیو یا تخلیه داده است.
تصویر دوم جریان ورودی تا خروجی MERGE RANGE را با تمرکز بر Adjacent Partitions، Boundary Removal و اعتبارسنجی نتیجه نمایش میدهد.
مثال 6: بررسی رفتار NULL یا داده مرزی در MERGE RANGE
در مثال شماره 6، سناریوی «بررسی رفتار NULL یا داده مرزی» برای MERGE RANGE اجرا میشود. هدف این است که رفتار Partition Count در یک نمونه قابل بازتولید دیده شود و نتیجه بدون نیاز به اجرای ذهنی قابل فهم باشد.
CREATE PARTITION FUNCTION pf_Merge_06 (int) AS RANGE RIGHT FOR VALUES (600,700,800);
CREATE PARTITION SCHEME ps_Merge_06 AS PARTITION pf_Merge_06 ALL TO ([PRIMARY]);
ALTER PARTITION FUNCTION pf_Merge_06() MERGE RANGE (600);
SELECT COUNT(*)+1 AS PartitionCount
FROM sys.partition_range_values
WHERE function_id=(SELECT function_id FROM sys.partition_functions WHERE name=N'pf_Merge_06');
| شاخص | خروجی نمونه |
|---|
| متادیتا | مرزها یا تعداد پارتیشن تغییر کرد |
تحلیل مثال 6 برای MERGE RANGE: این سناریو نشان میدهد Empty Edge باید همراه کنترل کاتالوگ و مقدارهای مرزی بررسی شود. کاربرد واقعی آن در جمعکردن پنجره قدیمی پس از آرشیو یا تخلیه داده است.
مثال 7: ثبت خطای رایج و نسخه اصلاحشده در MERGE RANGE
در مثال شماره 7، سناریوی «ثبت خطای رایج و نسخه اصلاحشده» برای MERGE RANGE اجرا میشود. هدف این است که رفتار Empty Edge در یک نمونه قابل بازتولید دیده شود و نتیجه بدون نیاز به اجرای ذهنی قابل فهم باشد.
CREATE PARTITION FUNCTION pf_Merge_07 (int) AS RANGE RIGHT FOR VALUES (700,800,900);
CREATE PARTITION SCHEME ps_Merge_07 AS PARTITION pf_Merge_07 ALL TO ([PRIMARY]);
ALTER PARTITION FUNCTION pf_Merge_07() MERGE RANGE (700);
SELECT COUNT(*)+1 AS PartitionCount
FROM sys.partition_range_values
WHERE function_id=(SELECT function_id FROM sys.partition_functions WHERE name=N'pf_Merge_07');
| شاخص | خروجی نمونه |
|---|
| متادیتا | مرزها یا تعداد پارتیشن تغییر کرد |
تحلیل مثال 7 برای MERGE RANGE: این سناریو نشان میدهد Existing Boundary باید همراه کنترل کاتالوگ و مقدارهای مرزی بررسی شود. کاربرد واقعی آن در جمعکردن پنجره قدیمی پس از آرشیو یا تخلیه داده است.
مثال 8: سناریوی سازمانی دورهای در MERGE RANGE
در مثال شماره 8، سناریوی «سناریوی سازمانی دورهای» برای MERGE RANGE اجرا میشود. هدف این است که رفتار Existing Boundary در یک نمونه قابل بازتولید دیده شود و نتیجه بدون نیاز به اجرای ذهنی قابل فهم باشد.
CREATE PARTITION FUNCTION pf_Merge_08 (int) AS RANGE RIGHT FOR VALUES (800,900,1000);
CREATE PARTITION SCHEME ps_Merge_08 AS PARTITION pf_Merge_08 ALL TO ([PRIMARY]);
ALTER PARTITION FUNCTION pf_Merge_08() MERGE RANGE (800);
SELECT COUNT(*)+1 AS PartitionCount
FROM sys.partition_range_values
WHERE function_id=(SELECT function_id FROM sys.partition_functions WHERE name=N'pf_Merge_08');
| شاخص | خروجی نمونه |
|---|
| متادیتا | مرزها یا تعداد پارتیشن تغییر کرد |
تحلیل مثال 8 برای MERGE RANGE: این سناریو نشان میدهد Adjacent Partitions باید همراه کنترل کاتالوگ و مقدارهای مرزی بررسی شود. کاربرد واقعی آن در جمعکردن پنجره قدیمی پس از آرشیو یا تخلیه داده است.
مثال 9: اجرای تراکنشی و امکان Rollback در MERGE RANGE
در مثال شماره 9، سناریوی «اجرای تراکنشی و امکان Rollback» برای MERGE RANGE اجرا میشود. هدف این است که رفتار Adjacent Partitions در یک نمونه قابل بازتولید دیده شود و نتیجه بدون نیاز به اجرای ذهنی قابل فهم باشد.
CREATE PARTITION FUNCTION pf_Merge_09 (int) AS RANGE RIGHT FOR VALUES (900,1000,1100);
CREATE PARTITION SCHEME ps_Merge_09 AS PARTITION pf_Merge_09 ALL TO ([PRIMARY]);
ALTER PARTITION FUNCTION pf_Merge_09() MERGE RANGE (900);
SELECT COUNT(*)+1 AS PartitionCount
FROM sys.partition_range_values
WHERE function_id=(SELECT function_id FROM sys.partition_functions WHERE name=N'pf_Merge_09');
| شاخص | خروجی نمونه |
|---|
| متادیتا | مرزها یا تعداد پارتیشن تغییر کرد |
تحلیل مثال 9 برای MERGE RANGE: این سناریو نشان میدهد Archive Window باید همراه کنترل کاتالوگ و مقدارهای مرزی بررسی شود. کاربرد واقعی آن در جمعکردن پنجره قدیمی پس از آرشیو یا تخلیه داده است.
مثال 10: ممیزی Performance و متادیتا در MERGE RANGE
در مثال شماره 10، سناریوی «ممیزی Performance و متادیتا» برای MERGE RANGE اجرا میشود. هدف این است که رفتار Archive Window در یک نمونه قابل بازتولید دیده شود و نتیجه بدون نیاز به اجرای ذهنی قابل فهم باشد.
CREATE PARTITION FUNCTION pf_Merge_10 (int) AS RANGE RIGHT FOR VALUES (1000,1100,1200);
CREATE PARTITION SCHEME ps_Merge_10 AS PARTITION pf_Merge_10 ALL TO ([PRIMARY]);
ALTER PARTITION FUNCTION pf_Merge_10() MERGE RANGE (1000);
SELECT COUNT(*)+1 AS PartitionCount
FROM sys.partition_range_values
WHERE function_id=(SELECT function_id FROM sys.partition_functions WHERE name=N'pf_Merge_10');
| شاخص | خروجی نمونه |
|---|
| متادیتا | مرزها یا تعداد پارتیشن تغییر کرد |
تحلیل مثال 10 برای MERGE RANGE: این سناریو نشان میدهد Data Movement باید همراه کنترل کاتالوگ و مقدارهای مرزی بررسی شود. کاربرد واقعی آن در جمعکردن پنجره قدیمی پس از آرشیو یا تخلیه داده است.
ده پرسش متداول اختصاصی MERGE RANGE
MERGE RANGE: چه مسئلهای را حل میکند؟
MERGE RANGE برای جمعکردن پنجره قدیمی پس از آرشیو یا تخلیه داده بهکار میرود و باید همراه Existing Boundary و Adjacent Partitions تحلیل شود.
MERGE RANGE: چه پیشنیازی دارد؟
آشنایی با Filegroup، Index، نوع داده و متادیتا لازم است؛ سپس Archive Window روی داده آزمایشی بررسی شود.
MERGE RANGE: برای سامانه کوچک مناسب است؟
اگر چرخه آرشیو یا نگهداری مشخص باشد، MERGE RANGE حتی روی PRIMARY ارزش مدیریتی دارد؛ در غیر این صورت هزینه پیچیدگی باید سنجیده شود.
MERGE RANGE: چه زمانی متخصص لازم است؟
در جدول بزرگ، SLA سخت، چند Filegroup یا Sliding Window، طراحی MERGE RANGE باید با تست بار و برنامه بازگشت تخصصی انجام شود.
MERGE RANGE: با چه قابلیتی اشتباه میشود؟
نقش MERGE RANGE باید از مرزبندی، نگاشت فیزیکی و عملیات نگهداری جدا شود؛ مفهوم محوری این مقاله Existing Boundary است.
MERGE RANGE: برای سفارش پیادهسازی چه اطلاعاتی لازم است؟
حجم و رشد داده، نسخه SQL Server، ساختار Index، کلید پارتیشن و پنجره نگهداری برای برآورد اجرای MERGE RANGE لازماند.
MERGE RANGE: رایجترین خطا چیست؟
در MERGE RANGE یکی از خطاهای مهم «ادغام دو پارتیشن بزرگ» است و باید پیششرطها از کاتالوگ کنترل شوند.
MERGE RANGE: اثر Performance چگونه است؟
هزینه MERGE RANGE به حجم داده و پارتیشن درگیر وابسته است؛ خالیکردن پارتیشن قدیمی و پایش لاگ و قفل معیار اصلیاند.
MERGE RANGE: Best Practice اصلی چیست؟
برای MERGE RANGE باید «مرز را از متادیتا بخوانید» و خروجی کنترل پیش و پس از اجرا در مخزن تغییرات ثبت شود.
MERGE RANGE: سازگاری نسخهها چگونه است؟
قابلیتهای پایه MERGE RANGE در نسخههای مدرن SQL Server وجود دارند، اما مجوز و محدودیت نسخه هدف باید جداگانه آزموده شود.