Sqlserver
 sql >> Baza danych >  >> RDS >> Sqlserver

Rozmiar tabeli i indeksu w SQL Server

sp_spaceused podaje rozmiar wszystkich połączonych indeksów.

Jeśli chcesz określić rozmiar każdego indeksu dla tabeli, użyj jednego z tych dwóch zapytań:

SELECT
    i.name                  AS IndexName,
    SUM(s.used_page_count) * 8   AS IndexSizeKB
FROM sys.dm_db_partition_stats  AS s 
JOIN sys.indexes                AS i
ON s.[object_id] = i.[object_id] AND s.index_id = i.index_id
WHERE s.[object_id] = object_id('dbo.TableName')
GROUP BY i.name
ORDER BY i.name

SELECT
    i.name              AS IndexName,
    SUM(page_count * 8) AS IndexSizeKB
FROM sys.dm_db_index_physical_stats(
    db_id(), object_id('dbo.TableName'), NULL, NULL, 'DETAILED') AS s
JOIN sys.indexes AS i
ON s.[object_id] = i.[object_id] AND s.index_id = i.index_id
GROUP BY i.name
ORDER BY i.name

Wyniki są zwykle nieco inne, ale mieszczą się w granicach 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. Obliczona kolumna w EF Code First

  2. Jak przestawić wiele kolumn bez agregacji

  3. Pobierz ostatnią datę przed wartością daty w wierszu

  4. Przestawiaj wiele kolumn na podstawie jednej kolumny w SQL Server

  5. Czy istnieją zagrożenia bezpieczeństwa związane z monitorowaniem w chmurze Spotlight?