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

Размер на таблица и индекс в SQL Server

sp_spaceused ви дава размера на всички комбинирани индекси.

Ако искате размера на всеки индекс за таблица, използвайте една от тези две заявки:

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

Резултатите обикновено са малко по-различни, но в рамките на 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. Какъв размер използвате за varchar(MAX) във вашата декларация за параметри?

  2. Странност на кода за връщане на съхранена процедура на SQL Server

  3. Преобразуване на „01-Sep-2017“ в „01/09/2017“ в T-SQL?

  4. Добавете колона към таблица, ако все още не съществува

  5. Как се съхраняват данните в SQL сървър?