ده مثال عملی منحصربهفرد برای SPLIT RANGE
مثال 1: تعریف پایه با مقدار ثابت در SPLIT RANGE
در مثال شماره 1، سناریوی «تعریف پایه با مقدار ثابت» برای SPLIT RANGE اجرا میشود. هدف این است که رفتار New Boundary در یک نمونه قابل بازتولید دیده شود و نتیجه بدون نیاز به اجرای ذهنی قابل فهم باشد.
CREATE PARTITION FUNCTION pf_split_01 (int) AS RANGE RIGHT FOR VALUES (100,200,300);
CREATE PARTITION SCHEME ps_split_01 AS PARTITION pf_split_01 ALL TO ([PRIMARY]);
ALTER PARTITION SCHEME ps_split_01 NEXT USED [PRIMARY];
ALTER PARTITION FUNCTION pf_split_01() SPLIT RANGE (150);
SELECT boundary_id, value
FROM sys.partition_range_values
WHERE function_id=(SELECT function_id FROM sys.partition_functions WHERE name=N'pf_split_01')
ORDER BY boundary_id;
| شاخص | خروجی نمونه |
|---|
| متادیتا | مرزها یا تعداد پارتیشن تغییر کرد |
تحلیل مثال 1 برای SPLIT RANGE: این سناریو نشان میدهد NEXT USED باید همراه کنترل کاتالوگ و مقدارهای مرزی بررسی شود. کاربرد واقعی آن در ایجاد دوره یا دامنه جدید در Sliding Window است.
مثال 2: اجرای سناریو روی جدول نمونه در SPLIT RANGE
در مثال شماره 2، سناریوی «اجرای سناریو روی جدول نمونه» برای SPLIT RANGE اجرا میشود. هدف این است که رفتار NEXT USED در یک نمونه قابل بازتولید دیده شود و نتیجه بدون نیاز به اجرای ذهنی قابل فهم باشد.
CREATE PARTITION FUNCTION pf_split_02 (int) AS RANGE RIGHT FOR VALUES (200,300,400);
CREATE PARTITION SCHEME ps_split_02 AS PARTITION pf_split_02 ALL TO ([PRIMARY]);
ALTER PARTITION SCHEME ps_split_02 NEXT USED [PRIMARY];
ALTER PARTITION FUNCTION pf_split_02() SPLIT RANGE (250);
SELECT boundary_id, value
FROM sys.partition_range_values
WHERE function_id=(SELECT function_id FROM sys.partition_functions WHERE name=N'pf_split_02')
ORDER BY boundary_id;
| شاخص | خروجی نمونه |
|---|
| متادیتا | مرزها یا تعداد پارتیشن تغییر کرد |
تحلیل مثال 2 برای SPLIT RANGE: این سناریو نشان میدهد Empty Partition باید همراه کنترل کاتالوگ و مقدارهای مرزی بررسی شود. کاربرد واقعی آن در ایجاد دوره یا دامنه جدید در Sliding Window است.
مثال 3: استفاده در SELECT و گزارشگیری در SPLIT RANGE
در مثال شماره 3، سناریوی «استفاده در SELECT و گزارشگیری» برای SPLIT RANGE اجرا میشود. هدف این است که رفتار Empty Partition در یک نمونه قابل بازتولید دیده شود و نتیجه بدون نیاز به اجرای ذهنی قابل فهم باشد.
CREATE PARTITION FUNCTION pf_split_03 (int) AS RANGE RIGHT FOR VALUES (300,400,500);
CREATE PARTITION SCHEME ps_split_03 AS PARTITION pf_split_03 ALL TO ([PRIMARY]);
ALTER PARTITION SCHEME ps_split_03 NEXT USED [PRIMARY];
ALTER PARTITION FUNCTION pf_split_03() SPLIT RANGE (350);
SELECT boundary_id, value
FROM sys.partition_range_values
WHERE function_id=(SELECT function_id FROM sys.partition_functions WHERE name=N'pf_split_03')
ORDER BY boundary_id;
| شاخص | خروجی نمونه |
|---|
| متادیتا | مرزها یا تعداد پارتیشن تغییر کرد |
تحلیل مثال 3 برای SPLIT RANGE: این سناریو نشان میدهد Data Movement باید همراه کنترل کاتالوگ و مقدارهای مرزی بررسی شود. کاربرد واقعی آن در ایجاد دوره یا دامنه جدید در Sliding Window است.
مثال 4: کنترل شرط و بازه هدف در SPLIT RANGE
در مثال شماره 4، سناریوی «کنترل شرط و بازه هدف» برای SPLIT RANGE اجرا میشود. هدف این است که رفتار Data Movement در یک نمونه قابل بازتولید دیده شود و نتیجه بدون نیاز به اجرای ذهنی قابل فهم باشد.
CREATE PARTITION FUNCTION pf_split_04 (int) AS RANGE RIGHT FOR VALUES (400,500,600);
CREATE PARTITION SCHEME ps_split_04 AS PARTITION pf_split_04 ALL TO ([PRIMARY]);
ALTER PARTITION SCHEME ps_split_04 NEXT USED [PRIMARY];
ALTER PARTITION FUNCTION pf_split_04() SPLIT RANGE (450);
SELECT boundary_id, value
FROM sys.partition_range_values
WHERE function_id=(SELECT function_id FROM sys.partition_functions WHERE name=N'pf_split_04')
ORDER BY boundary_id;
| شاخص | خروجی نمونه |
|---|
| متادیتا | مرزها یا تعداد پارتیشن تغییر کرد |
تحلیل مثال 4 برای SPLIT RANGE: این سناریو نشان میدهد Partition Count باید همراه کنترل کاتالوگ و مقدارهای مرزی بررسی شود. کاربرد واقعی آن در ایجاد دوره یا دامنه جدید در Sliding Window است.
مثال 5: ترکیب با قابلیت مکمل SQL Server در SPLIT RANGE
در مثال شماره 5، سناریوی «ترکیب با قابلیت مکمل SQL Server» برای SPLIT RANGE اجرا میشود. هدف این است که رفتار Partition Count در یک نمونه قابل بازتولید دیده شود و نتیجه بدون نیاز به اجرای ذهنی قابل فهم باشد.
CREATE PARTITION FUNCTION pf_split_05 (int) AS RANGE RIGHT FOR VALUES (500,600,700);
CREATE PARTITION SCHEME ps_split_05 AS PARTITION pf_split_05 ALL TO ([PRIMARY]);
ALTER PARTITION SCHEME ps_split_05 NEXT USED [PRIMARY];
ALTER PARTITION FUNCTION pf_split_05() SPLIT RANGE (550);
SELECT boundary_id, value
FROM sys.partition_range_values
WHERE function_id=(SELECT function_id FROM sys.partition_functions WHERE name=N'pf_split_05')
ORDER BY boundary_id;
| شاخص | خروجی نمونه |
|---|
| متادیتا | مرزها یا تعداد پارتیشن تغییر کرد |
تحلیل مثال 5 برای SPLIT RANGE: این سناریو نشان میدهد Range Right باید همراه کنترل کاتالوگ و مقدارهای مرزی بررسی شود. کاربرد واقعی آن در ایجاد دوره یا دامنه جدید در Sliding Window است.
تصویر دوم جریان ورودی تا خروجی SPLIT RANGE را با تمرکز بر NEXT USED، Partition Count و اعتبارسنجی نتیجه نمایش میدهد.
مثال 6: بررسی رفتار NULL یا داده مرزی در SPLIT RANGE
در مثال شماره 6، سناریوی «بررسی رفتار NULL یا داده مرزی» برای SPLIT RANGE اجرا میشود. هدف این است که رفتار Range Right در یک نمونه قابل بازتولید دیده شود و نتیجه بدون نیاز به اجرای ذهنی قابل فهم باشد.
CREATE PARTITION FUNCTION pf_split_06 (int) AS RANGE RIGHT FOR VALUES (600,700,800);
CREATE PARTITION SCHEME ps_split_06 AS PARTITION pf_split_06 ALL TO ([PRIMARY]);
ALTER PARTITION SCHEME ps_split_06 NEXT USED [PRIMARY];
ALTER PARTITION FUNCTION pf_split_06() SPLIT RANGE (650);
SELECT boundary_id, value
FROM sys.partition_range_values
WHERE function_id=(SELECT function_id FROM sys.partition_functions WHERE name=N'pf_split_06')
ORDER BY boundary_id;
| شاخص | خروجی نمونه |
|---|
| متادیتا | مرزها یا تعداد پارتیشن تغییر کرد |
تحلیل مثال 6 برای SPLIT RANGE: این سناریو نشان میدهد Future Window باید همراه کنترل کاتالوگ و مقدارهای مرزی بررسی شود. کاربرد واقعی آن در ایجاد دوره یا دامنه جدید در Sliding Window است.
مثال 7: ثبت خطای رایج و نسخه اصلاحشده در SPLIT RANGE
در مثال شماره 7، سناریوی «ثبت خطای رایج و نسخه اصلاحشده» برای SPLIT RANGE اجرا میشود. هدف این است که رفتار Future Window در یک نمونه قابل بازتولید دیده شود و نتیجه بدون نیاز به اجرای ذهنی قابل فهم باشد.
CREATE PARTITION FUNCTION pf_split_07 (int) AS RANGE RIGHT FOR VALUES (700,800,900);
CREATE PARTITION SCHEME ps_split_07 AS PARTITION pf_split_07 ALL TO ([PRIMARY]);
ALTER PARTITION SCHEME ps_split_07 NEXT USED [PRIMARY];
ALTER PARTITION FUNCTION pf_split_07() SPLIT RANGE (750);
SELECT boundary_id, value
FROM sys.partition_range_values
WHERE function_id=(SELECT function_id FROM sys.partition_functions WHERE name=N'pf_split_07')
ORDER BY boundary_id;
| شاخص | خروجی نمونه |
|---|
| متادیتا | مرزها یا تعداد پارتیشن تغییر کرد |
تحلیل مثال 7 برای SPLIT RANGE: این سناریو نشان میدهد New Boundary باید همراه کنترل کاتالوگ و مقدارهای مرزی بررسی شود. کاربرد واقعی آن در ایجاد دوره یا دامنه جدید در Sliding Window است.
مثال 8: سناریوی سازمانی دورهای در SPLIT RANGE
در مثال شماره 8، سناریوی «سناریوی سازمانی دورهای» برای SPLIT RANGE اجرا میشود. هدف این است که رفتار New Boundary در یک نمونه قابل بازتولید دیده شود و نتیجه بدون نیاز به اجرای ذهنی قابل فهم باشد.
CREATE PARTITION FUNCTION pf_split_08 (int) AS RANGE RIGHT FOR VALUES (800,900,1000);
CREATE PARTITION SCHEME ps_split_08 AS PARTITION pf_split_08 ALL TO ([PRIMARY]);
ALTER PARTITION SCHEME ps_split_08 NEXT USED [PRIMARY];
ALTER PARTITION FUNCTION pf_split_08() SPLIT RANGE (850);
SELECT boundary_id, value
FROM sys.partition_range_values
WHERE function_id=(SELECT function_id FROM sys.partition_functions WHERE name=N'pf_split_08')
ORDER BY boundary_id;
| شاخص | خروجی نمونه |
|---|
| متادیتا | مرزها یا تعداد پارتیشن تغییر کرد |
تحلیل مثال 8 برای SPLIT RANGE: این سناریو نشان میدهد NEXT USED باید همراه کنترل کاتالوگ و مقدارهای مرزی بررسی شود. کاربرد واقعی آن در ایجاد دوره یا دامنه جدید در Sliding Window است.
مثال 9: اجرای تراکنشی و امکان Rollback در SPLIT RANGE
در مثال شماره 9، سناریوی «اجرای تراکنشی و امکان Rollback» برای SPLIT RANGE اجرا میشود. هدف این است که رفتار NEXT USED در یک نمونه قابل بازتولید دیده شود و نتیجه بدون نیاز به اجرای ذهنی قابل فهم باشد.
CREATE PARTITION FUNCTION pf_split_09 (int) AS RANGE RIGHT FOR VALUES (900,1000,1100);
CREATE PARTITION SCHEME ps_split_09 AS PARTITION pf_split_09 ALL TO ([PRIMARY]);
ALTER PARTITION SCHEME ps_split_09 NEXT USED [PRIMARY];
ALTER PARTITION FUNCTION pf_split_09() SPLIT RANGE (950);
SELECT boundary_id, value
FROM sys.partition_range_values
WHERE function_id=(SELECT function_id FROM sys.partition_functions WHERE name=N'pf_split_09')
ORDER BY boundary_id;
| شاخص | خروجی نمونه |
|---|
| متادیتا | مرزها یا تعداد پارتیشن تغییر کرد |
تحلیل مثال 9 برای SPLIT RANGE: این سناریو نشان میدهد Empty Partition باید همراه کنترل کاتالوگ و مقدارهای مرزی بررسی شود. کاربرد واقعی آن در ایجاد دوره یا دامنه جدید در Sliding Window است.
مثال 10: ممیزی Performance و متادیتا در SPLIT RANGE
در مثال شماره 10، سناریوی «ممیزی Performance و متادیتا» برای SPLIT RANGE اجرا میشود. هدف این است که رفتار Empty Partition در یک نمونه قابل بازتولید دیده شود و نتیجه بدون نیاز به اجرای ذهنی قابل فهم باشد.
CREATE PARTITION FUNCTION pf_split_10 (int) AS RANGE RIGHT FOR VALUES (1000,1100,1200);
CREATE PARTITION SCHEME ps_split_10 AS PARTITION pf_split_10 ALL TO ([PRIMARY]);
ALTER PARTITION SCHEME ps_split_10 NEXT USED [PRIMARY];
ALTER PARTITION FUNCTION pf_split_10() SPLIT RANGE (1050);
SELECT boundary_id, value
FROM sys.partition_range_values
WHERE function_id=(SELECT function_id FROM sys.partition_functions WHERE name=N'pf_split_10')
ORDER BY boundary_id;
| شاخص | خروجی نمونه |
|---|
| متادیتا | مرزها یا تعداد پارتیشن تغییر کرد |
تحلیل مثال 10 برای SPLIT RANGE: این سناریو نشان میدهد Data Movement باید همراه کنترل کاتالوگ و مقدارهای مرزی بررسی شود. کاربرد واقعی آن در ایجاد دوره یا دامنه جدید در Sliding Window است.