SQL सर्वर में, आप sys.partition_range_values
. का उपयोग कर सकते हैं विभाजन तालिका के लिए उपयोग किए जाने वाले सीमा मानों का पता लगाने के लिए सिस्टम कैटलॉग दृश्य।
हालांकि, आपको function_id
. जानना होगा उस दृश्य का उपयोग करने से पहले विभाजन फ़ंक्शन का।
लेकिन हमेशा की तरह, वांछित जानकारी प्राप्त करने के लिए आप अन्य तालिकाओं के समूह के विरुद्ध एक जुड़ाव चला सकते हैं।
sys.partition_range_values
सबसे पहले, आइए देखें कि sys.partition_range_values
. में कौन से कॉलम हैं रिटर्न देखें।
SELECT * FROM sys.partition_range_values;
परिणाम:
+---------------+---------------+----------------+---------+ | function_id | boundary_id | parameter_id | value | |---------------+---------------+----------------+---------| | 65542 | 1 | 1 | -1 | | 65542 | 2 | 1 | 100 | | 65542 | 3 | 1 | 10000 | +---------------+---------------+----------------+---------+
सौभाग्य से मेरे लिए, मेरे पास इस डेटाबेस में केवल एक विभाजित तालिका है, इसलिए मैं परिणामों के साथ बमबारी नहीं कर रहा हूं।
जैसा कि बताया गया है, यह दृश्य function_id
लौटाता है , इसलिए हम इसका उपयोग अन्य तालिकाओं के समूह में शामिल होने के लिए कर सकते हैं, ताकि हम किसी विशिष्ट तालिका के लिए डेटा वापस कर सकें।
मेरे मामले में यह अनावश्यक है, क्योंकि केवल एक विभाजित तालिका है, लेकिन मान लीजिए कि आपके पास बहुत सारे विभाजित ढेर और अनुक्रमणिका हैं, और आप इसे कम करना चाहते हैं।
इसे एक टेबल तक सीमित करें
Movies
. नामक एक विशिष्ट तालिका के लिए सीमा सीमाओं को वापस करने का एक उदाहरण यहां दिया गया है .
SELECT
p.partition_number,
r.boundary_id,
r.value AS [Boundary Value]
FROM sys.tables AS t
JOIN sys.indexes AS i
ON t.object_id = i.object_id
JOIN sys.partitions AS p
ON i.object_id = p.object_id AND i.index_id = p.index_id
JOIN sys.partition_schemes AS s
ON i.data_space_id = s.data_space_id
JOIN sys.partition_functions AS f
ON s.function_id = f.function_id
LEFT JOIN sys.partition_range_values AS r
ON f.function_id = r.function_id and r.boundary_id = p.partition_number
WHERE i.type <= 1 AND t.name = 'Movies'
ORDER BY p.partition_number ASC;
परिणाम:
+--------------------+---------------+------------------+ | partition_number | boundary_id | Boundary Value | |--------------------+---------------+------------------| | 1 | 1 | -1 | | 2 | 2 | 100 | | 3 | 3 | 10000 | | 4 | NULL | NULL | +--------------------+---------------+------------------+
यहां यह फिर से है, लेकिन हम अन्य जानकारी, जैसे अनुक्रमणिका नाम, विभाजन फ़ंक्शन का नाम इत्यादि शामिल करने के लिए चयन सूची का विस्तार करते हैं।
SELECT
t.name AS [Table],
i.name AS [Index],
p.partition_number,
f.name,
r.boundary_id,
r.value AS [Boundary Value]
FROM sys.tables AS t
JOIN sys.indexes AS i
ON t.object_id = i.object_id
JOIN sys.partitions AS p
ON i.object_id = p.object_id AND i.index_id = p.index_id
JOIN sys.partition_schemes AS s
ON i.data_space_id = s.data_space_id
JOIN sys.partition_functions AS f
ON s.function_id = f.function_id
LEFT JOIN sys.partition_range_values AS r
ON f.function_id = r.function_id and r.boundary_id = p.partition_number
WHERE i.type <= 1 AND t.name = 'Movies'
ORDER BY p.partition_number ASC;
परिणाम:
+---------+------------------------------+--------------------+-------------------------+---------------+------------------+ | Table | Index | partition_number | name | boundary_id | Boundary Value | |---------+------------------------------+--------------------+-------------------------+---------------+------------------| | Movies | PK__Movies__4BD2941AD44D2FCF | 1 | MoviesPartitionFunction | 1 | -1 | | Movies | PK__Movies__4BD2941AD44D2FCF | 2 | MoviesPartitionFunction | 2 | 100 | | Movies | PK__Movies__4BD2941AD44D2FCF | 3 | MoviesPartitionFunction | 3 | 10000 | | Movies | PK__Movies__4BD2941AD44D2FCF | 4 | MoviesPartitionFunction | NULL | NULL | +---------+------------------------------+--------------------+-------------------------+---------------+------------------+
वर्टिकल आउटपुट का उपयोग करके फिर से यह परिणाम दिया गया है (ताकि आपको साइड में स्क्रॉल न करना पड़े):
-[ RECORD 1 ]------------------------- Table | Movies Index | PK__Movies__4BD2941AD44D2FCF partition_number | 1 name | MoviesPartitionFunction boundary_id | 1 Boundary Value | -1 -[ RECORD 2 ]------------------------- Table | Movies Index | PK__Movies__4BD2941AD44D2FCF partition_number | 2 name | MoviesPartitionFunction boundary_id | 2 Boundary Value | 100 -[ RECORD 3 ]------------------------- Table | Movies Index | PK__Movies__4BD2941AD44D2FCF partition_number | 3 name | MoviesPartitionFunction boundary_id | 3 Boundary Value | 10000 -[ RECORD 4 ]------------------------- Table | Movies Index | PK__Movies__4BD2941AD44D2FCF partition_number | 4 name | MoviesPartitionFunction boundary_id | NULL Boundary Value | NULL