Sqlserver
 sql >> Teknologi Basis Data >  >> RDS >> Sqlserver

Dapatkan ukuran penyimpanan Tabel dan Indeks di server sql

Kueri ini di sini akan mencantumkan ukuran total yang digunakan tabel - indeks berkerumun, tumpukan, dan semua indeks yang tidak mengelompok:

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

Jika Anda ingin memisahkan ruang tabel dari ruang indeks, Anda perlu menggunakan AND i.index_id IN (0,1) untuk ruang tabel (index_id = 0 adalah ruang tumpukan, index_id = 1 adalah ukuran indeks berkerumun =halaman data) dan AND i.index_id > 1 untuk ruang indeks saja



  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 - Permintaan untuk mendapatkan alamat IP server

  2. Periksa apakah RPC Out Diaktifkan pada Server Tertaut

  3. Memuat Gambar PictureBox Dari Database

  4. Instalasi SQL Server 2008

  5. Enkripsi Data Transparan (TDE) di SQL Server dalam Grup Ketersediaan AlwaysOn pada Contoh