Sqlserver
 sql >> база данни >  >> RDS >> Sqlserver

Вземете размер за съхранение на таблица и индекс в sql сървър

Тази заявка тук ще посочи общия размер, който заема една таблица - клъстерен индекс, купчина и всички неклъстерирани индекси:

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. Кхмерски Unicode, английски и Microsoft SQL Server 2008 водят до въпросителни

  2. SQL Server - Заявка за късо съединение?

  3. SQL Server:CREATE ASSEMBLY за сглобка „Тест“ е неуспешна, защото сглобката „Тест“ е деформирана или не е чиста .NET сглобка.

  4. Как да създадете централна заявка в sql сървър без агрегатна функция

  5. Не можете да се свържете към SQL сървър 2008?