Visualizzare le informazioni sullo spazio allocato ai dati e ai log per un database

Si applica a:SQL ServerDatabase SQL di AzureIstanza gestita di SQL di AzureAzure Synapse AnalyticsPiattaforma di strumenti analitici (PDW)

Questo articolo illustra come visualizzare le informazioni sui dati e lo spazio di log per un database in SQL Server usando SQL Server Management Studio o Transact-SQL.

Operazioni preliminari

L'autorizzazione per eseguire sp_spaceused è concessa al ruolo publicco. Solo tramite i membri del ruolo predefinito del database db_owner può essere specificato il parametro @updateusage .

Utilizzo di SQL Server Management Studio

Per visualizzare le informazioni sullo spazio allocato ai dati e ai log per un database

  1. In Esplora oggetti, connettersi a un'istanza di SQL Server e quindi espandere l'istanza.

  2. Espandere Database.

  3. Fare clic con il pulsante destro del mouse su un database, scegliere Report, successivamente Report standard, quindi selezionare Utilizzo disco.

Utilizzo di Transact-SQL

Per visualizzare le informazioni sullo spazio allocato ai dati e ai log per un database utilizzando sp_spaceused

  1. Connettersi al motore di database di .

  2. Sulla barra degli strumenti Standard selezionare Nuova query.

  3. Incollare l'esempio seguente nella finestra Query e quindi selezionare Esegui. In questo esempio viene usata la stored procedure di sistema sp_spaceused per fornire le informazioni sullo spazio su disco per il database completo, inclusi la tabella e gli indici.

    USE AdventureWorks2022;  
    GO  
    EXEC sp_spaceused;  
    GO  
    

Per visualizzare lo spazio dati usato dall'unità di allocazione e dall'oggetto per un database

  1. Connettersi al motore di database di .

  2. Sulla barra degli strumenti Standard selezionare Nuova query.

  3. Incollare l'esempio seguente nella finestra Query e quindi selezionare Esegui. In questo esempio vengono eseguite query sulle viste del catalogo oggetti per segnalare l'utilizzo dello spazio su disco per tabella e all'interno di ogni tabella per unità di allocazione.

    SELECT
      t.object_id,
      OBJECT_NAME(t.object_id) ObjectName,
      sum(u.total_pages) * 8 Total_Reserved_kb,
      sum(u.used_pages) * 8 Used_Space_kb,
      u.type_desc,
      max(p.rows) RowsCount
    FROM
      sys.allocation_units u
      JOIN sys.partitions p on u.container_id = p.hobt_id
    
      JOIN sys.tables t on p.object_id = t.object_id
    
    GROUP BY
      t.object_id,
      OBJECT_NAME(t.object_id),
      u.type_desc
    ORDER BY
      Used_Space_kb desc,
      ObjectName;
    
    

Per visualizzare le informazioni sullo spazio allocato ai dati e ai log per un database eseguendo una query su sys.database_files

  1. Connettersi al motore di database di .

  2. Sulla barra degli strumenti Standard selezionare Nuova query.

  3. Incollare l'esempio seguente nell'intervallo di query e quindi selezionare Esegui. In questo esempio si esegue una query sulla vista del catalogo sys.database_files per restituire informazioni specifiche sui file di dati e di log nel database AdventureWorks2022 .

    USE AdventureWorks2022;  
    GO  
    SELECT file_id, name, type_desc, physical_name, size, max_size  
    FROM sys.database_files;  
    
    GO  
    
    

Vedi anche

SELECT (Transact-SQL)
sys.database_files (Transact-SQL)
sp_spaceused (Transact-SQL)
Aggiungere file di dati o file di log a un database
Eliminare file di dati o file di log da un database