यदि आपने पहले SQL सर्वर में एक विभाजन तालिका बनाई है, और अब आप जानना चाहते हैं कि प्रत्येक विभाजन में कितनी पंक्तियां संग्रहीत की जा रही हैं, तो यहां तीन प्रश्न हैं जिनका आप उपयोग कर सकते हैं।
विशेष रूप से, आप कर सकते हैं:
sys.dm_db_partition_stats
के बारे में पूछें देखें- क्वेरी
sys.partitions
देखें $PARTITION
का उपयोग करें एक प्रश्न में कार्य करें
नीचे तीनों के उदाहरण दिए गए हैं।
sys.dm_db_partition_stats
sys.dm_db_partition_stats
सिस्टम गतिशील प्रबंधन दृश्य वर्तमान डेटाबेस में प्रत्येक विभाजन के लिए पृष्ठ और पंक्ति गणना जानकारी देता है।
यहां Movies
. नामक विभाजित तालिका की पंक्तियों की संख्या लौटाने का एक उदाहरण दिया गया है ।
SELECT
partition_number,
row_count
FROM sys.dm_db_partition_stats
WHERE object_id = OBJECT_ID('Movies');
परिणाम:
+--------------------+-------------+ | partition_number | row_count | |--------------------+-------------| | 1 | 0 | | 2 | 100 | | 3 | 3979 | | 4 | 0 | +--------------------+-------------+
इस स्थिति में, पहला और अंतिम विभाजन खाली है (जैसा कि Microsoft द्वारा अनुशंसित है)।
sys.partitions
sys.partitions
सिस्टम कैटलॉग दृश्य में सभी तालिकाओं के प्रत्येक विभाजन और डेटाबेस में अधिकांश प्रकार के अनुक्रमणिका के लिए एक पंक्ति होती है।
यहां बताया गया है कि हम पिछले उदाहरण के समान डेटा वापस करने के लिए इसका उपयोग कैसे कर सकते हैं।
SELECT
partition_number,
rows
FROM sys.partitions
WHERE object_id = OBJECT_ID('Movies');
परिणाम:
+--------------------+--------+ | partition_number | rows | |--------------------+--------| | 1 | 0 | | 2 | 100 | | 3 | 3979 | | 4 | 0 | +--------------------+--------+
आप देख सकते हैं कि यह लगभग पिछली क्वेरी के समान है। अंतर केवल इतना है कि यह rows
. नामक कॉलम का उपयोग करता है , जबकि पिछले वाले ने row_count
. नामक कॉलम का उपयोग किया था ।
$PARTITION
$PARTITION
सिस्टम फ़ंक्शन विभाजन संख्या देता है जिसमें किसी निर्दिष्ट विभाजन फ़ंक्शन के लिए विभाजन स्तंभ मानों का एक सेट मैप किया जाएगा।
इसलिए हम इस जानकारी का उपयोग एक क्वेरी बनाने के लिए कर सकते हैं जो पंक्ति गणना डेटा लौटाती है।
SELECT
$PARTITION.MoviesPartitionFunction(MovieId) AS [Partition Number],
COUNT(*) AS [Number of Rows]
FROM Movies
GROUP BY $PARTITION.MoviesPartitionFunction(MovieId)
ORDER BY [Partition Number] ASC
परिणाम:
+--------------------+------------------+ | Partition Number | Number of Rows | |--------------------+------------------| | 2 | 100 | | 3 | 3979 | +--------------------+------------------+
इस उदाहरण के परिणाम के साथ एकमात्र अंतर यह है कि यह केवल गैर-रिक्त पंक्तियों की गिनती देता है।