2013-10-10 2 views
0

J'utilise SQL Server 2012, dans ce que je veux obtenir des informations sur le volume de magasin dans les plusieurs tables de données. Par conséquent j'utilise cette requête:SQL Server 2012 EXEC sp_spaceused Tables système

USE msdb;         --DATABASE 
EXEC sp_spaceused 'people';--TABLENAME 

Cela ne fonctionne que pour les tables que j'ai définies.

Mais comment puis-je avoir accès aux tables système comme sys.trace_xe_action_map

Répondre

1

Essayez ceci:

select sum(au.total_pages) 
from sys.system_internals_partitions p 
join sys.system_internals_allocation_units au 
    on au.container_id = p.partition_id 
where p.object_id = object_id('sys.trace_xe_event_map'); 
+0

Je n'ai pas accès aux sys. espace de noms – Higune

+0

Ensuite, vous n'avez pas accès à faire ce que vous voulez faire. Créez une procédure stockée qui exécute cette requête, demandez à un administrateur de l'examiner, de l'approuver et de la signer pour vous. Voir [Signature du module] (http://technet.microsoft.com/fr-fr/library/ms345102 (v = sql.105) .aspx). –

+0

je vous remercie pour votre conseil # – Higune