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

एसक्यूएल सर्वर में टेबल और इंडेक्स स्टोरेज साइज प्राप्त करें

यह क्वेरी यहां कुल आकार को सूचीबद्ध करेगी जो एक तालिका लेती है - संकुल सूचकांक, ढेर और सभी गैर-संकुल सूचकांक:

SELECT 
    s.Name AS SchemaName,
    t.NAME AS TableName,
    p.rows AS RowCounts,
    SUM(a.total_pages) * 8 AS TotalSpaceKB, 
    SUM(a.used_pages) * 8 AS UsedSpaceKB, 
    (SUM(a.total_pages) - SUM(a.used_pages)) * 8 AS UnusedSpaceKB
FROM 
    sys.tables t
INNER JOIN 
    sys.schemas s ON s.schema_id = t.schema_id
INNER JOIN      
    sys.indexes i ON t.OBJECT_ID = i.object_id
INNER JOIN 
    sys.partitions p ON i.object_id = p.OBJECT_ID AND i.index_id = p.index_id
INNER JOIN 
    sys.allocation_units a ON p.partition_id = a.container_id
WHERE 
    t.NAME NOT LIKE 'dt%'    -- filter out system tables for diagramming
    AND t.is_ms_shipped = 0
    AND i.OBJECT_ID > 255 
GROUP BY 
    t.Name, s.Name, p.Rows
ORDER BY 
    s.Name, t.Name

यदि आप तालिका स्थान को अनुक्रमणिका स्थान से अलग करना चाहते हैं, तो आपको AND i.index_id IN (0,1) का उपयोग करना होगा टेबल स्पेस के लिए (index_id = 0 हीप स्पेस है, index_id = 1 संकुल अनुक्रमणिका का आकार है =डेटा पृष्ठ) और AND i.index_id > 1 केवल अनुक्रमणिका स्थान के लिए



  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 सर्वर 2008, एक क्वेरी के साथ अलग WHERE क्लॉज

  2. विभाजन स्विचिंग का उपयोग करके कम रुकावट के साथ SQL सर्वर तालिकाओं को ताज़ा करना

  3. क्या मुझे SQL_Variant डेटा प्रकार का उपयोग करना चाहिए?

  4. तालिका ए से चयन * [कॉलम ए को छोड़कर] का उपयोग कर कॉलम को बाहर निकालें?

  5. परिणामों को विभाजित करने के लिए SQL में दशमलव मान