Sqlserver
 sql >> डेटाबेस >  >> RDS >> Sqlserver

SQL सर्वर (T-SQL) में तालिका के लिए विभाजन जानकारी प्राप्त करने के 2 तरीके

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 अनुशंसित पद्धति का उपयोग करके विभाजित किया गया है। यह सुनिश्चित करता है कि भविष्य के किसी भी विभाजन/विलय के कारण कोई अनपेक्षित डेटा आंदोलन न हो।


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. आप SQL सर्वर तालिका की प्राथमिक कुंजी कैसे सूचीबद्ध करते हैं?

  2. SQL सर्वर डेटाबेस (T-SQL) को पुनर्स्थापित करें

  3. DBNull's से निपटने का सबसे अच्छा तरीका क्या है?

  4. SQL सर्वर में रोलबैक ट्रंकेट करें

  5. फ्लास्क-SQLAlchemy का उपयोग करके MSSQL डेटाबेस से कनेक्ट करें