SQL सर्वर में किसी तालिका के लिए विभाजन जानकारी वापस करने के कुछ तरीके यहां दिए गए हैं।
- आप
sys.partitions
का उपयोग कर सकते हैं किसी तालिका और अधिकांश प्रकार के दृश्यों के लिए विभाजन जानकारी वापस करने के लिए सिस्टम कैटलॉग दृश्य। - आप
sys.dm_db_partition_stats
. का उपयोग कर सकते हैं वर्तमान डेटाबेस में प्रत्येक विभाजन के लिए पृष्ठ और पंक्ति-गणना जानकारी वापस करने के लिए सिस्टम गतिशील प्रबंधन दृश्य।
यदि किसी तालिका या अनुक्रमणिका को विभाजित नहीं किया गया है, तो ये दृश्य अभी भी विभाजन जानकारी (partition_number के साथ) लौटाएंगे का 1
) ऐसा इसलिए है क्योंकि SQL सर्वर में सभी तालिकाओं और अनुक्रमणिकाओं में कम से कम एक विभाजन होता है, चाहे वे स्पष्ट रूप से विभाजित हों या नहीं।
sys.partitions
sys.partitions
दृश्य में सभी तालिकाओं के प्रत्येक विभाजन और डेटाबेस में अधिकांश प्रकार के अनुक्रमणिका के लिए एक पंक्ति होती है। विशेष अनुक्रमणिका प्रकार जैसे पूर्ण-पाठ, स्थानिक, और XML शामिल नहीं हैं।
प्रदर्शित करने के लिए यहां एक उदाहरण दिया गया है।
SELECT *
FROM sys.partitions
WHERE object_id = OBJECT_ID('Movies');
परिणाम:
+-------------------+-------------+------------+--------------------+-------------------+--------+---------------------------+--------------------+-------------------------+ | partition_id | object_id | index_id | partition_number | hobt_id | rows | filestream_filegroup_id | data_compression | data_compression_desc | |-------------------+-------------+------------+--------------------+-------------------+--------+---------------------------+--------------------+-------------------------| | 72057594049986560 | 91147370 | 1 | 1 | 72057594049986560 | 0 | 0 | 0 | NONE | | 72057594050052096 | 91147370 | 1 | 2 | 72057594050052096 | 100 | 0 | 0 | NONE | | 72057594050117632 | 91147370 | 1 | 3 | 72057594050117632 | 3979 | 0 | 0 | NONE | | 72057594050183168 | 91147370 | 1 | 4 | 72057594050183168 | 0 | 0 | 0 | NONE | +-------------------+-------------+------------+--------------------+-------------------+--------+---------------------------+--------------------+-------------------------+
हम देख सकते हैं कि इस तालिका के लिए चार विभाजन हैं।
यहाँ यह फिर से है, इस बार वर्टिकल आउटपुट का उपयोग कर रहा है (आपको बग़ल में स्क्रॉल करने से बचाने के लिए):
-[ RECORD 1 ]------------------------- partition_id | 72057594049986560 object_id | 91147370 index_id | 1 partition_number | 1 hobt_id | 72057594049986560 rows | 0 filestream_filegroup_id | 0 data_compression | 0 data_compression_desc | NONE -[ RECORD 2 ]------------------------- partition_id | 72057594050052096 object_id | 91147370 index_id | 1 partition_number | 2 hobt_id | 72057594050052096 rows | 100 filestream_filegroup_id | 0 data_compression | 0 data_compression_desc | NONE -[ RECORD 3 ]------------------------- partition_id | 72057594050117632 object_id | 91147370 index_id | 1 partition_number | 3 hobt_id | 72057594050117632 rows | 3979 filestream_filegroup_id | 0 data_compression | 0 data_compression_desc | NONE -[ RECORD 4 ]------------------------- partition_id | 72057594050183168 object_id | 91147370 index_id | 1 partition_number | 4 hobt_id | 72057594050183168 rows | 0 filestream_filegroup_id | 0 data_compression | 0 data_compression_desc | NONE
sys.dm_db_partition_stats
sys.dm_db_partition_stats view
वर्तमान डेटाबेस में प्रत्येक विभाजन के लिए पृष्ठ और पंक्ति-गणना जानकारी देता है। लेकिन यदि आप केवल एक तालिका में रुचि रखते हैं, तो आप उसे केवल उस तालिका तक सीमित कर सकते हैं।
यहां एक उदाहरण दिया गया है।
SELECT *
FROM sys.dm_db_partition_stats
WHERE object_id = OBJECT_ID('Movies');
परिणाम:
+-------------------+-------------+------------+--------------------+--------------------------+--------------------------+------------------------------+-----------------------+---------------------------+--------------------------------+------------------------------------+-------------------+-----------------------+-------------+ | partition_id | object_id | index_id | partition_number | in_row_data_page_count | in_row_used_page_count | in_row_reserved_page_count | lob_used_page_count | lob_reserved_page_count | row_overflow_used_page_count | row_overflow_reserved_page_count | used_page_count | reserved_page_count | row_count | |-------------------+-------------+------------+--------------------+--------------------------+--------------------------+------------------------------+-----------------------+---------------------------+--------------------------------+------------------------------------+-------------------+-----------------------+-------------| | 72057594049986560 | 91147370 | 1 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | | 72057594050052096 | 91147370 | 1 | 2 | 1 | 2 | 9 | 0 | 0 | 0 | 0 | 2 | 9 | 100 | | 72057594050117632 | 91147370 | 1 | 3 | 13 | 15 | 33 | 0 | 0 | 0 | 0 | 15 | 33 | 3979 | | 72057594050183168 | 91147370 | 1 | 4 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | +-------------------+-------------+------------+--------------------+--------------------------+--------------------------+------------------------------+-----------------------+---------------------------+--------------------------------+------------------------------------+-------------------+-----------------------+-------------+
यहाँ यह फिर से लंबवत आउटपुट का उपयोग कर रहा है:
-[ RECORD 1 ]------------------------- partition_id | 72057594049986560 object_id | 91147370 index_id | 1 partition_number | 1 in_row_data_page_count | 0 in_row_used_page_count | 0 in_row_reserved_page_count | 0 lob_used_page_count | 0 lob_reserved_page_count | 0 row_overflow_used_page_count | 0 row_overflow_reserved_page_count | 0 used_page_count | 0 reserved_page_count | 0 row_count | 0 -[ RECORD 2 ]------------------------- partition_id | 72057594050052096 object_id | 91147370 index_id | 1 partition_number | 2 in_row_data_page_count | 1 in_row_used_page_count | 2 in_row_reserved_page_count | 9 lob_used_page_count | 0 lob_reserved_page_count | 0 row_overflow_used_page_count | 0 row_overflow_reserved_page_count | 0 used_page_count | 2 reserved_page_count | 9 row_count | 100 -[ RECORD 3 ]------------------------- partition_id | 72057594050117632 object_id | 91147370 index_id | 1 partition_number | 3 in_row_data_page_count | 13 in_row_used_page_count | 15 in_row_reserved_page_count | 33 lob_used_page_count | 0 lob_reserved_page_count | 0 row_overflow_used_page_count | 0 row_overflow_reserved_page_count | 0 used_page_count | 15 reserved_page_count | 33 row_count | 3979 -[ RECORD 4 ]------------------------- partition_id | 72057594050183168 object_id | 91147370 index_id | 1 partition_number | 4 in_row_data_page_count | 0 in_row_used_page_count | 0 in_row_reserved_page_count | 0 lob_used_page_count | 0 lob_reserved_page_count | 0 row_overflow_used_page_count | 0 row_overflow_reserved_page_count | 0 used_page_count | 0 reserved_page_count | 0 row_count | 0
इस नमूना तालिका को विभाजन श्रेणी के दोनों सिरों पर खाली विभाजन रखने की Microsoft अनुशंसित पद्धति का उपयोग करके विभाजित किया गया है। यह सुनिश्चित करता है कि भविष्य के किसी भी विभाजन/विलय के कारण कोई अनपेक्षित डेटा आंदोलन न हो।